SDLC – Software Development Life Cycle
Whether it's one line of code or ten thousand lines of code, the basic model for a unit of software development/ enhancement is as below :

We shall start explaining from the central one :
- Coding: This is the central step, and the most important one, because actually writing the code gets done here.
- Design: “How to code” and “What to code” is decided in the design step. Of course, this needs to be done before coding.
- Requirement Analysis: Understanding the requirements – the intention of making the change. This of course needs to be done before design.
- Testing: After the coding is done, ensuring that the code has the desired effect.
- Deploy / UAT (User Acceptance Testing): Deployment is the act of putting the code in a location where it's supposed to work finally. User Acceptance testing is the testing from the client side before accepting.
The first and the last step are colored in a different color because they need interaction between the client and the vendor. The middle steps are carried by the vendor alone.
We have seen norms about the relative sizes (duration/ effort) of each step in software development companies and in software engineering books, such as these :
- Requirement analysis – 30%
- Design – 20%
- Coding – 30%
- Testing – 15%
- Deployment/ UAT - 5%
In practice, they vary widely from work to work. Therefore these norms need to be treated only as reference points – possibly applicable to normal situations. Some interesting deviations are as follows:
- In case of small work, quite often one or more of the steps is trivial and the effort requirement is negligible.
- When a solution needs to be tested against various platforms, the testing effort can become higher than any other phase.
|