SCRUM
WaterFall
Advantages
1. Clear project objectives.
2. Stable project requirements.
3. Progress of system is measurable.
4. Strict sign-off requirements.
Disadvantages
1. Time consuming
2. Never backward (Traditional)
3. Little room for iteration
4. Difficulty responding to changes
RUP
Advantages
- This is a complete methodology in itself with an emphasis on accurate documentation
- It is proactively able to resolve the project risks associated with the client's evolving requirements requiring careful change request management
- Less time is required for integration as the process of integration goes on throughout the software development life cycle.
- The development time required is less due to reuse of components.
- There is online training and tutorial available for this process.
Disadvantages
- The team members need to be expert in their field to develop a software under this methodology.
- The development process is too complex and disorganized.
- On cutting edge projects which utilise new technology, the reuse of components will not be possible. Hence the time saving one could have made will be impossible to fulfill.
- Integration throughout the process of software development, in theory sounds a good thing. But on particularly big projects with multiple development streams it will only add to the confusion and cause more issues during the stages of testing
Agile
Advantages
- Agile methodology has an adaptive team which is able to respond to the changing requirements.
- The team does not have to invest time and effort and finally find that by the time they delivered the product, the requirement of the customer has changed.
- Face to face communication and continuous inputs from customer representative leaves no space for guesswork.
- The documentation is crisp and to the point to save time.
- The end result is the high quality software in least possible time duration and satisfied customer.
Disadvantages
- In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
- There is lack of emphasis on necessary designing and documentation.
- The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
- Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
Agile SCRUM
Advantages
- Agile scrum helps the company in saving time and money.
- Scrum methodology enables project’s where the business requirements documentation is hard to quantify to be successfully developed.
- Fast moving, cutting edge developments can be quickly coded and tested using this method, as a mistake can be easily rectified.
- It is a lightly controlled method which insists on frequent updating of the progress in work through regular meetings. Thus there is clear visibility of the project development.
- Like any other agile methodology, this is also iterative in nature. It requires continuous feedback from the user.
- Due to short sprints and constant feedback, it becomes easier to cope with the changes.
- Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members.
- Issues are identified well in advance through the daily meetings and hence can be resolved in speedily
- It is easier to deliver a quality product in a scheduled time.
- Agile Scrum can work with any technology/ programming language but is particularly useful for fast moving web 2.0 or new media projects.
- The overhead cost in terms of process and management is minimal thus leading to a quicker, cheaper result.
Disadvantages
- Agile Scrum is one of the leading causes of scope creep because unless there is a definite end date, the project management stakeholders will be tempted to keep demanding new functionality is delivered.
- If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints.
- If the team members are not committed, the project will either never complete or fail.
- It is good for small, fast moving projects as it works well only with small team.
- This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed in time.
- Scrum works well when the Scrum Master trusts the team they are managing. If they practice too strict control over the team members, it can be extremely frustrating for them, leading to demoralisation and the failure of the project.
- If any of the team members leave during a development it can have a huge inverse effect on the project development
- Project quality management is hard to implement and quantify unless the test team are able to conduct regression testing after each sprint.