September 1, 2017

The Different Phases in a Software Development Life Cycle – Part I

In our previous post, we had written about the importance of testing in a Software Development Life Cycle (SDLC). In this piece, we will take a closer look at some of the different phases that together form this life cycle.

As mentioned in the previous post, each of the phases forms a logical path at the end of which we get the final product. Each phase takes the product development process one or two steps ahead and forms the raw material (so to speak) for the next phase. These phases are defined differently across the software development industry but broadly comprise of:

  • Preliminary analysis and concept proposal
  • Requirement analysis
  • Planning and resource allocation
  • System design
  • Development (also known as coding or implementation)
  • Testing
  • Installation and deployment
  • Maintenance and upgrades

Let us look at the first three of these SDLC stages in this post and understand what each involves in an SDLC.

Preliminary Analysis and Concept Proposal:

The first stage of an SDLC is to make a preliminary assessment of requirements, understand the industry or client constraints, undertake a feasibility study and arrive at an initial cost estimate. This phase helps identify the boundaries within which the software development company will have to operate when they begin their work. A project that helps streamline operational processes will also require a preliminary assessment of current operational structure, opinion of senior management in the client organisation and an overview of current management systems. Once these points are factored in, a concept proposal is prepared and shared with the client for their opinion.

Requirement Analysis:

In this SDLC stage, the software company breaks down the requirements into achievable project goals and specific features and benefits that the software needs to incorporate. The stage involves a deeper understanding of requirements, flaws or problems in the current software or processes, and expectations from the new software. The developers may also talk to people in the junior rungs of the organisation to understand the problems they face and their thoughts on streamlining internal processes. The stage incorporates the client management’s feedback on the concept proposal. After the requirements have been collated, they are analysed for their validity and the feasibility of incorporating them in the final product.

Planning and Resource Allocation:

This stage involves the creation of a project management plan and other documents that help define the software development roadmap. These documents serve as the guidelines for the project and include details such as the platforms to be used, the programming languages to be used, stages of product development, timeline and so on. Each of the SDLC phases to follow and the steps therein are enumerated for reference of all parties involved. The plan helps clearly define the modalities of the development process and ensures there are no disconnects in terms of expectations and end-result.

In the next post, we take a look the other processes of SDLC, viz.

  • System Design
  • Development
  • Testing
  • Installation and Deployment
  • Maintenance and Upgrades