Iteration / Release Planning Tips
- Produce Something Useful. Fundamentally, an iteration should be just long enough so that you can get something useful done.
- Shorter is Better. 4 –6 weeks should be the maximum. Some teams have iterations that are one day in length.
- Have as Many Iterations as you need.
- Plan Iterations around a Single Requirement, or Business Process
- Start with an Uncomfortable Length. Force the team to become less bureaucratic, and focus on the top priority deliverables.
- You can still have a Firm Delivery Date.If you need to have a firm delivery date, then simply set one and deliver at that time. Keep doing development iterations until you get to the point where you need to deliver the system. If you continually implement the highest-priority requirements, then what you deliver will be the highest value possible
- First Iteration(s) are Clean Up. Focus on letting the team learn the process, how to work together rather than on functionality.
- Maintain “Yesterday’s Weather”. The XP practice of setting each iteration’s velocity based upon the velocity of the previous one.
Project Scheduling Tips
- Practice Just In Time Planning. You can accurately plan in detail only for nearby tasks (2 –4 weeks).Plan for individual iterations with only high-level scheduling for future iterations.
- Time Box Iterations. Manage scope to short term deadlines.
- The people doing the work must be actively involved in scheduling.
- Schedule tasks involving external groups.
- Remember to include training
Project Estimating Tips
- Done for smaller, rather than larger, items. It’s easier to estimate work that will take one day than it is to estimate something that will take one month.
- Done by the people doing the work
- Done by someone who has done the work before.
- Presented as a range.The longer away something is the greater the range your estimate will need to be.
- Updated throughout the project Observation: Professional estimators, perhaps people with Function/Feature Point counting skills, sound like they have a good approach. In practice these methods prove to be a very expensive way of producing estimates –and my personal experience has been that these estimates are no more accurate than an analogues estimate by an experienced team.
People Management Tips
- People, and the way that they interact, are the most important determinants of success on a software development project.
- Daily standup meetings increase awareness, allows for self-organization, and leaders to emerge.
- People should choose their work, they shouldn’t be assigned it.
- Stakeholders should be active participants on your project, not just people you interface with.
- People who work together closely in co-located teams will often manage themselves.
- Train early and often.