To Agile or Not To Agile

In the world of project management methodologies, the two words you hear most often is Agile and Waterfall.  Although some purists may question Agile as a methodology rather than more of a paradigm the reality is that these are two different ways of approaching project execution.

Traditional (Waterfall) Methodology

Projects that use the Waterfall, or more appropriately called Traditional, model follow a linear approach where a project deemed Feasible moves through progressive steps of Planning and Requirements, Design/Architecture, Building (Coding), Testing, Deployment to production and Maintenance/Support of the final product. This model is illustrated below.

In a true Traditional project, each stage is completed before the next one begins.  In reality, there is often some overlap moving from one stage to the next, but they are performed somewhat in the order above. The management of these types of projects is very hierarchical with a Project Manager working with a Sponsor to control Scope, Budget, and Schedule. A Business Analyst is generally employed to identify the requirements and specifications that the builders and testers will use to create and deliver the final project.

Agile Methodology

Agile projects use an iterative approach for creating products. As the name implies this approach involves a relatively small team (3-9 people) consisting of cross-functional, self-organizing builders/developers, a Scrum Master who facilitates the team, and the Product Owner who understands the final product and prioritizes the work accordingly.

Starting with a concept of what the final product will be, the Product Owner identifies the functional components of the product. These are further broken down into more manageable User Stories and then placed in a prioritized feature list known as the Product Backlog. The Development Team, along with the Product Owner, selects the feature(s) to be worked during a Sprint.  A Sprint is time-boxed and usually lasts between 2-4 weeks. Once established, however, each Sprint is that same duration.

With each Sprint the Development Team selects the most important features from the Product Backlog, identify the requirements and plan the work, design, build and test the feature. This piece of functionality may or may not be launched into Production but regardless the next Sprint cycle will begin immediately after the first.  This methodology is illustrated below.