Agile and project size

A programmer wrote to me: “Last week I attended an Agile seminar where the consultant explained that Agile can be applied to any size of projects. He offered to provide this special training for my company. I remembered that you wrote “Agile is only good for small project”. I am confused, please help.”

Answer: Based on my own experience, Agile processes seem to work best with small team of people working on small project. I have managed several Agile projects with differenet sizes and I had better success with Agile in small projects (less than 10 people). Ken Beck, the author of Extreme Programming (EP) also wrote in his famous book: “Size clearly matter, you probably coul not run an XP project with hundred of programmers. Not fifty. Nor twenty, probably. Ten is definitely doable.”

The strengths of Agile are better coordination, better relationships, better communication, and shared knowledge. By putting Agile in larger size project, you are diluting these strengths and make it more difficult to build a quality product. There are other approaches such as plan-driven and spiral methods designed for larger projects. These methods require well defined roles, responsibilities and strict documentations to coordinate activities across large groups. You need to understand that each approach is designed for certain type of project. Agile is great for small projects that do not have good requirements or requirements are often change. Agile processes require short iterative cycles so customers could get the software as quickly as possible because you do not have to deliver everything at once. However, Agile needs good working relationship with customers and users to get quick feedbacks and priority of what to do next. It also requires that the team members have experiences and can be self-organized to work toward a common goal.

I do not believe in a “one size fits all” approach. There are consultants who make promises that they cannot keep. Some only want to make money and would do anything to get paid. They do not care about whether you are learning something correctly or not. I have seen many seminars and trainings where consultants would teach customers how to pass certain tests to get certificates but not how to do it correctly. The result is programmers have the certificates but no skills. This type of trainings is popular to people who only want a piece of paper to display in their office but do not care about their knowledge or skills. If you have to pay someone to teach you something, make sure you find a good consultant who have many years of working experiences and really care that their customers would be able to a good job after the training. It is your money and your skills so be extremely careful with people who promise too much.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University