SDLC -Methodologies
SDLC (Software Developement Life Cycle)
- It is a process which is followed by IT industry to design ,develop , test and deploy software application.
- There are various teams (Development , Testing , Operation etc.)are involved to transform customer requirement into a high-quality complete software product.
Phases of SDLC
- Requirement Phase:- This phase comes after planning of the application, this phase is of SDLC is gathering maximum information from the client requirements for the product. Discuss each detail and specification of the product with the customer.
- Design:-In the design phase (3rd step of SDLC), the program developer scrutinizes whether the prepared software suffices all the requirements of the end-user.
- Development:- In this phase developer decides best approach to design technically and then choose programming Language to develop the application
- Testing:-Once the developers build the software, then it is deployed in the testing environment. Then the testing team tests the functionality of the entire system.
- Implementation:-Once the testing is done, and the product is ready for deployment, it is released for customers to use.
- Maintenance:-The actual problem starts when the customer actually starts using the developed system and those needs to be solved from time to time.
Methodology for SDLC
- WaterFall
- Agile>
- DevOps
Waterfall Methodology
- It was first SDLC Process model .
- Linear Sequential life cycle model.
- The whole process is divided into separate phases.
- In this model, outcome of one phase act as input for the next phase sequentially.
- Until the first stage is not finished, the next stage will not start.
Advantages
- Product definition is stable.
- Requirements , Process and results are well documented, fixed and clear.
- No ambiguous requirement.
- Specific Deadlines.
Disadvantages
- Not a good model for complex projects.
- Not suitable for long or ongoing projects.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.
- Difficult to measure the progress within the stages.
Agile Methodology
- It is an iterative and incremental process model.
- Divides the project into small incremental builds.
- Each iteration is about one week to 3 weeks.
- Each iteration involves different cross functional teams.
- At the end of each iteration the product is reviewed with customer or other stakeholders.
- It focuses the process adaptability and customer satisfaction.
Advantages
- Collaboration with different teams which promotes team work and cross training skills.
- Suitable for fixed and changing requirements.
- Functionality can be developed rapidly and demonstrated.
- Give flexibility to developers.
Disadvantages
- An overall plan, an agile leader and agile PM practice is a must without which it will not work.
- Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
- Because of very less documentation, transfer of technology to a new team member is quite challenging.
- Because it is heavily dependent on customer interaction, in case customer is not clear about requirement then project can be driven to wrong direction.
DevOps
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.