Agile Project Management.ppt
- 2. What Is Agile?
Agile is a group of software development
methodologies
Scrum
Extreme Programming (XP)
Lean
Etc.
Key Characteristics:
Small increments
Adaptive to change
Collaborative
- 3. Principles
Attack the most important thing
Keep it simple
Stay releasable
Work as a team
Get feedback and respond to it
Defer decisions until the last responsible moment
- 4. Why Do It?
It results in better software
Higher productivity (you get what you need quicker)
Higher quality
More customer satisfaction
More visibility
Better morale
- 8. Team Member
Signs up for work
Asks questions
Collaborates with others
Communicates progress / blocking issues
Makes it happen
- 9. What Does It Look Like?
Backlog
Release
Release Planning
Iterations (1-4 weeks long)
Iteration Planning
Daily standup
Demo
Iteration Retrospective
Release Retrospective
- 10. The Backlog
A ranked list of stories
What is a story?
A scenario that we must do work to implement which
results in business value
Typically in the form of: “As a <type of user>, I want
<feature> so that <business value>”
Good stories meet the INVEST criteria
- 11. Example
Post a Job
As a recruiter I want to be able to post a job to the web
site so that I can generate interest in the position.
- 12. Prioritization Doesn’t Stop
The product owner re-prioritizes after each iteration
We’ve learned more about the business
Let’s take advantage of that
The further down the list something is, the less
defined it will be and the less important it is to
prioritize precisely
- 13. What Does an Iteration Look Like?
1 week
to 1 month
24 hours
Product Backlog
As prioritized by Product Owner
Iteration Backlog
Backlog tasks
expanded
by team
Potentially Shippable
Product Increment
Daily Stand up Meeting
• Done since last meeting
• Will do for next meeting
• Obstacles
Iteration
Iteration Planning Meeting
• Review Product Backlog
• Define Iteration Goals
• Estimate Iteration Backlog
• Commit
Demo
Show off what you’ve done
Retrospective
Inspect and Adapt
Vision and
Release
Plan
- 15. Before you Start
Well Groomed Product Backlog
Prioritized
Estimated
Iteration Theme/Goal
Estimated Prioritized
- 16. A Typical Iteration Planning Session
Review Iteration Goals
Discuss Logistics
Understand the Stories
Task out the stories
Commit
Typical Duration: 3-8 hours
Attendees:
•Product owner
•Scrum master
•Delivery team
Materials:
•Stories (cards or online)
•Task planning material (cards,
whiteboard, online)
•Planning/estimation materials (e.g.
planning poker cards)
- 17. Review Iteration Goals
Product Owner
Explain the Goal (theme)
Make priority adjustments based on feedback from
delivery team
Delivery Team
ASK QUESTIONS
Understand the Goal, not just the desired features
- 18. Discuss Logistics
Review Historical Velocity
Review Team Availability
Holidays / Vacations
Meetings
L3 Support, outside commitment, etc
Review the Definition of Done
- 19. Understand the Stories
Product Owner
Explain the Story
Explain the “Why” (“as a <role> I <what> so that <WHY>”)
Break down stories as needed
Elaborate on acceptance criteria/tests
Make priority adjustments based on feedback from delivery
team
Delivery Team
Understand the story
Understand and question the acceptance criteria (how will
you build a test for each? What about…)
Validate the size/implementability
- 20. Task out the Stories
Define tasks
Team members sign up for tasks
Estimate the task work
Validate capacity again
- 21. Commit
Everyone agrees the iteration is doable
No really…EVERYONE agrees
Use disagreement and uneasiness in team members to
drive out hidden risks, tasks, and issues
Drive agreement with a fist of five
Absolutely, no question
I think this is good and will make it happen
I can support this
I’m uneasy about this and think we need to talk it out some
more
Let’s continue discussing this idea in the parking lot
- 23. Daily Standup
What did I do yesterday?
What will I do today?
What’s blocking me?
Quick
High Value
- 24. Demo
Show off what you got “done” in the iteration
Should be from the user’s perspective
No slides
No code
Just working software
If a customer could attend your demo,
you’re doing it right
- 25. Retrospective
Review the process over the last iteration
What went well?
What went poorly?
How can we do things better?
Take the top 1-3 items and make sure you make
progress on them in the next iteration
Improve
- 26. Estimating
Identify a medium sized story that is well understood;
call it a 5
Now estimate other stories relative to that
Is it about the same, ½ as difficult, twice as difficult?
Use Fibonacci numbers: 1, 2, 3, 5, 8, 13, 21
If bigger than that or if too hard to estimate, split the
story
Tackle as a team; Planning poker can help
(www.planningpoker.com)
- 27. Velocity
Now that stories have sizes, you can track how many
points you typically get done in an iteration
You can now use this to predict future completion
rates
- 28. Structuring Teams
It is preferable to have each team have the ability to
complete its work by itself
In other words, instead of a team per component, have
teams with members who have knowledge of each
component that will need to change to deliver
something
- 31. Release Planning Wrap Up
Go through each iteration for each team
Are things synched up across teams?
Are you attacking the most important stories?
Does the team believe in the results?
- 32. After The Meeting
Capture the results in your tool of choice
Update after each iteration
- 36. Managing Risk
Waterfall Agile
Time, scope and resources
“fixed”
Changing one affects the
others as well as quality
Manage the plan
Try to minimize change
Time, resources and quality
fixed
Changing time or resources
affects scope
Manage the priorities
Change as you learn more
- 37. Life in an Iteration
Once in an iteration, scope is fixed
Do the work in small increments
Work closely with others
It isn’t done until it is really done
If it doesn’t add value, don’t do it (or minimize)
Leave decisions to the last responsible moment
It is a team effort
- 38. Feedback is key
Do a little
Get feedback
Respond to feedback by doing a little more
Automation helps decrease time to get feedback
Nightly/continuous build
Unit tests
Acceptance tests
- 39. Agile Documentation
Keep to the minimal responsible amount of doc
No more than you need at any point in time
Everything should add value
If not, try to reduce or eliminate it
Streamline so that the iteration is not interrupted
Wiki’s work well for collaborative design
- 40. Management Is Not Enough!
Engineering practices must change
Avoid specialization
Keep design simple and refactor as needed (YAGNI)
Create good automated regression tests
Integrate frequently
Peer review
Consider
Test Driven Development (or Behavior Driven Development)
Pair Programming
Co-location
- 41. Staying Releasable
Goal: Could release after any iteration
Reality: Ability to do this will evolve over time
Staying releasable gives you the ability to more easily
change direction / take on new things
It also tends to improve quality
And predictability
- 42. Definition of Done
You need to define for your environment
Definition will evolve over time
Example:
Unit tests written and passed
Acceptance tests automated and passed
User facing documentation written
Checked in to the build