From the March 2012 issue of Entrepreneur

Q: I've heard software development shops talk about various methods--"waterfall," "agile" and "scrum"--for building apps. What's the difference?

Choose wisely: Kim Heldman, senior IT director for the state of Colorado, says app-building methods can make or break your project--so do your research.
Choose wisely: Kim Heldman, senior IT director for the state of Colorado, says app-building methods can make or break your project--so do your research.
Photo© Jacob Pritchard

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