Linear process model - kubapeter/portfolio GitHub Wiki

Linear process models are process models that follow a series of phases, one by one, with no return to prior phases. The product is essentially specified, designed, developed, and released in that order, with no opportunity to revisit earlier phases.

Early linear process models subscribe to a manufacturing view of a software product. In essences, this means that it is machined and assembled according to certain requirements. Once produced, the product would only require minor maintenance upkeep, like an appliance. The emphasis falls on getting all the requirements specified “correctly” at the beginning of the process and not changing them afterwards.

Historic background

In the early days of computing, the process of software development did not favour quick experimentation. Computers were not as prolific as they are now, and developing for them was much costlier. Computer code had to be written (or punched into cards) with meticulous attention to detail, and the time it took to compile the code was often significant and expensive. As a result, there was more emphasis on detailed, upfront design. Linear process models fit into this early way of thinking.

Linear process models are a legacy from an era when computing power was relatively expensive compared to human labour. So, programming was efficient for computers, but not necessarily for people. The time elapsed between writing a line of code and seeing its result could be hours. Trying small programming experiments to quickly test out ideas were not practical. Linear process models fit into a mode of thinking — get things right the first time and avoid rework.

Pros and cons

Linear processes are best suited to projects where

  • very little feedback or refinement is expected
  • well understood from the start, with
  • little to no room for change.

Examples