6. Agile Isn't a Silver BulletWhile agile can offer businesses a lot of improvement, it won't solve every development problem.
"Bad programmers/communicators can still fail with agile," points out developer Kelly Anderson. "Give competent and invested people agile, and you'll have happier people doing better work more rapidly. Give incompetent, unempowered people agile (or even worse, just the word agile), and you'll still fail," he says.
Neil Roodyn, author of eXtreme .NET: Introducing eXtreme Programming to .NET Developers, says that agile will not convert a bad development team into a good one. "Agile is not a religion, a methodology or a solution to allow mediocre software developers (which is most developers, by the nature of the term) deliver awesome software."
Ed Cowsar, CEO and managing principal at Inside Methods, says, "There is no middle ground in agile software development — radical success or miserable failure are your only options."
Excellence requires care and attention to detail, as in any endeavour. "To successfully adopt agile development, teams need self-discipline, a rigorous approach to their work, management support and time to learn. Good managers can supply the latter two. A good coach or technical lead can help the team achieve the first two," says James Shore, an independent consultant and author of The Art of Agile Development. "Excellence is hard; people like to take the easy way out. But the big gains people associate with agile development come from excellence, not mediocrity."
Don't adopt agile because it's popular, says Shore. "Don't go out, buy a bunch of 'agile' project management tools and certifications, and declare victory. Have your conscientious and thoughtful leads take the time to truly delve into the ideas and philosophy of agile development, including why those tools and certifications aren't central to the agile approach."
7. Success Depends on PeopleJust as agile may not be suited to every type of development project, it may not be the right option for every team, peoplewise.
Miano, the owner of Colosseum Builders, says, "Agile-type development also tends to be very personality dependent. If you put 10 people together in a room, they all had better be compatible. . . . The people working in such an environment need to be able to ignore the personal quirks of the others."
Others believe that agile can bring teams together. Steve Reiser, a senior software engineer, says that a team's ability to respond quickly, with frequent periodic successes, makes team members empowered and happy. "When a project fails, the team fails. When the team fails, morale suffers," he says. "Agile keeps work levels high, success rates high, adaptability high, which all contribute to keeping morale high."
Is it a lot of work to make agile work for your team? Certainly. It requires a major change in the way that software is developed, and in the way that teams — including the user community — design applications. But, insist the people who use agile methodologies, it's worth it.