Skip to main content

Software Development Life Cycles

SDLC

Software Development Life Cycles is a step by step structured process that is used to help guide teams on design, develop, test, and deploying your application software.

It lay out different phases to follow during a software development cycle:

6-Stages-of-Software-Development-Life-Cycle.jpg

Planning and Requirements

Analyze what is the need and defining the requirements for building out the project.

Design

Design the architecture.

Develop

This is where you will then do coding

Testing and Integration

Testing the application that you have produced and making sure that it integrates well in the bigger system.

This is where you will be writing unit test, integration test, and conduct even performance test to ensure that your application is able to withstand the expected amount of traffic.

Deployment

Finally, once the product is deemed acceptable in a lower environment this is when you will be doing deployment into production to take in the live traffic.

SDLC Model

Given that the SDLC is just a guideline there are different methods of implementing it.

  • Agile: This is what is been more popular now with software engineers. Agile thrives on continuous feedback and adaptations. You deliver software in small but iterative cycles that's referred to as sprints. The requirements are continuously evaluated, planned so that changes can be responded quickly.
    • However, this can subject your team to a lot of scope creep 
  • Waterfall: This is the most traditional model for executing Software Development Life Cycle. You will plan out each of the phases, and then execute each of the phases in sequential. You will only move on to the next phase once the prior phase has been completed.
    • This model have pros in the sense that each phases have clear goal and is well defined making it easy to follow and use. There are minimal scope creep since you defined everything from the planning phase.
    • However, there are cons as well, there are inflexibility with using the waterfall model. Once you committed to a project it will be hard to change / revise the requirements. It is also resource intensive if there are changers needed after the project has began.