Agile Methodologies

Preview:

Citation preview

Introduction to Agile Methodologies

Dhaval Dalalsoftware-artisan.com

dhaval.dalal@software-artisan.com

Traditional Approach

SoftwareRequirement

Specs

Product Knowledge

Product Development

Analysis Develop/UT QA

Feedback

dhaval.dalal@software-artisan.com

Product Development

Analysis Develop/UT QA

The Paradigm Shift

S/WReq.

Specsas a

“Big Batch”

Product Knowledge

Rapid Feedback

SmallBatch

dhaval.dalal@software-artisan.com

The Assumptions⋯

Waterfall Model Iterative & Evolutionary Models

Software dev is predictable Software dev is changeable

Big up-front specs Evolutionary specs

Upfront perfection Continuous Improvement

Predictive planning Adaptive planning

Batch Manufacturing Flow of Value

dhaval.dalal@software-artisan.com

Family of Agile Methodologies Extreme Programming (XP)

Scrum

Crystal

DSDM (Dynamic System Development Method)

Lean

...and many more

dhaval.dalal@software-artisan.com

The Agile Manifesto

Individuals and interactions over processes and tools

Working software over comprehensive Documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

While there is value in the items on the right,

We value the items on the left more.Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler,

James Grenning, Jim Highsmith, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas, Andrew Hunt

dhaval.dalal@software-artisan.com

Agile Principles Primary measure of progress is Working

Software. Deliver frequently. Satisfy customer by adding business value.

Customer Collaboration and Visibility On-site Customer. Show Progress Charts publicly.

Constant Communication. No substitute for a face-to-face conversation.

dhaval.dalal@software-artisan.com

Code and Documentation

Documents can be created, but don’t capture all project information in writing.

Documentation complements Code and Speech Document shouldn’t try to do what the code already

does well. Vital detail about design is captured in the code.

It takes fastidiousness to write code that doesn’t just do the right thing, but also says the right thing.

Source: Eric Evans, Domain Driven Design

dhaval.dalal@software-artisan.com

Agile Principles

Eliminate Waste Design Defects Hand-over

Embrace Change and Adaptive Planning

We will plan by quickly making an overall plan, then refining it further and further on shorter and shorter time horizons – years, months, weeks, days. We will make the plan quickly and cheaply, so there will be little inertia when we must change it.

Kent Beck

dhaval.dalal@software-artisan.com

Agile Principles

Technical Excellence Team-members commit to produce the

highest quality code they can. Continuous attention to good design

enhances agility.

Sustainable Pace. Self-Organizing Teams.

dhaval.dalal@software-artisan.com

What is a Self Organizing Team? Developers make estimates

Responsibilities are not handed to individual team members from the outside.

Responsibilities are communicated to the team as a whole, and the team determines the best way to fulfill them.

Best architectures, requirements, and designs emerge from self-organizing teams.

No “Blame Game” Team members work together on all aspects of the project. No single team member is responsible for the architecture, or

the requirements, or the tests, etc.

dhaval.dalal@software-artisan.com

XP Project

dhaval.dalal@software-artisan.com

XP Project

MasterStoryList

dhaval.dalal@software-artisan.com

XP Project

MasterStoryList

Release #1StoryList

Release #2StoryList

Typically 3 Months

Time boxed

dhaval.dalal@software-artisan.com

XP Project

MasterStoryList

Release #1StoryList

Release #2StoryList

Iteration #1Story List

Iteration #6Story List

Iteration #1Story List

Typically 3 Months

Time boxed

Typically 2 Weeks

Time boxed

dhaval.dalal@software-artisan.com

XP Project

MasterStoryList

Release #1StoryList

Release #2StoryList

Iteration #1Story List

Iteration #6Story List

Story #2

Story #3

Story #1

Iteration #1Story List

Typically 3 Months

Time boxed

Typically 2 Weeks

Time boxed

A story is a smallest unit

of work

Typically 1-2 Days

Time boxed

dhaval.dalal@software-artisan.com

XP Project

MasterStoryList

Release #1StoryList

Release #2StoryList

Iteration #1Story List

Iteration #6Story List

Story #2

Story #3

Story #1

Iteration #1Story List

Typically 3 Months

Time boxed

Typically 2 Weeks

Time boxed

A story is a smallest unit

of work

Story <No.>As a <Role>,I’d like to do <Task>,So that <Larger Goal>.

Given That <>When <>Then <>

Sample Story Card

Typically 1-2 Days

Time boxed

Generates Unit Test Cases.

Establishes Acceptance

Criteria.

Acceptance Criteria.

dhaval.dalal@software-artisan.com

Stories⋯

Schedule High priority and low-confidence stories first.

A Story with low-confidence can be “spiked” Similar to a POC.

dhaval.dalal@software-artisan.com

The Story Board

Analysis Develop/UT QA

Story <No.>As a <Role>,I’d like to do <Task>,So that <Larger Goal>.

Story Card

Story <No.>As a <Role>,I’d like to do <Task>,So that <Larger Goal>.

Story Card

Story <No.>As a <Role>,I’d like to do <Task>,So that <Larger Goal>.

Story Card

Iteration N+1 Iteration N Iteration N-1

dhaval.dalal@software-artisan.com

Daily Stand-ups Short, high energy, effective, to the point meeting.

To provide early and regular feedback on the team‘s progress Achievements, Impediments, Problems Faced

When? BOD

Upcoming work is described Pairs Sign-up for stories

EOD What were the problems faced and impediments raised. What needs to be done and what was achieved.

dhaval.dalal@software-artisan.com

XP advocates⋯ Test-first approach (TDD)

Evolve Code from Tests

Refactoring Improves code, usually increasing the function while

reducing code bulk.

Continuous Integration (CI)

Pair Programming and Pairing.

dhaval.dalal@software-artisan.com

When to use Agile?

Green field project Unknown/Unstable Reqs., Unfamiliar territory.

High or Low Risk. Time, Technology, complex biz. etc…

High or Low Team Expertise.

Short or Long project duration.

View Agile Approach

as a Risk Mitigation Strategy

dhaval.dalal@software-artisan.com

References http://www.agilemanifesto.org http://www.agilealliance.com/articles Agile Process

Robert C. Martin, Object Mentor Inc.

Extreme Programming Explained Kent Beck, Three Rivers Institute.

http://www.martinfowler.com ASCI Conference, April 2005, Bangalore.

Craig Larman’s Keynote, Valtech.

Agile Overview, Managing Iterations. Naresh Jain, ThoughtWorks.

Distributed Agile Development Bapiraju Nandury, Cúram Software.

Agile User Group Meeting, Chennai. Sanjiv Augustine’s Keynote, CC Pace Inc.

Thank You!

dhaval.dalal@software-artisan.com