Most of these pitfalls don’t apply to very small projects. They reflect some of the feedback you’d get when trying to drive agility at a large company with a lot of inertia behind existing ways of working (this list was born from experiences trying to drive mix of Scrum, XP, and lean concepts at Microsoft). They also embody some of the common trade-offs or dualities of projects.
We’ll keep it short (thus perhaps cryptic) in this post — but then each pitfall/solution pair will be expanded upon in future posts. Any pitfalls that simply don’t make sense, or any you’d add to the list?
Pitfall #1: Planning a month or less ahead is not enough.
Use rolling wave planning to create an evolving big picture.
Pitfall #2: Effective small teams need coordination to make an effective large organization.
Combine bottom-up (scrum-style) and top-down (traditional) planning.
Pitfall #3: We can’t afford to trust everyone on larger teams.
Turn up the knob on transparency (especially time and quality data).
Pitfall #4: The customer doesn’t want a release every month.
Release early and often internally, with longer cycles for expanded audiences.
Pitfall #5: Hundreds of people can’t check directly into “main” every day.
Separate dependent sub-projects and use incremental integration with branches.
Pitfall #6: Not all activities are best handled by generalists.
Apply lean techniques to more effectively handle specialization.
Pitfall #7: Our team/management expects to plan, and execution to plan.
Making firm commitments to something we don’t yet understand is counter-productive. As they come in, actuals have to trump estimates.
Pitfall #8: We are already in the dark. We need more documentation, not less.
On large projects, there are usually reams of wasted documentation. But it may be that “just enough” documentation and status-taking is still a lot.
Pitfall #9: Large teams will reject big changes in how we work.
Start with the way the team works today. Reflect and adapt towards agility.
Pitfall #10: Being agile on a large project is unrealistic and impossible to sustain.
There is no surer strategy for large-scale failure than large projects without empowered teams, short cycles, strong feedback, and a culture which embraces change and adaptation. All we can do is have the patience, persistence, and thoughtfulness to always keep driving in the right direction.