If you had to choose one advantage that Scrum gives over a waterfall process, what would it be?
views:
2056answers:
25You build what the customer wants as opposed to what the customer thought they wanted when you gathered requirements.
EDIT: This is a general property of Agile methods with the emphasis on delivery early and often -- the exact opposite of waterfall (delivery late and once).
There can be some implementations of software development that use most of Scrum within a waterfall framework so part of your question may be based on mis-information.
The main advantage I see in Scrum is the daily communication and accountability it provides so that everyone on the team can know what everyone else is doing plus share where he or she is. The visibility this gives to see what is going on along with the accountability of telling what you are doing is what can make Scrum a very nice part of developing software assuming you are working with people that can get along and are comfortable making their own rules to some extent.
It gives you a process that delivers useable business function early and often, which increases the likelihood that the customer will be satisfied with your results. It also does so at a relatively low cost, and reduces the risk of failure.
That you deliver usable bits of software rapidly so that you find out whether or not you are on the right track before the project goes off the rails.
Of course, this applies to any agile process as opposed to waterfall, not just Scrum.
That your code runs stable at the end of each sprint.
Nothing worse than trying to work on an unstable code base.
The number one reason I like SCRUM is the burn-down concept. No one cares how much time you have spent, all they need to know is how much time you have left.
No Death Marches.
Define what you can deliver every sprint.
If you don't make it that is immediately reflected by pushing features (sorry stories) out of subsequent sprints.
I find that it is a great motivator, that the team as a whole is involved in the planning process, and not just a couple of people (which was the case previously). Usally this also amounts to more precise estimates, in my experience, which is essential in keeping the project on the right course.
Also, it is great to have a good overview of, what is actually going on on the team currently, knowing what everyone is working on to some extent, instead of just having the project leader giving out assignments individually.
User (Product Owner) is involved with deciding what is needed next.
So you have immediate buy in from the users.
And immediate feedback when a story does not match what they expected.
i see this confusion a lot, so let's be specific:
- Scrum is a project-management method,
- 'waterfall' is a software-development methodology
The two are not equivalent.
the confusion arises because Scrum is often practiced as the project-management part of an Agile development process, but Scrum and Agile are not the same thing
so to be technically accurate, your question makes a bad assumption! Perhaps you'd like to rephrase it?
Waterfall is the first attempt to tackle software development using the common engineering aproach. In other words, It's HORRIBLE for everybody.
Main advantage of SCRUM? It was actually planned to be used for software development.
Mainly the code "growth" with new information, is not "assembled" only after somebody says the information you have is enough (which never is).
Waterfall assumes you know everything in advance, which just isn't possible.
A good scrum process starts the same way waterfall does, listing out everything you want to build. The advantage of scrum, though, is that you re-rank that list after every iteration, you're always building exactly what the customers want.
When we were building a beta of one of our products we allowed the beta customers to help drive the stack rank for the next cycle. The end result was a product that the customers wanted, not one we dictated to them.
SCRUM (and all agile methodologies that follow the agile manifesto) acknowledge that software developers are human. Waterfall practitioners are more likely to believe that software is developed by interchangeable man-month robots.
The ability to change directions or process course corrections without impacting the schedule, cost, or performance dramatically.
One of the biggest benefits you'll see is that you have iterative cycles. The customer is going to change their mind, budget, etc. It helps to be flexible, instead of getting the reaction, "that isn't what I asked for, so I'm not paying for it"
I think true waterfall days are gone. Spiral took over waterfall and lot of teams operate in spiral even without knowing it. In one of my previous tags I mentioned that Agile is evolved from spiral.
'Late binding'. In agile methodologies, defer decisions. You make calls later in the project cycle when you actually have relevant knowledge, as opposed to earlier when you do not. That improves the quality of your decisions.
Others said that Scrum gives us "Happy developers", and "Motivated developers". To me that is the most striking observation. I disagree with the opinion that Scrum merely amplifies the (elite/bad) programmers' performances: In my experience it consistently improves developer performance.
Why, well:
- It's energizing to feel part of a team. They've got your back. You've got theirs.
- You can feel your work has a sense of meaning. POs will make sure.
- You committed to goals within reach, you feel in control
- You won't get stuck very long, you do not feel alone
- You see the fruits of your labour, you can feel proud, immediately
Notice that these are not 'technical' but very 'emotional'. I think this is "happy". After all this, the only route toward increasing your happiness e*ven more* is to try and become a better programmer... which I see happening again and again.
To summarize:
Scrum makes developers reach higher, perform better, with intrinsic enjoyment.
One reason I like Agile is that it allows you to fail faster, sooner, cheaper (meaning, if the project is going to blow up, you'll find out about it a lot faster).
The biggest example of Scrum over waterfall? Near-daily visibility into project status/progress, or the lack thereof. Most waterfall projects are cheerfully stated to be on track until very close to a checkpoint/phase gate... and then they're discovered to be late by some unknown amount. With Scrum you always know where you stand, and you get visibility into problems early enough so that you can actually do something about it. Best of all, Scrum project status tracking is much easier than waterfall project status tracking, and inherently more accurate since the unit of measure is remaining functionality instead of hours worked.
That the team embraces change without all the trauma associated with change control processes in Waterfall.