Software Development Life Cycle: Are Steps Done In Reversed Order

Software development life cycle is usually presented as circle of steps, such as Requirements & Analysis, Design & Architecture, Developing & Coding, Testing and Maintenance. Steps are connected with arrows in that order.

Software development life cycle
Software development life cycle

Are steps really done in that order?

Let’s look at Reversed software development life cycle. Let’s start with the first step when it is development of a new product started.

Step: Requirements & Analysis

When you start building a new product, you do not have the product yet. Imagine your product. What problem will it solve. How will it be used. How would the world look like, if product existed. You can define requirements and make analysis on imaginary product that does not exist.

Step: Testing

In software development processes Test-driven development and Behavior-driven development tests are written before a production code is written. The product is tested before it even exists. The product can not exist if it does not pass all tests or if tests do not exists.

Step: Developing & Coding

You write the production code for tests.

Step: Design & Architecture

From Principles behind the Agile Manifesto: The best architectures, requirements, and designs emerge from self-organizing teams. It does not state when design or architecture emerge. Let’s say that the design and the architecture is implemented after some of the product is made. This means after some of the production code is written.

Step: Maintenance

After all tests passed the product is prepared for a production use. This is the last step in the cycle.

Reversed software development life cycle

Reversed software development life cycle is not completely reversed Software development life cycle. Steps Maintenance and Requirements & Analysis are switched. In Reversed software development life cycle is the first step the same step as in Software development life cycle. It is same for the last step.

Reversed software development life cycle
Reversed software development life cycle

Leave a Reply