DonationCoder.com Forum

Main Area and Open Discussion => General Software Discussion => Topic started by: zridling on May 07, 2008, 10:27 PM

Title: What makes software 'good'?
Post by: zridling on May 07, 2008, 10:27 PM
It's an abstract question, but what are the elements of good software?

[ You are not allowed to view attachments ]

Spoiler
There's even an international standard (http://en.wikipedia.org/wiki/ISO_9126) for evaluating quality software!

Title: Re: What makes software 'good'?
Post by: iphigenie 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
Title: Re: What makes software 'good'?
Post by: Jimdoria 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:

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.
Title: Re: What makes software 'good'?
Post by: zridling on May 08, 2008, 07:08 PM
Jimdoria, here's a good example (http://ubunite.com/content/view/66/) of a Windows user sitting down for the first time and installing Ubuntu. The Canonical folks should listen to his suggestions.
Title: Re: What makes software 'good'?
Post by: acrystal 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.com/Trouble-Computers-Usefulness-Usability-Productivity/dp/0262621088 .
Title: Re: What makes software 'good'?
Post by: BinderDundat 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!)
Title: Re: What makes software 'good'?
Post by: kartal 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.
Title: Re: What makes software 'good'?
Post by: pixelporter 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.
Title: Re: What makes software 'good'?
Post by: cornishboy36 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)
Title: Re: What makes software 'good'?
Post by: kartal 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