10 May 2003
A common question is whether large projects can be done with agile techniques. After all many agile approaches are designed for smaller projects and the heavyweight ideas that they resist are more needed on bigger projects.
One of the main reasons that this is a question is because we don't know yet. New techniques tend to be tried on smaller projects first. Only when they work on a smaller scale do people try them on a larger scale, and even then it takes time to ramp up. With any technique or technology I wouldn't recommend using it on anything larger than twice the size of something you've used it successfully already.
Despite this much of what goes with agility has a background in larger systems, depending on what you call large. For software projects I think the primary measure of large is number of people. The people there are, the more the communication issues rise. XP's sweet spot is up to twenty team members. FDD looks to be more, more in the mid tens. Talking to Phillipe Kruchten, the lead designer of RUP, RUP at its essence is very much an agile approach and Phillipe has primarily worked with projects of over 200 people.
Scaling Agile methods is the last thing you should do
I used this phrase recently at the Canadian Agile Network. I meant it literally. I'm not saying that you shouldn't do large projects, I'm saying that trying to scale agile techniques up to big projects, while often necessary, shouldn't be your first choice.
A better approach is to try to scale down your project. At that workshop an unscientific straw poll revealed that most projects could lose about half the people of the project without making things go slower. Time and time again I hear of success occurring when a team is cut significantly in size. Large teams carry a big overhead in communication and management. Using smaller teams staffed with more able people is usually faster and cheaper, even if the everyone is more individually expensive.