25
Introduction to Agile Methodologies Dhaval Dalal software-artisan.com

Agile Methodologies

Embed Size (px)

Citation preview

Page 1: Agile Methodologies

Introduction to Agile Methodologies

Dhaval Dalalsoftware-artisan.com

Page 2: Agile Methodologies

[email protected]

Traditional Approach

SoftwareRequirement

Specs

Product Knowledge

Product Development

Analysis Develop/UT QA

Feedback

Page 3: Agile Methodologies

[email protected]

Product Development

Analysis Develop/UT QA

The Paradigm Shift

S/WReq.

Specsas a

“Big Batch”

Product Knowledge

Rapid Feedback

SmallBatch

Page 4: Agile Methodologies

[email protected]

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

Page 5: Agile Methodologies

[email protected]

Family of Agile Methodologies Extreme Programming (XP)

Scrum

Crystal

DSDM (Dynamic System Development Method)

Lean

...and many more

Page 6: Agile Methodologies

[email protected]

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

Page 7: Agile Methodologies

[email protected]

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.

Page 8: Agile Methodologies

[email protected]

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

Page 9: Agile Methodologies

[email protected]

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

Page 10: Agile Methodologies

[email protected]

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.

Page 11: Agile Methodologies

[email protected]

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.

Page 14: Agile Methodologies

[email protected]

XP Project

MasterStoryList

Release #1StoryList

Release #2StoryList

Typically 3 Months

Time boxed

Page 15: Agile Methodologies

[email protected]

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

Page 16: Agile Methodologies

[email protected]

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

Page 17: Agile Methodologies

[email protected]

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.

Page 18: Agile Methodologies

[email protected]

Stories⋯

Schedule High priority and low-confidence stories first.

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

Page 19: Agile Methodologies

[email protected]

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

Page 20: Agile Methodologies

[email protected]

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.

Page 21: Agile Methodologies

[email protected]

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.

Page 22: Agile Methodologies

[email protected]

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.

Page 23: Agile Methodologies

View Agile Approach

as a Risk Mitigation Strategy

Page 24: Agile Methodologies

[email protected]

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.