Upload
dhaval-dalal
View
2.397
Download
0
Embed Size (px)
Citation preview
Introduction to Agile Methodologies
Dhaval Dalalsoftware-artisan.com
Traditional Approach
SoftwareRequirement
Specs
Product Knowledge
Product Development
Analysis Develop/UT QA
Feedback
Product Development
Analysis Develop/UT QA
The Paradigm Shift
S/WReq.
Specsas a
“Big Batch”
Product Knowledge
Rapid Feedback
SmallBatch
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
Family of Agile Methodologies Extreme Programming (XP)
Scrum
Crystal
DSDM (Dynamic System Development Method)
Lean
...and many more
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
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.
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
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
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.
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.
XP Project
MasterStoryList
Release #1StoryList
Release #2StoryList
Typically 3 Months
Time boxed
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
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
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.
Stories⋯
Schedule High priority and low-confidence stories first.
A Story with low-confidence can be “spiked” Similar to a POC.
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
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.
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.
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
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.