15
Confidential. © E2Logy Software Solutions Pvt Ltd Are you really using Agile or is it Iterative Waterfall? Ruchhir Agarwal 6 th June 2014

Software Development Methodologies By E2Logy

  • Upload
    e2logy

  • View
    741

  • Download
    0

Embed Size (px)

DESCRIPTION

Software development methodology in software field is a framework which is used to structure,plan and control the process of development. Some of the common development methodologies are Waterfall, iterative Waterfall, SCRUM (Agile), Kanban (Agile). This presentation deals with all these methodology in detail.

Citation preview

Page 1: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

Are you really using Agile or is it Iterative Waterfall?

Ruchhir Agarwal6th June 2014

Page 2: Software Development Methodologies By E2Logy

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:

Page 3: Software Development Methodologies By E2Logy

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.

Page 4: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

WaterfallThe 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.

Page 5: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

Iterative WaterfallOften 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-warning-signs as you don’t find out whether you’re on track until the end of the sprint.

Page 6: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

Iterative Waterfall

Most companies think this is SCRUM Sprint and hence they are using Agile. It is NOT!

Page 7: Software Development Methodologies By E2Logy

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:

Page 8: Software Development Methodologies By E2Logy

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.

Page 9: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

SCRUM (Agile)

SCRUM is a process of how to manage sprints:

Page 10: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

SCRUM (Agile)

A Sprint means working on multiple features (stories) simultaneously

Page 11: Software Development Methodologies By E2Logy

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.

Page 12: Software Development Methodologies By E2Logy

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.

Page 13: Software Development Methodologies By E2Logy

Confidential. © E2Logy Software Solutions Pvt Ltd

Kanban (Agile)

Page 14: Software Development Methodologies By E2Logy

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

Page 15: Software Development Methodologies By E2Logy

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.