Twelve Tips for Agile Project Planning and Estimating June 12, 2009Posted by hubtechinsider in Agile Software Development, Project Management.
Tags: Agile Software Development, product management, Products, Project Management, Software, Software Development
Agile planning differs from the traditional software project management approaches by having as its central purpose the discovery of an iterative, optimal solution to the main product development constraints of what requirements in what timeline and with what resources.
The Agile project planning approach succeeds where more traditional planning and estimating approaches for software development projects have failed in that Agile plans focus on features rather than tasks, re-planning occurs frequently, plans are developed at different levels (portfolio, product, release, iteration, day) and because the size of a project is treated as separate from the duration of the project’s timeline, which is derived from the project team’s velocity through the decided-upon project size. Small numbers of requirements in each iteration of working software keeps work flowing, and work in progress is eliminated at the end of each iteration. Progress of the project team is measured at the team, rather than the individual level and uncertainty is acknowledged as a fact of life and is planned for accordingly.
For all of the above reasons, here are twelve tips for Agile project planning and estimating:
1. Keep everyone on the team involved – Buy-In, or real commitment, from every member of he project team is vital to the success of the project. For example, the estimation of the project is an activity that should involve all members of the project team, while only very particular tasks such as prioritization of requirements should be the primary responsibility of the product owner or an individual project team member. The more work is shared by the team, the more victories the team will have to share.
2. Plan on at least three levels – Release, Iteration and Day. Each of these three plans has a different time horizon with a different level of granularity, and each serves a different purpose in overall project planning. Do not fall into the trap of thinking that an iteration plan is a substitute for a release plan, or vice versa. There are Agile Strategy, Portfolio, Product, Release, Iteration and Day plans. Each project team such plan on at least the Day, Iteration and Release levels consistently.
3. Separate project size and project duration by using different measurement units for each – An effective technique for doing this is to estimate the project’s size in “Story Points”, or arbitrary numerical values assigned to requirements with the agreement of the entire project team and translating the project size into duration using velocity. This has the added benefit of having he project team speak of the seperate concepts by always using different terms of measurement for each when speaking amongst themselves and others outside the project team.
4. Uncertainty should be communicated by using either the date or the iteration’s functionality – Use the primary fixed constraint to express the uncertainty that all well-laid project plans must express in the midst of an uncertain world to express this uncertainty. If the number of software requirements and application functionality to be included in the iteration is fixed, then express your uncertainty as a date range: “We’ll finish in the second quarter” or “We’ll finish in between two and five iterations”. If the iteration release date of the iteration is instead fixed, then express your uncertainty as a range of available application functionality: “We’ll finish by 15 May, and the application will include these requirements, but probably not these requirements implemented as features”. When you have more uncertainty in your project planning, use bigger units (iterations, months, and then fiscal quarters).
5. Plan to replan frequently – If information used to plan the current project plan has now changed, incorporate those changed pieces of information into the current project plan. his will aloow the project plan to adapt and grow in response to changing conditions. This is an oportunity to show why Agile project plans are called Agile in the irst place. Ensure that the project team is always squarely aligned at the goal of delivery the maximum value to the organization.
6. Communicate progress and track progress of the project team – Keep the project’s primary stakeholders infomed of the progress of the project team by regularly publishing simple and easy to understand charts indicating the progress of the project team. Burndown and velocity charts are an excellent way todo this easily and simply.
7. Plan to learn from and adapt to an Agile project -
8. Plan requirements of the correct dimensions -
9. Prioritize requirements well – Work should progress on software requirements in such a manner as to maximize the entire value return of the project.
10. Base your project plans and estimates on reality -
11. Learn to Pad your schedules correctly – A software development team scheduled to within an inch of its life cannot progress efficiently. Do not plan on using 100% of an available resource or individual 100% of their available time. Do not over-schedule. Put some slack into you project plans and prevent project gridlock.
12. Create rolling lookahead plans for the project team’s use – With multiple teams performing work on a project, coordinate their work through the use of rolling lookahead planning. Looking ahead to allocate requirements to specific future iterations and spotting and planning of interteam dependencies is also enabled.
Want to know more?
You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.
About the author.
I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Senior Technical Project Manager at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.