Software development process

1. Linear (Traditional)

In the past it was very common to develop software projects that way. It means you have for the whole project just one sequence of define, develop, validate and release. This leads to the big problem that the working software and the feedback from the customer is just at the end of the whole production available.

Define -> Develop -> Validate -> Release

Examples
– Waterfall
– V-Model


2. Iterative (Modern)

Later on they started to develop software projects with this approach. The difference is that the sequence of define, develop, validate and release is happening in cycles. After every cycle a working software version is available with more functionality then after the last one. Now you can also easily get feedback from the customer after every cycle.

Define -> Develop -> Validate -> Release
  ^                                 |
  \---------------------------------/

Examples
– Spiral
– Scrum