Agile practices
Stages in a Software Development Cycle?
Traditional Process
Requirement ?
Technology ?
Unknowns ?
Functional specification
Design Specification
Fix / Integrate
Testing
Coding
Inception
£ £ £
Time
50%
Agile Values
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Agile Alliance - Feb 2001 - agilemanifesto.org
Agile gives...
Early and continuous delivery of valuable software - Highest priority
Welcome changing requirements, even late in development
Frequent conversation among business people and developers
Working software is the primary measure of progress.
A Different Approach
Project Estimates: End-User Feedback: Developer Productivity
Delivery
- Time-to-market - Business decides when to go live
- Reduces risk of failure
Functional specification
Design Specification
Fix / Integrate
Testing
Coding
Inception
£ £ £
Inception
Release 1
£ £ £
Release 2
£ £ £ £ £ £
Release 3
£ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £ £
Incremental?
Credits: Jeff Patton
Iterative
Credits: Jeff Patton
How Agile fits into software delivery
Support
Support Documentation
Trained Support Staff
Develop
Working Software
Full Regression Test Suite
Business Realisation
Inception
Business Case
Baseline Requirements/ Stories
Baseline Budget
Release
Inception
High level requirements release 1
release 2
release 3
Decomposing a release…
release x
Prioritized Release
Level Stories
Iterations Stories Completed
Business Value
Delivered
Development
Unit & Integration Testing
Development
Acceptance Testing
Anatomy of an Iteration
Unit & Integration Testing
Acceptance Testing
Iteration Planning
Iteration Planning Development
Last Iteration Current Iteration Next Iteration
Iteration
Kick-off
Meeting
Iteration
Planning
Meeting
Retrospective
Daily Stand-
up Meeting
Deploy to
Production-Like
Environment
Create
Narratives
Unit & Integration Testing
Acceptance Testing
Fix / Integrate $
Test
Code
Design
Specifications
Use Cases / Functional Specs
Requirements Gathering
Project Plan/Estimation
$
Inception
$
$
$
Comparison of the processes
Lower cost of change through higher quality software
Agile system cost profile
Traditional cost profile
Time spent:
lFinding defects
lFixing Defects
lRegression Testing
lDeploying
More defects
found
& corrected –
causes lower
cost of defect
correction
Agile For Different Roles
Agile
Analyst
From business process to user
stories
Prioritization and planning
Define acceptance criteria
Playing proxy customer role
Acceptance / SME testing
Developers/Architects
Test Driven Development
Incremental design and
Architecture
Refactoring
Continuous Integration
Craftsmanship
Discipline
Testers
Early (and incremental) testing
Collaboration with development
Collaboration with analysts
Automate, automate, automate!
Managers
Facilitating
Getting the team what they need
Removing roadblocks
Looking Inwards and Outwards
Self organized teams
Story-Based Requirements
Story Card Format
As a _____,
I want to be able to _____
so that _____ .
Acceptance Criteria
I will know this is done when
_____ .
Key Points to Writing Stories
Keep stories short
Seek a level of granularity that
can be completed in a few days
Keep stories mutually
independent
Do not include implementation
details
Independent
Negotiable
Valuable
Estimable
Small
Testable
Lifecycle of a story
In analysis
Analysed
Ready for
Development
Story huddle
lPrioritised by Product Managers.
lTA and BAs investigate and document requirements
lQAs identify scenarios and acceptance criteria
lRequirements and acceptance criteria are documented
lStory is available to be planned for the next iteration
lIteration planning meeting discusses and estimates the story and
certifies it as available to be worked on by developers
lDevelopers, QA, BA, TA and Tech Lead review the story and
discuss the desired implementation approach
The story lifecycle continues
lGreen build
lTech Lead/Architects review the code
lQA confirms that required automated tests have been implemented
lProduct Managers reviews the functionality
Ready for QA
Ready for
Signoff
Customer
Sign off
In
Development
lDevelopers implement
lBA and Product Manager review progress during implementation
lQAs prepare test scripts
In QA lQA executes manual test scripts
Release Planning
Iteration Planning Meeting
Team Practices: Stand Up Meetings
Visibility- Digitized Card Wall
Visibility- Physical Card Wall
Track progress with Velocity
Progress Tracking
Agile Practices
ORGANIZATIONAL
Automated
Build/Deploy
Automated
Testing
Short Releases
Coding
Standards
Continuous
Integration
On-site
Customer
Co-location
Collective
Ownership
TEAM
Retrospectives
Iterations
IKO
User Stories
Velocity
Metrics
Story Wall
Pair Programming
Sustainable
Pace
Daily
Stand-ups
INDIVIDUAL
Refactoring
Simple Design
Test Driven
Development
Top Related