topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Sunday December 15, 2024, 12:38 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: What makes software 'good'?  (Read 11758 times)

zridling

  • Friend of the Site
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 3,299
    • View Profile
    • Donate to Member
What makes software 'good'?
« on: May 07, 2008, 10:27 PM »
It's an abstract question, but what are the elements of good software?

quality_software.jpg

Spoiler
There's even an international standard for evaluating quality software!


iphigenie

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,170
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #1 on: May 08, 2008, 02:20 AM »
There's standard "attributes" for good programming and standard "attributes" for good software - the problem is agreeing on the meaning of, and metrics, of said attributes.

And there, the plot instantly thickens and the story turns into a surealist poetic exercise

Jimdoria

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 257
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #2 on: May 08, 2008, 12:29 PM »
Actually, there's a whole field dedicated to solving the problem of what makes good software. It's the Usability/Human Factors profession.

The problem with developing a "standard" is that the measure of how good software is depends on who is using it. Is a CD burner application with hundreds of options good software? It could be, if you are an audio engineer charged with mastering CDs for mass duplication. Probably not so much if you are a teenager who wants to make "backup" copies of CDs you've purchased.

To determine how good a piece of software is, you have to analyze how well it serves the needs of its users, and how well it matches to the way they work, the other tools they use, how they use their computer, and a range of other factors. It's like relativity - there's no privileged frame of reference. Goodness is measured relative to the users of the application.

The word "intuitive" gets thrown around a lot in these kind of discussions, but it's usually just shorthand for "who the heck knows?" "Intuitive" is a popular term because it removes responsibility from developers. By definition, it implies a certain immunity to logical analysis. But the thing is, there are perfectly objective, measurable ways you can design software that works well and serves the needs of its users. Unfortunately, there are many companies (and individuals) who don't see the need, don't want to spend the time/money or simply don't know that it can be done.

All that said, there are certain qualities of "usable" software that can be taken as touchstones of its "goodness". These were defined by Jakob Nielsen in 1993, and they are:
  • Learnability - How easy is it for new users to learn how to use the software without extensive training/assistance?
  • Efficiency - How well does the software accomplish the tasks the user is attempting to do? Does it speed the process or throw up barriers?
  • Memorability - Can you easily find that function you last used a week ago? Can you come back to the software after a few months away and still use it like a pro?
  • Error Handling - How gracefully does the software cope with the unexpected, either in interacting with the user or as the result of its own internal processing?
  • Satisfaction - How do people feel about using the software? Do they love it, hate it or just think "eh"?

This may not be an exhaustive list, but I'd say that any program that exhibits all of these qualities in abundance will be thought of as "good" software by the people who work with it.
- Jimdoria ~@>@

There are two kinds of people in the world: Those who divide everybody into two kinds of people, and those who don't.
« Last Edit: May 08, 2008, 12:34 PM by Jimdoria »

zridling

  • Friend of the Site
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 3,299
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #3 on: May 08, 2008, 07:08 PM »
Jimdoria, here's a good example of a Windows user sitting down for the first time and installing Ubuntu. The Canonical folks should listen to his suggestions.

acrystal

  • Charter Member
  • Joined in 2006
  • ***
  • default avatar
  • Posts: 4
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #4 on: May 16, 2008, 03:43 PM »
All that said, there are certain qualities of "usable" software that can be taken as touchstones of its "goodness".

In addition to usability, it's critical to consider how "useful" software is.  Software can be highly polished and usable, while addressing a fairly trivial issue.  Such software would have great usability, but be much less useful than software that solves a more important problem or adds more valuable capabilities.  Tom Landauer was one of the first to address this issue: http://www.amazon.co...tivity/dp/0262621088 .

BinderDundat

  • Supporting Member
  • Joined in 2007
  • **
  • default avatar
  • Posts: 31
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #5 on: May 17, 2008, 12:11 AM »
The one thing that I appreciate is the ability to customize the interface.  Arrange the menus/hot keys/toolbars to suit my own peculiar logic.  Failing that, visual cues and meaningful descriptions that prompt the user in the use of the software are good.  Then too, following common usage for common functions is only natural. (I'm still pissed at M$ for not using Ctrl+Q for the exit shortcut when it introduced Win 3.0 - I mean have you tried to do Alt+F4 without looking, and that combo is just so obvious a choice for that function it leaves me gaping!)

kartal

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 1,529
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #6 on: May 17, 2008, 12:22 AM »
BinderDundat, I feel exactly like you do about softwares. To me what makes software good is "thoughtfulness". If it is a well thought software user enjoys it. I find thoughtfulness in little details more enjoyable when I use a software. Little things that others do not have, little things that are embedded neatly into software environment. For example Farr has an embedded toolbar. This is such a simple idea but it becomes very powerful if you start using it. And it does not affect the rest of the functionality it rather enhances it.

Generally bad software overlooks usability and customization. Good software does not dictate but lets you enjoy the tools.

pixelporter

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 1
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #7 on: May 17, 2008, 09:21 AM »
Nothing is more annoying than a program that doesn't remember your personal customizations between uses. For instance, I use one of the premier highly reliable CD/DVD burning software packages, but it's also highly aggravating because it does not remember column widths that have been set between uses.

I also think software developers should stick with the standard GUI interfaces that everyone is familiar. Software with nonstandard GUI's turns me off as it lengthens the learning curve of the software.

Software developers should also write efficient code that maximizes performance. A major complaint of mine is that the GUI's used on today's computers really hammer performance. For instance, consider a file manager that has to display thousands of files in a directory. The old DOS file managers running on a CPU clocked at 25 MHz seemed a lot faster at updating displays than today's GUI based file managers running on a CPU clocked at 2.5 GHz. Shouldn't we be seeing a leap forward in performance today over computers of the past that were running processors at 1/100 the speed?

The blame there probably lies with Microsoft and the inefficient code used in their operating systems. I think too many programmers today also think efficient code is not important since it will be run on today's fast computers. But if a program is dealing with a lot of data, the inefficient code used in the program will not go unnoticed. That would turn me off from buying any other software written by that developer.

My favorite software consists of a single executable that stores it's settings in it's own directory (not the registry), and the software is not bloated into requiring 10 times more disk space than is necessary for it's files. This also makes the software easy to uninstall with no traces left behind.

cornishboy36

  • Participant
  • Joined in 2008
  • *
  • Posts: 1
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #8 on: May 17, 2008, 04:26 PM »
Apart from the tech talk what makes SOFTWARE GOOD  is, ease of use nice and pretty and most certainly low cpu demands. I am not a programmer so how easy these things are i wouldn't know.Thanks to you programming crew.   
(ps The end bit rhymed cool)

kartal

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 1,529
    • View Profile
    • Donate to Member
Re: What makes software 'good'?
« Reply #9 on: May 17, 2008, 04:54 PM »
pixelporter good point about installers. I myself hate installers, I prefer zipped executables as much as possible. One reason of system slow down is bloated registry