Critics often dismiss Agile as an inappropriate or unsuitable project management method because they misunderstand its basic principles or fear the changes that Agile might bring to the way they currently think and work. Here are some of the most common criticisms, with a brief response:
|Agile is an undisciplined approach.||Critics often complain that Agile is undisciplined because they confuse imposed discipline with self-discipline. Because they can’t see documented rules and regulations that have been imposed on the team by outside stakeholders, they assume that those rules don’t exist. But Agile’s discipline comes from within the team, not from outside of it. Instead of relying on strict rules and regulations from senior managers or a project management office to direct team work, team members hold themselves and their teammates accountable—they are responsible for delivering a product in each iteration that is complete, free of defects, and valuable to customers before they can move on to subsequent work.|
|Agile software development is just cowboy coding.||Although both Agile and cowboy coding allow the development team significant flexibility in the ways it accomplishes its work, they are dramatically different. Cowboy coding relies on the product developer to decide which features the product will contain; as a result, cowboy-coded products may not include features that satisfy the customers’ real wants or needs. In contrast, Agile relies on continuous input from customers and other stakeholders to shape the product, ensuring that the product remains up to date and satisfies the latest customer requirements. Cowboy coders also focus intently on the current work-in-progress with little regard for subsequent product versions and product adaptability. Agile practitioners devote considerable amounts of energy to ensuring that products have low technical debt and are easily adaptable in future iterations.|
|Agile can’t produce consistent work because it doesn’t document its processes so others can replicate the results.||Agile is not designed to replicate results; it is a method designed to produce innovative products in whatever way works best for the team. Agile processes are what Alistair Cockburn calls “barely sufficient” and what Jim Highsmith calls a “little bit less than enough”; they provide enough structure to guide practitioners but are flexible enough to allow a team to customize its work to best advantage. Agile practices are not prescriptive processes that constrain the team’s work and development; instead they free the team to work as efficiently and effectively as possible to develop the right product.|
|Agile only works for co-located teams.||Although Agile generally works better in teams that have frequent face-to-face interaction, Agile can work for distributed and dispersed teams as well; it just requires more effort and a focus on better communication and information distribution techniques. Distributed and dispersed Agile teams should strive to communicate verbally as often as possible, using telephone conversations and videoconferences to ensure consistent collaboration. They should develop virtual story boards and wikis to keep information flowing on a consistent basis. And they should limit nonverbal communications (email, memos, and other written documentation) to prevent assumptions and misunderstandings from creeping into the team process. It is not impossible for these types of teams to be Agile; it just takes a little more effort.|
|Agile isn’t scalable to larger ventures. It only works for small projects.||Agile can be used on projects of any size, but it is true that practitioners must develop additional coordination and infrastructure to accommodate the increased complexity. For example, large Agile projects don’t use bigger teams; they add more teams and plan integration and communication practices to ensure that teams still work quickly and collaboratively. Work is distributed and synchronized across teams in team coordination meetings such as the scrum of scrums. Organizations often create sub-teams that have their own product managers/owners, project managers, and team members who focus on delivering an increment of work to another team. An additional coordinating iteration may be required to prepare the organization for scaling Agile practices and may even add items to the product backlog to deal with scaling issues. But no matter how large these projects may be, the basic tenets of Agile still apply—practitioners must self-organize into teams that deliver complete increments of products in quick iterations.|
|Iterations allow Agile projects to go on forever, always adding more features to products but never finishing them.||Agile projects are done when the customer decides they are done. When a product contains enough new features to satisfy customer requirements, the product is “finished” and released to the customer for use. Iterations are simply the timeboxes that the development team uses to contain development actions and ensure consistent feedback and adaptation of products. Features may be added to products but only after ensuring that they add value to the customer and only if they can be completed before the release date. In Agile projects, more often than not, the release date is a fixed constraint; whatever is completed by the release date is included in the finished product.|
|Agile is no better than the methods we use now. I’m comfortable with the system we have in place. Why do we need to change it?||Change is inevitable in today’s marketplace and only those organizations that are capable of responding to altered market conditions will survive. Meeting the needs of customers is a key for success today and Agile offers a way to meet that need. This typically means the organization must challenge old processes and old ways of thinking in order to innovate and excel. Michele Sliger and Stacia Broderick may have said it best in their book, The Software Project Manager’s Bridge to Agility: “Traditions must be challenged—doing nothing is a mistake.”|
To test your understanding of the content presented in this assignment, please choose the correct answer
1. Agile has been frequently compared to ________ because ________.Choose only one answer below.
a. traditional project management; both tend to micro-manage teams
b. lean development; neither relies on processes to complete project work
c. cowboy coding; both allow developers considerable flexibility to complete products
Correct. Both Agile and cowboy-coding practices allow developers considerable flexibility to complete products, but Agile practices involve customers to a greater degree.
d. Scrum; both can only be accomplished by co-located teams
2. For Agile to work on distributed or dispersed teams, practitioners must:Choose only one answer below.
a. document as many processes as possible and share them by email
b. use telephones conversations, videoconferencing, and virtual storyboards to help team members collaborate on a consistent basis
Correct. Agile methods thrive in an environment that fosters direct verbal communication and frequent collaboration.
c. limit face-to-face interaction because it is too complicated and expensive
d. create an additional role that focuses solely on ensuring that information is appropriately distributed
3. How can organizations scale Agile methods to deal with larger projects?Choose only one answer below.
a. Add more people to Agile teams
b. Focus more effort on communication and coordination among teams
Correct. Agile methods can be used in larger projects but take additional effort to ensure appropriate communication and coordination.
c. Modify the product backlog so it only includes items that smaller teams can accomplish
d. Hold fewer team status meetings so teams can focus on completing tasks