I just came across a fascinating article written by Alistair Cockburn in 2004. The article is lengthy and fairly academic, but it’s well worth the time of anyone involved in software development.
In his article, Cockburn offers that software is best understood as a game and not as an engineering discipline. His use of game here is in the vein of game theory – i.e. understanding an activity as the interaction of multiple players making decisions to maximize gain.
Cockburn explores the history of engineering and chronicles the shift in understanding of it from primarily a craft to a formulaic discipline. He goes on to explain the inadequacies of framing engineering in this way and details the specific shortcomings of force-fitting software development into an engineering discipline. Rather, he suggests that viewing software development as a game is far more effective at explaining its inherent nature and reaching successful outcomes.
Those familiar with the ideas of Software Craftsmanship and Agile software development will find Cockburn’s thoughts especially intriguing.