With the invention of new software methodologies it becomes more challenging for companies to choose the best methodology that best suits their project needs. For example in Web App or Mobile App Development it becomes essential to choose a a methodology that best suit the project at hand.
Waterfall Model
This is a classic life cycle model which is a linear sequential model. In the waterfall model each phase should be completed in entirety before the next phase.
This model is useful for small sized projects and having very accurate requirements. Each phase needs to be completed to move to the next phase. The testing process is only carried out after completion of the implementation. The main point is that this model gives successful outcomes only if the requirements are certain, product defination is stable, and known technology is used.
The main advantages of the Waterfall Model are as follows:
The model is simple & easy to use.
Due to the rigidity of the model each phase has precise deliverables and review process.
Each phase is processed and completed one at a time.
This model works well for small projects where requirements are understood well.
The main disadvantage of Waterfall Model are as follows
Scope adjustment during the life cycle can end a project.
Working Software is only produced in the later phases of the life cycle.
Not a good model for large and complex projects.
Not a good model for long & ongoing projects.
If the requirments are at a higher risk of changing than it is not a good model.
Scrum
Scrum is a agile framework for effective team collaboration on relatively complex projects. Some of the key element of scrum are
Scrum is lightweight.
It is simple to understand.
It is difficult to master.
Scrum employs a heuristic approach as opposed to a programmed algorithmic approach used in the Waterfall Model. This helps to effectively solve complex problems which is not possible in the Waterfall Model.
The Key Roles of a Scrum are as follows:
Product Owner : The product owner decides what needs to be in the product and is responsible for how the product has to be.
Scrum Master: The scrum master will monitor the performance of the scrum within the sprint. (Sprint is a period that the team decided to deliver their part. The sprint period is normally 2-4 weeks).
Scrum Team : The resources are grouped as scrum teams which comprises of BA’s, developers, testers. Each team will be of size of 7-8 members.
So what are the meetings associated with Scrum ?
1. Sprint Planning Meeting : In this meeting the team decides what they will deliver in the sprint.
2. Daily Scrum Meeting : In the daily scrum meeting three questions are asked a) What did you do today? b) What will you do tomorrow ? c) Is there any impediments that is slowing or stopping you ?
3. Sprint Review Meeting : This happens at the end of the sprint where team will demo the completed part to the product owner.
4. Sprint Retrospective Meeting: This happens at the end of the sprint where team will answer three questions a) What went well in the sprint ? b) What went bad in the sprint ? c ) Which areas can be improved in the next sprint ?
The Key Advantages of Scrum
Greater ability to incorporate changes as they occur : This is one of the major advantages of scrum. Any change that comes in the middle of the project can be implemented easily. Rather than waiting for a phase to complete, in scrum a change can be taken up in a sprint and completed .
Quicker release of usable product: As the team do not have the obligation to wait for the end of the implementation to release a software. The running software can be released from time to time. This helps getting good customer feedback opposed to doing in a sequential manner.
Increase Project Visibility: This process helps the team to get more visibility. Therefore, any impediment to the project can be found out early in the project and fixed immediately
More chance and greater responsibility for each team memeber: Since team meetings are held in short durations team members have greater chances to prove. If anything needs to be improved it can be easily taken care of in the next sprint.
Low Cost Model : The overhead cost of using this methodology is less. Therefore, using this model substantial cost savings can be made.
The Key Disadvantages of Scrum
1. Scrum leads to Scope Creep as there is no definite end date.
2. The main challenge in scrum is effective team management. If the team members are not cooperative it becomes an impediment. If a team member leaves in the middle of the project it becomes very hard to implement scrum.
3. Daily meetings can be frustrating at times.
4. Quality is hard to implement until the testing is not done properly.
5. Also, the project can be only completed in time only if the team members are experienced.
Conclusion
Thus, it can be seen that both Waterfall model and Scrum can be used in the project development life cycle. The Waterfall model becomes expensive for big sized projects. However, for small sized projects where requirements are known Waterfall model can be used.
Scrum Model can be used for both small & big sized projects. However, Scrum Model is most suitable in large & complex projects where change in requirements are fast. Scrum model needs a dynamic approach which may become challenging at times.