4. Agile Doesn't Mean "Chaos is Good"Managers who are comfortable with one-step-at-a-time methodologies may be uncomfortable with the iterative nature of agile development. But agile development doesn't imply disorganization.
Isaac Sacolick, vice president of technology at BusinessWeek and previously founder of TripConnect, says that while agile gives sponsors the ability to react to market conditions and reprioritize requirements, "Agile does not preclude long-term planning, architecture, standards or project management. Enterprises have to think through how and where to apply agile development."
The how and where matters. Few developers believe that agile is appropriate for every project and for every team — and they hope the CIO understands when to set it aside. Marshall Presnell, development architect for Village Voice Media, says, "The agile model of development is optimally suited to rapid and chaotic requirements changes." And Gary Rowe, director of Froot, an agile development consultancy, recommends agile for projects with unclear or shifting client requirements.
Where's it the wrong choice? John Miano, owner of Colosseum Builders, says it's not suitable for projects that will have a long lifetime and those where complete reliability is required.
Organizations that adopt agile principles don't change the basics of defining problems. "Agile development doesn't mean that you don't do requirements analysis and design," says Mike Emeigh, QA Manager at Deltacom. Good agile teams do requirements analysis and design, he says. "They just don't waste a lot of time committing it to reams of paper [or] have a whole bunch of people who can't possibly grasp all of [the issues] try to study and understand it before they commit it to working software."
But the iterative nature of agile development — in which developers and users work together to design and cocreate the application — sure doesn't sound like it's easy for a manager to track. CIOs want to know the status of every project in company, but agile implies that requirements and schedules are always changing. Adherents insist that's a wrong assumption.
Responds Christopher McMahon, QA tester at SocialText, the enterprise wiki company, "We estimate the work for each iteration. Because our estimations get better over time, we know from iteration to iteration exactly what we can deliver, and we can project that into the future with relative ease. Because we track stories in the backlog on burndown charts and use other Big Visible Charts to broadcast our status, that status is easy to check. And because we have Iteration Managers whose job it is to keep the work moving, we have an expert available on each project to answer any detailed questions." According to Ben Weatherall, configuration manager at pharmacy technology provider PDX, the workflow involves more than just the programming staff. "Just because development is practicing agile methods does not mean that configuration management should be ignored," he says.
Agile development includes version control on code and requirements; defect, issue and enhancement tracking, and some way to relate their status to the code changed to resolve them; and a way to capture, track and index communications with the customer to indicate changes to the requirements, success or failure of demos and tests, and so on. Adds Weatherall, "The tools used to facilitate CM in an agile environment need to be 'tuned' to that environment just like the development tools do."