Meadowlark have twenty years of experience of writing software applications, and we have drawn some conclusions about quality and what constitutes high quality in software.
Software is supposed to fulfil a function, and the better it does so the higher quality that software is recognised as having. But how do we know software has fulfilled its intended function?
For simple computer applications it is possible that there are few expectations of it, and success or failure can be recognised quickly from a cursory examination. However for more sophisticated computer applications in the mainstream, the user has a much more detailed set of requirements - and these may be formally recorded in a requirements document (RD) - that painstakingly records what the software is expected to do.
A comparison of ones expectations of the software as described in the RD, against the performance of the software gives an indication of quality. Software that clearly does not deliver the services the user expects, is not high quality. But it is not that simple.
If a user lacks adequate training in the use of the software, they may misunderstand the full capability of it and consider it as being of poor quality, when in fact it is just misunderstood.
Conceptual quality of software is the quality of the algorithm used when the software was written. The better the quality of the algorithm, the better the quality of the end product. A poor algorithm will probably require more lines of code to implement, will be harder to upgrade and maintain, require more memory, and take longer to execute. It might also be harder to explain to a fellow colleague.
Conceptual quality in software is something that can only be appraised with detailed knowledge of how the appraised software works, and this requires access to the source code.
Problems with conceptual quality often do not become apparent until software has been in use for some time. By which time they can be very difficult to fix.
Aside from how software fulfils a function, there is the important aspect of how elegantly this is achieved. And by elegance, I am referring to how attractive the software is. It is an unfortunate fact that the quality of most things are judged on their appearance - even people do not escape this judgement. And so to sum up, software that is recognised as being of the high quality is software that both does what what supposed to do and is attractive.
An interesting fact about attractive software is that users of such software will have more patience, more perseverance and more faith in attractive software than its ugly counterparts.
There are other aspects to software quality, but the user only directly experience functional and aesthetic quality.
1. It is just possible that desktop computers will largely disappear. Software developers, graphic artists and in fact anyone creating digital content in its various forms will persevere as desktops are more powerful by virtue of their larger size. They will be no larger than a DVD drive. They will be silent, and run free software, and much of this will be web based. They will use solid state disks, and large quantities of cheap memory.
2. More powerful mobile phones will steadily replace most devices for the consumption of digital content.