More Related Content Similar to Agile Fundamentals (20) Agile Fundamentals1. © Lamri Ltd 2013
Agile Fundamentals
Graham Dick (graham.dick@lamri.com)
+44 1748 821824
2. © Lamri Ltd 2013
Agenda
• Problem Agile is addressing
• What is Agile?
• Some Agile Ingredients
• Doing Agile
3. © Lamri Ltd 2013
Problems with Traditional Software
Development
Traditional Approach
Despite this
• Users find it hard to specify in
sufficient detail
– “Don’t know what it should do
until we see it”
• Late discovery of flaws
• Build and release issues
• Modules failing to integrate
• Can’t deal with changing
requirements
• Often results in major
unplanned work
• Rational engineering approach
assumes
– Well defined problem
– Results that can be predicted
• Results in a Dev process with
– Command and control focus
– ‘grand design’ style
– Measures progress by
assessing intermediate work
products
– Delays confirmation that critical
risks are mitigated
– Customer involvement tends to
focus on inception and
acceptance test stages
4. © Lamri Ltd 2013
Don’t fight it – roll with it
Key Attributes of Agile
Adopt an approach that works with this imperfect
world
This is Agile
• Develop iteratively
• Minimise up-front work
• Continuously inspect and adapt
• Develop requirements at the point of consumption
• Continuously verify quality
• Embrace change
• Self managing team
6. © Lamri Ltd 2013
The Agile Manifesto
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while we value the items on the right, we value
the items on the left more
7. © Lamri Ltd 2013
Several Principles underpin the Agile
Manifesto
• Business and developers
collaborate daily
• Strive for simplicity –
maximise amount of work
not done
• Face to face conversation
is the most effective
method of communicating
– Welcome changing
requirements
• Build project round
motivated individuals
• Highest priority is
customer satisfaction via
early and continuous
delivery
– Frequent working software
is primary measure of
progress
• Provide team
environment needed
• Regular reflection and
adaptation
8. © Lamri Ltd 2013
Scrum
eXtreme Programming
Your own Agile process
Agile is a mindset
[that in software world is]
Established through 4 values
Grounded by 12 principles, &
Manifested through many
many different practices
Source: Ahmed Sidky, used with permission
9. © Lamri Ltd 2013
Agile as a Process and Practices
Doing Agile
Learning the practices and
applying them without know
the mindset and principles to
know when to tailor and how to
select the appropriate
practices
Being Agile
Internalizing the Mindset, values,
and principles then applying the
right practices and tailoring them
to different situations as they
arise
Agile as a Mindset and Culture
Source: Ahmed Sidky, used with permission
10. Evolution of Agile
XP
Scrum
Prince 2
Toyota
way
Agile
As a way of working
RUP
Agile
For software
Lean/
Kanban
RAD
Waterfall
Six
Sigma
An evolution in
the making over
the last 40 years
better
faster
cheaper
© Lamri Ltd 2013 10
11. © Lamri Ltd 2013
Deliver & Deploy
Build and
Test
Design
UAT
Iteration
Kick-off
Iteration
Showcase
Working
Solution
Updated
Documentation
Proceed
to
next
itera-on
EXECUTE
WRAP
UP
Backlog
Release
Plan
Project
Charter
Iteration
Planning
Story
Elaboration
Retrospective
Test Cases
Yes
No
For
next
itera-on
Setup
Deliver
Phase
Itera-on
Zero
PREPARE
Deploy
to
Produc-on
Done in short iterations
Production
Handover
CLOSE
Done
?
Specify test criteria
Design
Build and test
Continuous integration
Test plan / scenarios
12. Key Agile practices
Project/Team
Practices
Technical Practices
Stand Up Pair
Release
Planning
Stories
Relative
Estimation
Co-
Location
Burn Up
Progress
Iteration
Planning
Showcase
Definition
Of Done
Retrospective
Project Wall Success
Sliders
Programming
Test-Driven
Development
Incremental
Design
Automated
Deployment
Continuous
Refactoring Integration
Collective
Code Ownership
Technical
Spike
© Lamri Ltd 2013 12
13. The Agile team
Project
Sponsorship
Agile Project
Management
Support
Iteration
Manager Tech
Focuses on the
delivery of the work,
the mechanics of the
iteration and
measurement of
progress
Infra- Lead
structure
Core
Team
Focuses on ensuring
the project team has
necessary resources
and the work is aligned
to project outcomes
Program
Management
Product
Ownership
Analysis
Testing Expertise
Production/
Engineering
Extended
Team
Architecture
Other Key
Stakeholders
Subject
Matter
Core team
members are
fully engaged
with the project
and work
collaboratively
to deliver the
planned work
using collective
their skills
Extended team
members
provide
specialist skills
or guidance and
are involved on
an as-needs
basis
Coordinate
the delivery
of multiple
projects
Empowered
to provide
clarity of
product
direction
Business
SME’s
should work
closely with
delivery
teams
Core team with a
diverse set of
skills (cross-functional)
© Lamri Ltd 2013 13
15. © Lamri Ltd 2013
Stories
• Stories describes the functionality that will
be delivered by the project.
• A story is a promise to have a conversation
later – deferring the detail
As a [role]
I want to [do something]
So I can [achieve outcome]
As a frequent flyer
I want to be able to see
my points balance
So I can decide how to
pay for my ticket
15
16. © Lamri Ltd 2013
The three ‘C’s of a story
• Card—written description
• Conversation—between team and customer
representatives
• Confirmation—criteria to determine when
implementation complete
16
17. © Lamri Ltd 2013
What is done?
• DONE at many levels:
– For the Product
– For the Current Release
– For each Iteration
– For every Story
• Each iteration must produce a PRODUCTION
READY increment of the product.
• Whatever work is needed to get to DONE is
delivered in the iteration
• This needs to be clear to all involved
• Needs to be understood before we can estimate
17
18. © Lamri Ltd 2013
Estimating stories
• Estimate using Story Points
• Estimation must
– Use a collaborative, iterative approach to
– Create a relative measure for how large a
story is
– Compared to the other stories in the
project
– All work needed to get to Done
• Story points are a relative measure of story
size / complexity, compared to other stories
18
19. © Lamri Ltd 2013
Release planning
• Once you have created a number of stories, you will
prioritise and estimate them.
• The estimates will allow you to review whether the
project is worth the cost.
• The prioritised stories will allow you to create a release
plan for the project
Iteration 1 Iteration 2 Iteration 3
points points points
19
20. © Lamri Ltd 2013
Deliver & Deploy
Build and
Test
Design
UAT
Iteration
Kick-off
Iteration
Showcase
Working
Solution
Updated
Documentation
Proceed
to
next
itera-on
EXECUTE
WRAP
UP
Backlog
Release
Plan
Project
Charter
Iteration
Planning
Story
Elaboration
Retrospective
Test Cases
Yes
No
For
next
itera-on
Setup
Deliver
Phase
Itera-on
Zero
PREPARE
Deploy
to
Produc-on
Done in short iterations
Production
Handover
CLOSE
Done
?
Specify test criteria
Design
Build and test
Continuous integration
Test plan / scenarios
21. © Lamri Ltd 2013
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 Day 9 Day 10
Iteration
Planning
Backlog
As a xxx I want yyy so that zzz
Story 1
Story 2
Story 3
Story 4
Story 5
Story 6
Story 7
Story 8
Story 9
Epic 1
Epic 2
Epic 3
Iteration Backlog
Iteration Tasks
Task 1
Task 2
Task 3
Task 4
Task 5
Task 6
Task 7
Task 8
Task 9
Task 10
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Wrap-up
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Daily
Standup
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Task
Work
Present/
Retrospect
Inside an iteration
Story 3
Iteration
Planning
Story 1
Story 2
Uncompleted Story 3
22. © Lamri Ltd 2013
The TDD mantra
5. Write the
implementation
6. Run the test
Write just enough
code to make test
pass
Focus on simplicity
Cycle time of Refactor
minutes not
hours
7. Improve design
quality
Not always needed
Rule of Threes (Uncle
Bob’s 3 laws of TDD)
Behaviour preserving
1. Write the test
2. Compile the test
3. Make the test
compile
4. Run the test
Tests shape the
design
23. © Lamri Ltd 2013
CI flowchart
A software-based automated solution to
mitigate the risk of integrating code
Wait a
bit
Get the
latest
version of
the code
No Yes
Build the
code
Has the
code
been
changed
?
Test the
code
Yes
No
Have
100% of
tests
passed?
Publish
the results
START
25. Agile process
New problem or
opportunity
Concept
(Identify &
validate an Idea)
Close
(Ready for new
adventure)
Bad idea –
kill the project
Initiate
(Clarify, estimate
& plan)
Deliver
Done
enough
(Iteratively build
& deploy)
Bad idea –
kill the project
Changed our
mind-revisit
Clear on
the idea –
investigate
further
goals
Need to stop
and think
Clear on
what to do
© Lamri Ltd 2013 25
26. An Agile project process helps teams work in a consistent way and provides
governance checkpoints for managing the portfolio of project work.
© Lamri Ltd 2013
Governance framework
~10%*
~80
%*
~5%*
INITIATE DELIVER
& DEPLOY
PROJECT
Release n
Release 2
Release 1
CONCEPT
~5%*
Governance gate
checks and
approvals
CLOSE
* Percentages are indicative of the maximum amount of effort which should be allocated outside of Deliver & Deploy activities
28. Lamri Ltd
7 Mowbray House
Olympic Way
Richmond
North Yorkshire
DL10 4FB
T: +44 1748 821824
© Lamri Ltd 2013
29. © Lamri Ltd 2013
Agile Effect
Risk
Time
Business
Value
Time
Visibility
Time
Adaptability
Time