by Prof Barry Dwolatzky
How good is South Africa at software development? Where would we be placed in a league table of software developing nations? I guess the answer would depend on what one means by “good” and what such a “world ranking” would be based on.Without doubt South Africa has a lot to be proud of and a great deal to show in terms of its achievements in software development. South African companies, teams and individuals have made significant contributions to the world of software development over many decades.
Let me therefore re-phrase my question as follows: In terms of important performance measures such as quality and predictability, how good is South African software development?
Let me expand a bit on this. Software applications are usually developed to meet some specific business requirement. Government may, for example, require a new system to securely manage the issuing of identity documents and passports. A bank may wish to offer a new internet-based service to its customers. In such cases (when a solution can’t be bought off-the-shelf) a development team is given the task of producing the required application. The customer specifies what is required (not always an easy task) and the team makes a commitment to deliver the application within a certain time and for an agreed cost. The customer also expects the application, once it’s delivered, to operate without “bugs” and errors.
It is therefore clear that in the field of software development delivery time, cost and quality are important measures for the customer. Over many years the performance of software development teams around the world has been studied and benchmarks have been determined. The “average” picture that emerges is the following:
- Projects are typically delivered late: between 27% and 112% over scheduled date
- Projects cost more than expected: between 17% and 85% over allocated budget
- Applications are delivered with many defects: between 1 and 7 defects per 1,000 lines-of-code [KLOC]
- About 50% of the time and cost of a project is taken up doing system testing and re-work to correct errors.
Although this picture of software development around the world is not very encouraging, customers have come to accept the fact that acquiring a software solution is a risky and expensive undertaking.
Coming back to my question: In terms of the performance benchmarks listed above, how good is South African software development? Where do we rank in the world?
Unfortunately I don’t have an answer. As far as I know there has been no authoritative research done to collect the necessary data on software development projects in South Africa. Maybe I’m wrong? Does anyone have such data? My gut-feel – based on many years of engagement with companies and individuals involved in software development in South Africa – is that we rank at the “bad” end of the performance benchmarks listed above.
Should we be concerned about the fact that we are (probably) not very good in world terms at delivering software projects on time, within budget and of good quality? I definitely think that we should be very concerned as the software industry becomes incresinglycompetitive!
I’ve just arrived in Pittsburgh, USA, to attend the annual “TSP Symposium” organised by the Software Engineering Institute (SEI) at Carnegie Mellon University. TSP is the “Team Software Process”. Since 2007 I’ve been tracking adoption of TSP in various countries around the world. In 2009, through the JCSE, I launched a TSP Pilot programme involving two South African companies – Nedbank and Dariel Solutions. Later today (Tuesday 21st Sept) the three of us – JCSE, Nedbank and Dariel – will be presenting a paper on the results of this pilot programme to the TSP Symposium. Our paper is entitled: “Will TSP shape the future of software development in South Africa?”
Over the next few days I’ll do a daily blog posting from the TSP Symposium. Watch this space if you’re interested. And please comment if you have any thoughts on anything I say!