250 likes | 275 Views
Learn agile planning practices, estimation techniques, and progress tracking for iterative development. Understand the importance of efficient planning poker for estimation accuracy.
E N D
Iterative Planning http://flic.kr/p/pVmSx
What are you goingto learn about today? • Agile planning practices • Simple estimation technique • Simple practice for tracking progress http://flic.kr/p/8JpkTg
Recall: Iterative development process We are here Note that planning and requirements don’tnecessarily happen one right after the other http://en.wikipedia.org/wiki/File:Iterative_development_model_V2.jpg
For those following along in the book… Larman doesn’t really cover practical planning,so I’m going to draw from some other sources http://flic.kr/p/anWc2v
OK. So you have some UCs,What’s next?For an answer, read the excerpt“Weekly Cycle” from Beck (2005). http://flic.kr/p/9ksxQa
OK. So you have some UCs,What’s next? In a nutshell:Estimate how much work each UC will be andchoose some to build in the next iteration http://flic.kr/p/9ksxQa
Agile estimation practice: Planning poker Let’s watch this video to find outwhat planning poker is all about: http://youtu.be/0FbnCWWg_NY But first, a quick word about…
The nebulous unit of work • A unit is defined in terms of how much work you can get done in the next iteration • To start with, typically defined as something like 1/20th of what the team can accomplish • This is after taking into account the fact that programming might occur in pairs • So an 8-person team might have 4 pairs, each of which might be able to get 5 units done • Some team members might be able to do more units than others
OK. Now let’s watch the video: http://youtu.be/0FbnCWWg_NY
Recap: Estimation with planning poker • Based on the “wisdom of the crowd” • Idea: More opinions produce better accuracy • Cards with units of work: 1, 3, 5, 8, 13, 20, 40 • Assume that 20 units is what the whole team can do in a single iteration • Rules: For each UC… • Discuss work involved • Flip cards • Repeat until consensus • Efficiency in estimating is important • Don’t expect your estimates to be super accurate
Why do estimation as a card game? http://flic.kr/p/9ksxQa
Why do estimation as a card game? Everyone’s opinion is important.Having everyone flip cards at the same timeassures that everyone’s opinion is on the table. http://flic.kr/p/9ksxQa
How do you use these rough estimates? http://flic.kr/p/9ksxQa
How do you use these rough estimates? • Provide client an idea of the cost of implementing each UC • He/she already knows the value • Then, the client can prioritize • Based on the prioritization, you break the UCs into tasks and assign the work • May involve more detailed estimates on a few UCs/tasks http://flic.kr/p/9ksxQa
Why is efficiency in planning poker important? http://flic.kr/p/9ksxQa
Why is efficiency in planning poker important? • Even with the wisdom of the crowd, your estimates still won’t be super precise • No sense wasting a lot of time on estimation http://flic.kr/p/9ksxQa
Some additional estimation principles • Engineers give honest estimates that customers can trust. • Engineers refine estimates; customers refine expectations. • It is expected that you will work at a sustainable pace. • No heroes, no all-nighters, no super-human feats • Either you get the code done like a human being, or you don’t
Activity for next class(?):Planning poker • Get together with your teammates • Pool and sort your UCs so you have a complete set • Play planning poker for each UC • At the end, we’ll compare outcomes and consider some questions http://flic.kr/p/5dfuqL
Another agile practice: Informative workspace Read the handout (Beck 2005), andwe will discuss(esp. what we can do in this course)
Popular practice: Kanban board http://flic.kr/p/7NQz4b
Here’s another example… http://flic.kr/p/7xD6wF
And another… http://flic.kr/p/4Q8hdr
How do you think we should approximate aninformative workspace in this course? http://flic.kr/p/7NQz4b http://flic.kr/p/9ksxQa http://flic.kr/p/4Q8hdr
Activity for next Wednesday:Planning an iteration • I will prioritize your UCs • See how many of the UCs your team can do in an iteration, favoring higher priority UCs over lower • For each UC that your team will do, break it into subtasks • Assign each subtask to a person and give a time estimate in hours • Use informal visual/spatial layout tricks to capture dependencies http://flic.kr/p/5dfuqL
Summary • Estimation with planning poker • Informative workspaces • Progress tracking with Kanban boards http://flic.kr/p/YSY3X