Every change has a cost, but agile does not account for this. The result? People often change really big things late in the game using the rationale that since it's an agile project, it can handle it. The only way the project can handle this is by adding iterations. As that happens, defects that might have been easy to fix at one point get harder and harder to fix, since the code base keeps changing.
This principle encourages poor and irresponsible planning while hiding its effects. As iterations continue and the defect list grows, the customer becomes more frustrated-not only because of the lack of quality, but because delivery expectations aren't being met either. This is much different from more traditional practices, where you have a project based on well-defined requirements and changes are managed through a Change Management process-which, while sometimes byzantine, will at least state time and monetary costs more clearly.
The third flawed agile principle is collaboration over management. Agile emphasizes self-organizing teams that "do the right thing" in some sort of group evolutionary manner. Nothing against empowering individuals-many traditionally managed projects don't use people well-but agile isnt always consistent with responsible management.
You don't need a methodology that takes authority away from a single individual. In too many agile projects the Scrum Master is little more than a hapless cowboy waving his arms in despair while his charges go in all different directions at once. You cannot replace accountable and responsible project management with some immature utopian myth of self-organization. That's no science for success.
Changing Agile Thinking With 3 Common Sense Principles
One thing that's seductive about agile is the name. We like the idea of being agile in our thinking. Agile as a methodology cannot deliver agile thinking, however, and inevitably ends up preventing it.
Think of "agile" as the ability to take the input of all the variable elements of the project-budget, time, design patterns, reusability, customer needs, corporate needs, precedents, standards, technology innovations and limitations-and come up with a pragmatic approach that solves the problem at hand in such a way that the product is delivered properly.
This sounds like a tall order, but really comes down to three common sense principles.
If there's one key quality a good project manager needs, it's prioritization: The ability to take the pressures of all project elements and determine which path to follow based on what's most important to achieve.
Remember, the goal is to deliver a quality product on time and to budget; as a rule, there are always some elements that have to be sacrificed to fulfil the needs of the others. It's the How to Develop Next-Generation Project Managersrole of the project manager to define and maintain the project priorities so they can function as a decision framework for team members as they carry out their tasks.
Sign up for CIO Asia eNewsletters.