Linked by Thom Holwerda on Tue 6th May 2008 15:15 UTC, submitted by Shlomi Fish
Permalink for comment 313151
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
Linked by Thom Holwerda on 05/18/13 21:06 UTC
Linked by Thom Holwerda on 05/18/13 7:37 UTC
Linked by fran on 05/18/13 1:38 UTC
Linked by Thom Holwerda on 05/17/13 23:35 UTC, submitted by kragil
Linked by MOS6510 on 05/17/13 22:22 UTC
Linked by Thom Holwerda on 05/17/13 22:15 UTC, submitted by Tom
Linked by Thom Holwerda on 05/16/13 21:41 UTC
Linked by Thom Holwerda on 05/16/13 17:04 UTC
More News »
Sponsored Links



Member since:
2005-07-07
Seeing as the article is mostly crap, I thought I'd give my own 2 cents on what makes software "high quality".
1) Intuitiveness
The software needs to be intuitive to use. It must not do something that the user doesn't expect. It needs to adhere to the UI guidelines of the platform, since this would be most intuitive for users of said platform.
2) "Discoverability"
This follows on from intuitiveness. The software should be easy enough to use that you can pick it up from the get go without having to resort to a manual. It should be designed so that more advanced features can be "discovered" along the way. That way, the user isn't bogged down by the initial steep learning curve.
3) Documentation
This is the manual that the user can fall back on when points 1) and 2) don't hold true. Every feature needs to be documented, with more material focused on the more complex aspects of the software. For example with an image manipulation package, there's no real need to document most of the items under the standard File, Edit menus. However, it would be good to document the functionality of filters. It would be even better if you documented how to perform common tasks, e.g. red eye removal, sharpening and image, noise reduction, etc.
4) Stability
The application needs to be stable and not crash when the user performs some common operation. It is granted that bugs and thus crashes will happen. These can be minimized by being rigorous in the development phase, by testing frequently and thoroughly. Unit tests and automated testing tools help a lot here.
5) Support
Bug reports need to be addressed quickly. Even if a fix isn't released, an acknowledgment should at least be given so that the user knows that their feedback has been received. Developers should also keep users abreast of the latest developments, and plans for the project. Not all users are keen to know this, but there are many who do. These users tend to be the keen ones (i.e. enthusiasts), who are more likely to spread the news of your product by word of mouth. Keep them up to date, keep them happy and your product will do well.
6) Speed
Your software doesn't have to be a speed demon. It shouldn't be too sluggish either. What is important is "perceived speed". If a process is going to take longer than a second, provide a progress bar so that your users know that your program hasn't hanged. One example could be the an image editing program I use on the Mac. When you perform an operation, it doesn't show a progress bar! This may not be an issue when you're working with 2 MP images and operations take a second or two to complete. However, it is a big issue when you are dealing with 10 MP images. The application looks like it's completely hanged until the operation completes, some 20 seconds later. The GIMP actually performs slower than this particular app if you time the operations, but it doesn't feel slower since it shows a progress bar and you know that the the application hasn't hanged! Always always provide feedback to your user when performing long operations. Failure to do so will frequently result in your app being called "slow" even if it is faster!
Wow .... that's a long list -.-