App Development Methods Decoded
This story appears in the March 2012 issue of . Subscribe »
Q: I've heard software development shops talk about various methods--"waterfall," "agile" and "scrum"--for building apps. What's the difference?

A: Be assured, the developers who use scrum aren't billing you for a daily rugby match to help brainstorm your product. In this case, the term describes one of more than a half-dozen software development processes used to organize a project's work flow. And whether you need an e-commerce site for your T-shirt startup or a smartphone app for your pizza delivery business, you should decide on the approach to development that addresses the requirements, design, production, testing and deployment phases of the software in a manner that works best for your management style and, ultimately, your business.
According to Kim Heldman, senior IT director for the state of Colorado, choosing the right methodology for a development project can spell the difference between rapid success and drawn-out failure. Heldman suggests focusing on the three most popular development processes: waterfall, agile and scrum.
Waterfall | Agile | Scrum | |
Process | Methodical, linear | Continuous, repetitive | Delegates tasks to self-directed teams |
Best used if | The project builds upon existing platforms (e.g., a website or database) | The shape of the end product--or end user--is unclear and likely to change. Design, development and implementation occur multiple times. | The project involves uncharted territory for the developers, yet the deadline calls for a quick development cycle |
Pros | Highly structured, reliable | Flexible, simple; working prototype available early in the cycle | Collaborative; good for products with tight deadlines |
Cons | Software delivered at the end of the cycle, with few changes allowed | Unpredictability of end product and uncertain delivery time | Success depends on the quality of team members and their ability to collaborate |