What is System Development Life Cycle (SDLC)
An understanding of SDLC is essential if you are starting a career in Information Technology. In this blog, we will learn What is System Development Life Cycle (SDLC).
System Development Life Cycle (SDLC)
System or Software Development Life Cycle (SDLC) refers to the process involved in the development of the Software or Information System. It consists of a series of steps performed in a sequential or linear fashion to deliver a reliable system. SDLC process can be applied to the development of any system.
A System Development Life Cycle is organized into a series of activities or tasks. The output of one activity or task is used as the input of the subsequent task. These activities are performed by various team members for a smooth delivery of the system. It ensures a high quality result based on planning, development, testing, deployment and maintenance phases.
6 phases of System Development Life Cycle (SDLC)
The 6 phases of SDLC are :
-
Planning/Analysis
This is the initial phase in SDLC. In this step, stake holders meet to answer the question – What problems need to be resolved and how? Alternative suggestions are made and cost-benefit analysis is done. This phase creates a plan for the other ensuing activities in the development cycle. The following activities are performed in this phase,
-
- Provides problem definition
- Cost-benefit analysis
- Plan for the resolution
- Resource planning i.e. personnel, cost and infrastructure
- Planning for development
- Plan for testing, deployment and maintenance
-
Requirement Gathering
- In this phase, development team or Business Analyst meets with the business users to gather the exact requirement of the project.
- A requirement document is now generated that completely lists the details of what is needed.
- An example of a requirement can be : Create a dashboard with 7 visualizations. These visualizations should display sales trend, sales and profit relationship etc.
-
Design
- All the development work happens in this phase.
- The developers procure the requirements and create an application to satisfy the customer requirements.
-
Testing
- In this phase, the developed product or application is tested by the business users.
- Depending on the size and complexity of the application, there can be a dedicated testing team that will test the application against the test cases. QA automation using Selenium is one method to test applications.
- If the entire application or a particular module fails in testing, it goes back to the developers.
- Once the application is successfully tested and the testing team approves then the development team migrates the application to production.
-
Deployment
- In this phase, the application is migrated to production or live environment where it can be used in real time.
- Depending on the organization, the deployment or migration team can be a separate team.
-
Support
- Once the application is migrated to production, it is maintained by a production support team.
- The support team will make sure that the application performs as expected. There is no down-time. The data refreshes, if any, occurs on time.
- If the application requires any maintenance, the production support team can fix the minor issues. While for bigger issues, the application is sent to the development team.
The phases in the System Development Life Cycle can repeat during the life cycle. For e.g. if during development phase, the requirements are not clear then the project can go back to the requirements analysis phase, to the business users. If during testing, the team finds bugs in the application, it is sent back to the design phase for the developers to work on.
The two most popular System Development Life Cycle Models are:
- Waterfall Model
- Agile