Software Industrialisation – How to Industrialise Knowledge Work?
Industrial production has been paramount for survival on competitive markets. But what does this mean for software development? Will occidental programmers be supplanted by computers churning out software? Or by hordes of low paid programmers in India as clothing manufacturers have been by sewers in Bangladesh? Industrialisation is usually measured in terms of production capacity (how much can you produce per day?) and production price (at what unit costs?). This raises two questions: (1) What is a suitable unit of software quantity? And (2) how do you calculate the unit price? The answer to (1) should depend on the value a piece of software really affords the user, which leads to the notion of a feature with measurable benefit. A rash answer to (2) would be “required time multiplied by labour costs” but this neglects quality debts caused by flaws such as unclean code, careless testing, lacking functions, breached architecture, poor performance or insufficient data security. Software debts tend to go unnoticed for a while but lead to a dead end in the long run: time and money is squandered on imperative repairs while new features grow more and more expensive, with the project being finally brought to a grinding halt. This article explains what software industrialisation really means and how it is achieved. And, most importantly, it tells how to keep quality debts close to zero.
- 1.F. Brooks, The mythical man-month, Addison-Wesley, 1975.Google Scholar
- 2.T. DeMarco, T. R. Lister and D. House, Peopleware: productive projects and teams, Pearson Education, 2013.Google Scholar
- 3.M. Csikszentmihalyi, Flow: The psychology of optimal experience, HarperPerennial, 1991.Google Scholar
- 4.L. Seiwert, Das neue 1x1 des Zeitmanagements, Gabler, 2006.Google Scholar
- 5.J. Humble and D. Farley, Continuous delivery: reliable software releases through build, test, and deplyoment automation, 2010.Google Scholar