Contenu connexe Similaire à Software Development Methodologies By E2Logy (20) Software Development Methodologies By E2Logy1. Confidential. © E2Logy Software Solutions Pvt Ltd
Are you really using Agile or
is it Iterative Waterfall?
Ruchhir Agarwal
6th June 2014
2. Confidential. © E2Logy Software Solutions Pvt Ltd
Methodologies
Waterfall
Iterative Waterfall
SCRUM (Agile)
Kanban (Agile)
Software development methodologies we’ve used in E2Logy and are widely
accepted:
3. Confidential. © E2Logy Software Solutions Pvt Ltd
Waterfall
‘Waterfall Development’ is another name for the more traditional approach to
software development.
It’s called ‘waterfall’ as this type of development is often planned using a Gantt
chart –you complete one phase (e.g. planning) before moving on to the next
phase (e.g. development).
In Waterfall approaches, you will rarely aim to re-visit a ‘phase’ once it’s
completed. As such, you better get whatever you’re doing right the first time!
This approach is highly risky, often more costly and generally less efficient than
more Agile approaches.
4. Confidential. © E2Logy Software Solutions Pvt Ltd
Waterfall
The main issues with this approach include:
• You don’t realize any value until the end of the project (when you deploy)
• You leave the testing until the end, which means you’re leaving issue discovery
until late in the day
• You don’t seek approval from the stakeholders until late in the day – their
requirements might have changed
• You’re heavily reliant upon a plan, which you can/will often follow to the
detriment of the end result
• You’re heavily reliant upon a project manager driving the way – the power of one
• Waterfall projects define a rigid scope-change control process to manage any
changes to work already underway.
5. Confidential. © E2Logy Software Solutions Pvt Ltd
Iterative Waterfall
Often misinterpreted as Agile.
This approach carries less risk than a traditional Waterfall approach but is still
far more risky and less efficient than a more Agile approaches.
The focus is on delivering a sprint of work as opposed to a series of
valuable/shippable features. The most commonly occurring issue in this type of
scenario is bottle necking. For example, you deliver loads of code a little bit
behind schedule (?) and you leave it until the last minute to test everything. One
issue takes longer than expected to resolve, you miss your sprint deadline
and you deliver nothing.
Another common symptom of this type of approach is over-commitment. It’s
really difficult to estimate the total effort associated with a particular User
Story/Feature when approaching delivery in this phased way. You’re more or
less forced to estimate each phase separately (e.g. estimate development
separately to testing in this instance) – this doesn’t work as the phases are not
separate, they’re totally intertwined. For example, if you find an issue with the
test, you must return to development.
The whole team must remain focused on delivering the end goal, not the
separate phases. It’s also worth noting that velocity and burn downs are far less
(if at all) useful in this type of environment – you don’t benefit from early-
6. Confidential. © E2Logy Software Solutions Pvt Ltd
Iterative Waterfall
Most companies think this is SCRUM
Sprint and hence they are using Agile. It
is NOT!
7. Confidential. © E2Logy Software Solutions Pvt Ltd
Iterative Waterfall
The design, development, integration, and testing (DDIT) stage is a sequential process
in a Waterfall project. The graphics below illustrate this difference:
8. Confidential. © E2Logy Software Solutions Pvt Ltd
SCRUM (Agile)
This approach carries far less risk than Waterfall approaches. We focus on
delivering fully-tested, independent, valuable, small features. As such,
we diversify our risk – if one feature goes wrong, it should not impact another feature.
With that said, we still plan our work in iterations and we will still release at the end
of each iteration.
9. Confidential. © E2Logy Software Solutions Pvt Ltd
SCRUM (Agile)
SCRUM is a process of how to manage sprints:
10. Confidential. © E2Logy Software Solutions Pvt Ltd
SCRUM (Agile)
A Sprint means working on multiple features (stories) simultaneously
11. Confidential. © E2Logy Software Solutions Pvt Ltd
SCRUM (Agile)
Once the Sprint begins, the scope is frozen and no change request is allowed until that
Sprint is complete.
12. Confidential. © E2Logy Software Solutions Pvt Ltd
Kanban (Agile)
How does Kanban work?
Visualize the workflow
• Split the work into pieces, write each item on a card and put on the wall.
• Use named columns to illustrate where each item is in the workflow.
Limit Work In Progress (WIP) – assign explicit limits to how many items may be in
progress at each workflow state.
Measure the lead time (average time to complete one item, sometimes called “cycle
time”), optimize the process to make lead time as small and predictable as possible.
14. Confidential. © E2Logy Software Solutions Pvt Ltd
Kanban (Agile)
What are the benefits of Kanban?
• Bottlenecks become clearly visible in real-time. This leads people to collaborate to
optimize the whole value chain rather than just their part.
• Provides a more gradual evolution path from waterfall to agile software
development, thereby helping companies that previously have been unable or
unwilling to try agile methods.
• Provides a way to do agile software development without necessarily having to use
time-boxed fixed-commitment iterations such as Scrum sprints. Useful for situations
where sprints don’t make much sense.
SCRUM vs Kanban: http://www.crisp.se/file-uploads/Kanban-vs-Scrum.pdf
15. Confidential. © E2Logy Software Solutions Pvt Ltd
Million $ Question
Which model to use when?
• Waterfall- Use for small projects <1 month with clear requirements
• Iterative waterfall- Use for large projects >6 months with unclear requirements
or requirements that may change or need validating.
• SCRUM- Use when everyone sits together including customer and a large
team is available.
• Kanban- Use for medium projects >1 to <6 month duration.