Software developers and their industry were scrutinised at the latest BCS Thought Leadership Debate, which asked the question: what makes software dependable?
At the event, senior people from IT users, suppliers and universities heard that some developers specified software using ambiguous English and vague diagrams, used ill-defined programming languages with known weaknesses, and hoped that testing the resulting mess would lead to a usable product. This often resulted in software that was not dependable.
However, "dependability" is not the same as having the software meet its users' needs, the debate heard. For example, software with a disappointing feature set that fails to meet its users' expectations may be "dependable" because it never does anything that could not be predicted and has minimum downtime.
Suggestions were made at the debate about how the industry could improve this situation. One of the most interesting proposals was to set up a system where feedback on software would come from the developer's peer group, using a rating system similar to that seen on eBay.
This reputation system would allow people to read feedback on developers and products. The BCS, as an independent organisation, was volunteered to host such a system.
Other suggestions included:
CIOs taking greater responsibility for selecting and monitoring the development of software
Agreeing and documenting specifications and requirements before software is developed
CIOs better understanding the cost of outages.
Using risk-based assessment to drive programming forward
The software industry going back to programming basics, with everyone using one language
Business and individuals putting more value on dependability
Encouraging designers to use systems engineering tools and only apply software with a solid engineering base
More rigorous certification for software
Government encouraging a more professional approach by creating a framework to help generate quality
Designers questioning systems as they are developed and considering carefully the validity of what they are trying to achieve.
Despite its criticisms, the debate agreed that there were plenty of systems that worked well, such as the software that runs chemical plants and pharmaceutical equipment. The Oyster card system and London's congestion charging system were held up as examples of successful software that were often overlooked and should be celebrated more.
Comment on this article: [email protected]