What is the Software Development Lifecycle ?

The Software Development Lifecycle (SDLC) is a process which is used to build high-quality software solutions.

It is used to produce software solutions which fulfills the business needs and is built on time and within budget.

The SDLC is a detailed plan which describes how to plan, build, and manage software.

The SDLC is split into different phases which has individual processes and these phases are:

  • Phase 1: Requirement collection and analysis
  • Phase 2: Feasibility study
  • Phase 3: Design
  • Phase 4: Coding
  • Phase 5: Testing
  • Phase 6: Deployment
  • Phase 7: Maintenance

Phase 1: Requirement collection and analysis: this is the planning stage is the first step in the software development lifecycle. It is used to define the business needs, identify any potential issues and opportunities.

This is also where the business requirements are gathered through various elicitation techniques such as interviews, workshops and Brainstorming.

Phase 2: Feasibility study: in this phase the feasibility of various proposed solutions are analyzed. The gathered requirements are documented and analyzed and those analyzed requirements are used to identify the proposed future state. This proposed future state is then used to identify potential solutions and each solution is analyzed based on the following criteria:

  1. Would the solution fulfill the business needs ?
  2. Would the solution stay within budget ?
  3. Would the solution be delivered on time?
  4. Do we have the technical requirements needed to complete the project ?
  5. Would it affect any legal obligations that we might have ?

Phase 3: Design: in the design phase of the SDLC, the system and software design documents are prepared. These documents are used in the solution design and can act as a maintenance guide after the solution has been implemented.

Phase 4: Coding: In this phase, the solution developers start developing the software by writing programming codes. This stage can be quite long and tedious, so incorporating Agile methodologies can make it easier, faster and more manageable.

Phase 5: Testing: once the software developers are done with a feature they can send it to the Quality Assurance Testers to be tested. It is the QA team’s job to test the feature to ensure that it fulfills the acceptance criteria and does not break the solution.

This stage also involves the user acceptance tests (UAT) which is the test that the end users do to ensure that the solution fulfills the business needs.

Phase 6: Deployment: once the solution is ready, then it is deployed to the production environment and the end users can start using it. This phase would also include end user training and support to ensure that the end users can understand and use the solution.

Phase 7: Maintenance: After the solution is deployed then it needs to be maintained to ensure that it can continue to fulfill the business needs and grow dynamically with the business. Maintenance activities can also include upgrade, bug fixes, software patching and the addition of new features.