Agile Fundamentals
-
Upload
graham-dick -
Category
Business
-
view
112 -
download
0
description
Transcript of Agile Fundamentals
© Lamri Ltd 2013 © Lamri Ltd 2013
Agile Fundamentals Graham Dick ([email protected]) +44 1748 821824
© Lamri Ltd 2013
Agenda
• Problem Agile is addressing • What is Agile? • Some Agile Ingredients • Doing Agile
© Lamri Ltd 2013
Problems with Traditional Software Development
Traditional Approach • 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
Despite this • 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
© Lamri Ltd 2013
Don’t fight it – roll with it Key Attributes of 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
Adopt an approach that works with this imperfect world
This is Agile
© Lamri Ltd 2013
What is Agile?
© 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
© 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
© Lamri Ltd 2013
Agile is a mindset
Established through 4 values
[that in software world is]
Grounded by 12 principles, &
Manifested through many many different practices
Scrum
eXtreme Programming
Your own Agile process
Source: Ahmed Sidky, used with permission
© Lamri Ltd 2013
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 Process and Practices
Agile as a Mindset and Culture
Source: Ahmed Sidky, used with permission
© Lamri Ltd 2013 10
Evolution of Agile
XP
Scrum
Toyota way
Agile As a way of working
RUP
Lean/ Kanban
Agile For software
RAD
Waterfall
Six Sigma
An evolution in the making over the last 40 years
better faster cheaper
Prince 2
© Lamri Ltd 2013
Deliver & Deploy
Build and Test
Design
UAT
Iteration Kick-off
Iteration Showcase
Proceed to next itera-on
Working Solution
Updated Documentation
EXECUTE WRAP UP
Backlog
Release Plan
Project Charter
Iteration Planning
Story Elaboration
Retrospective Test Cases
Yes
No
For next itera-on
Itera-on Zero
Setup Deliver Phase
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
© Lamri Ltd 2013 12
Key Agile practices
Project/Team Practices
Technical Practices
Release Planning
Co-Location
Relative Estimation
Burn Up Progress
Iteration Planning
Showcase
Definition Of Done
Stories
Project Wall Success Sliders
Retrospective
Stand Up Pair Programming
Test-Driven Development
Continuous Integration Refactoring
Collective Code Ownership
Technical Spike
Incremental Design
Automated Deployment
© Lamri Ltd 2013 13
The Agile team
Core Team
Extended Team
Agile Project Management
Support
Other Key Stakeholders
Architecture
Iteration Manager Tech
Lead Infra-structure
Production/ Engineering
Subject Matter
Expertise Testing
Product Ownership
Program Management
Project Sponsorship
Focuses on the delivery of the work, the mechanics of the iteration and measurement of progress
Focuses on ensuring the project team has necessary resources and the work is aligned to project outcomes
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
Core team with a diverse set of skills (cross-functional)
Business SME’s should work closely with delivery teams
Analysis
Empowered to provide clarity of product direction
© Lamri Ltd 2013
Some Agile Ingredients
© 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
© 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
© 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
© 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
© 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
© Lamri Ltd 2013
Deliver & Deploy
Build and Test
Design
UAT
Iteration Kick-off
Iteration Showcase
Proceed to next itera-on
Working Solution
Updated Documentation
EXECUTE WRAP UP
Backlog
Release Plan
Project Charter
Iteration Planning
Story Elaboration
Retrospective Test Cases
Yes
No
For next itera-on
Itera-on Zero
Setup Deliver Phase
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
© Lamri Ltd 2013
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
Backlog
Task 1 Task 2 Task 3 Task 4 Task 5 Task 6 Task 7 Task 8 Task 9 Task 10
Iteration Tasks
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 Day 9 Day 10
Iteration Planning
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
Iteration Backlog
Uncompleted Story 3
© 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
Refactor Cycle time of 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
© 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
Build the code
Has the code been
changed?
Test the code
Yes
No
Have 100% of
tests passed?
Yes No
Publish the results
START
© Lamri Ltd 2013
Doing Agile
© Lamri Ltd 2013 25
Agile process
Concept(Identify &
validate an Idea)
Initiate(Clarify, estimate
& plan)
Deliver(Iteratively build
& deploy)
Close(Ready for new
adventure)
Bad idea – kill the project
New problem oropportunity
Clear on the idea –
investigatefurther
Bad idea – kill the project
Changed our mind-
revisit goals
Clear on what to do
Doneenough
Need to stopand think
© Lamri Ltd 2013
Governance framework
~10%*
~80%*
~5%*
INITIATE DELIVER & DEPLOY
PROJECT
Release 1
Release 2 Release n
~5%*
CONCEPT
Governance gate checks and approvals
An Agile project process helps teams work in a consistent way and provides governance checkpoints for managing the portfolio of project work.
CLOSE
* Percentages are indicative of the maximum amount of effort which should be allocated outside of Deliver & Deploy activities
© Lamri Ltd 2013
ICAgile Accredited Training
© Lamri Ltd 2013 © Lamri Ltd 2013
Lamri Ltd 7 Mowbray House Olympic Way Richmond North Yorkshire DL10 4FB T: +44 1748 821824
© Lamri Ltd 2013
Agile Effect
Risk
Time
Business Value
Time
Visibility
Time
Adaptability
Time