Software Production: Think 'Stages' Rather Than 'Cycle'

Posted 1 year, 1 month ago | Originally written on 24 Mar 2023

I have previously written about the myth of the software life cycle. My problem is the use of the term 'cycle' implying a return to the beginning. While I stand by that article, I am aware of the progression of a software project through various stages. Therefore, it should come as no surprise that I think the best phrase to refer to this is the stages in the production of software much in the same way it would apply in any one direction process such as movie production etc.

What then are the stages involved? For this I've found inspiration in the Design Thinking approach, of which there are several frameworks (IDEO's Design Thinking methodology, Stanford's d.school and the Double Diamond which originated in the UK's Design Council). Despite the variations in terminology they share in common the following ideas:

  • production is one directional i.e. we move from one stage to another discretely with the hope of never returning to earlier stages;
  • prior stages involve exploratory and immersive tasks to understand the problem before proposing any solutions;
  • there is always an 'actual production' stage in which the actual construction of the output is done;
  • there will be latter stages involving some form of validation and testing;

These mirror quite well the film production stages I wrote about previously about applying the studio model to producing software. In fact, if we think of software as 'interactive media' (in the same vein as games) this provides a compelling alternative approach. In effect, I believe that such an approach sounds a death knell to the likes of an Agile approach because of it's lack of a systemative perspective.