Pros
Responding to Change
Perhaps the biggest advantage Agile development practices bring to development teams and businesses in general is its emphasis on responding to change and focus on working on projects that matter when they matter. Agile methods don’t force us to attempt to divine the future in 9, 12, or 24-month projections. A properly-oriented Agile team has a list of the most important things they can work on; when they finish the most important thing on that list, they move to the next most important thing…and so on, ad infinitum. This type of focus has many benefits:
Customers get solutions to the problems they value most, sooner
Stakeholders can prioritize things in a progressive fashion reflecting actual market conditions at a given time
Developers feel valued, since they’re working on things that actually matter and will receive frequent in-depth feedback from the very people using the product (ideally, at least).
Accepting Uncertainty
The second biggest source of value Agile development brings to an organization is that its practices accept the fact we don’t know everything about a project when we first start.This is in stark contrast to more “traditional” stage-gate and waterfall approaches, where requirements are expected to be “complete” before anyone so much as touches a keyboard to type their first line of code.
Agile instead accepts that we will discover more information as we go on; we may find a particular technical solution doesn’t meet the needs of customers, or we might discover there’s an entirely different problem underneath the stated problem, and by solving problem we can solve not just the proposed issue, but other customer concerns as well. Applying Agile principles to our approach allows us to accept the unknown and prioritize discovery and experimentation to drive out uncertainty before we fully commit to a solution.
Faster Review Cycles
In order for teams to be both accepting of uncertainty and responsive to change, there’s a need for rapid iteration and cyclical, comprehensive reviews as work is completed — to ensure that new discoveries are contemplated and current efforts are evaluated. Most Agile practices either time-box efforts (Scrum) or control the amount of “work in progress” (Kanban) to ensure efforts are completed within a reasonable amount of time. Those efforts are then reviewed with customers or customer proxies (such as internal services teams or stakeholder teams).
The focus on ensuring prompt reviews and feedback from actual users (or as close to the user as you can get) addresses the most common failings of waterfall approaches — the delivery of a product nobody really wants or likes after a 6-9 month closed development cycle.
Greater Flexibility in Releasing Features
In addition to faster cycles of review with customers or customer proxies, the focus on delivering working software in time-boxed or effort-boxed iterations of work provides the business as a whole more flexibility in when product should be delivered to end users.
In more traditional approaches, releases occur when all the planned work is completed…or, even worse, on a date set by stakeholders regardless of how polished the actual work is on that date. Agile approaches, on the other hand, provide sufficient functionality
Less Up-Front Work
Prior to the advent of Agile development methodologies, not only did product requirements attempt to predict what would be needed in 6-9 months, but they also attempted to be an encyclopedic contract outlining and detailing nearly every single aspect of a product’s design and development. It was not uncommon to see Product Requirements Documents (“PRDs”) and Technical Requirements Documents (“Specs”) exceeding fifty or more pages and outlining specific deliverables developers would use as checklists of exactly what to deliver — nothing more and nothing less.
Agile instead focuses us on defining and prioritizing problems to solve; collaborating with our developers to design, specify, and revise work needs to be done; and to exert only the amount of effort needed to move a product or project to its next phase. Incurring high up-front costs in investigation, documentation, and contract negotiation is anathematic to the fundamental beliefs outlined in the Manifesto.
Cons
Lack of Understanding
Flexibility Can Lead to Bad Behaviors
Culture Fit
Lack of Predictability
Integrating Diverse Skill Sets Into Teams
Challenges at Scale