All Posts

Agile vs. Waterfall (Part 5 of 6) Pros and Cons of Choosing Scrum

 

Part 1: What is a Waterfall methodology?
Part 2: What is an Agile methodology?
Part 3: Cost, functionality and time
Part 4: Pros and cons of choosing Waterfall

The Positives of Agile with Scrum

Since the customer has frequent and early opportunities to see the work being delivered, and to make decisions and changes throughout the project, the customer gains a sense of ownership. The customer works extensively and directly with the project team throughout the project.

Scrum will produce a simple working base version faster than Waterfall, which for instance makes it suitable for prototyping.

Development is user focused and changes due to problems or inadequacies can be remedied quicker and less costly. Since design is flexible the project will run a more evolutionary and less stringent life. This has a number of advantages, especially in project environments where development needs to be able to respond to changes in requirements rapidly and effectively.

Scrum can be especially beneficial in situations where the end-goals of projects are not clearly defined. If it is not possible for the customer to provide a clear goal early on in the project Scrum will work well since this will be clarified as the project progresses.

Using Scrum there is typically more interaction and communication, which often takes precedence of design. Since stakeholders are more involved, it is especially conducive to teamwork oriented environments. Different developers work on different modules throughout the development process and then work to integrate all of these modules together into a cohesive piece of software at the end of the project.

The Negatives of Agile with Scrum

Not all customers have either a wish or the time to be highly involved in the project. Scrum works best when all members of the team are completely dedicated to the project. Thus it is not generally a good idea to have less than 100% dedicated resources for this type of project.

Scrum focuses on time-boxed delivery and frequent reprioritization and thus some items might not be completed within the allotted project timeframe. Additional sprints might be needed to become feature complete, which of course will add to the total cost. Also, the high degree of customer involvement often leads to additional features requested throughout the project, extending the time to complete.

Customers often have difficulty keeping up with Scrum’s rapid development iteration and testing cycle. This can put the project at risk, since the longer developers go without feedback, the harder it is to recover if they are not developing what the customer expects.

Since Scrum is highly flexible it simply does not have the structure that the Waterfall method has. Scrum projects tend to be hard to predict, from timelines to budgets. Without a concrete plan and complete requirement set, everything remains a bit vague.

The close teamwork in Scrum is easiest to manage when the team members are located in the same physical space. Furthermore, the intense collaboration and less than complete requirements results in catastrophic problems if key team members leave the project.

Scrum has less emphasis on understanding the finished system as a whole early in the project which can lead to a reduction in overall system quality and performance. This is especially true for larger-scale implementations, or with systems that include a high level of integration points.

This method of development can be quite time consuming, much more time consuming than the Waterfall method. There is a lot of rewriting code due to changing requirements and bolted on functionality. Often the requirements are not clear from the beginning, which can result in suboptimal architecture that is not flexible enough to meet the final requirements. Often there is not spent much time getting into the true details and really flesh out what the users need before coding is commenced.

As the initial project does not have a definitive plan, the final product can be grossly different than what was initially intended. This also relates to the inability to give an exact launch date once a contract is signed.

When to choose Agile with Scrum over Waterfall

Some things to consider:

  • Project size and complexity is small or not complex (can be used on larger projects under certain circumstances) e.g. smaller eCommerce, websites, app development
  • Customer is available frequently through the duration of the project
  • Customer is able to change scope of the project during progress
  • External system integration is simple or not needed
  • Budget and/or schedule are flexible and changes are welcomed by the customer
  • Rapid prototyping and deployment required. Project/product can be launched without being feature complete
  • No clear picture of what the final product should look like
  • Developers are skilled, adaptable and able to think independently without constant supervision
  • When the product is intended for an industry with constantly changing standards

Part 6: Which method is better?

Dennis Kayser
ABOUT THE AUTHOR | Dennis Kayser
My name is Dennis Kayser and I’m CEO and co-founder in Forecast. I enjoy helping our customers succeed by building great and innovative software that supports teams in their daily work.
Recent Posts

Release Notes

Release Notes- our way of denoting breaking news. Always stay up-to-date with intriguing changes to the Forecast platform. The Month of May 2018 May 1...

Read more

Maximize Efficiency, Profitability, and Perspective with a Connected Digital Invoicing Tool

Are you already using a digital accounting system? Perhaps Xero or QuickBooks? In this article we will go through some of the key advantages of having...

Read more

Benefits of Digital Invoicing using Tools like Xero or QuickBooks

Did you know, accumulated the processing of each invoice may take as much as 16.3 days? More than 16 days! This is largely due to all the manual work ...

Read more

Best Practices of Invoicing: 12 Must-Haves

Invoicing is the final step between delivering the service or product and receiving the payment from your client. Ironically, this crucial step is oft...

Read more