Thursday, August 31, 2017

The Essence of Agile Software

According to Martin Fowler,
It's been over a decade since the developers of agile methods first started to talk about their approaches. In this time agile thinking has changed from a niche activity to an approach that is widely used. However, like any popular technique, agile software development has suffered from semantic diffusion, so much of what we see under the name of agile doesn't bear much resemblance to what the early pioneers were doing. So I think it's important to revisit the essential elements of agile thinking
I've always seen the essence of agile thinking resting on two contrasts with traditional plan-driven software engineering.
Plan-driven engineering expects us to come up with a predictive plan that precedes development. The plan lays out the people, resources and timelines for the overall project. Software design is also done up-front, with implementation expected to conform with this design. Success is measured according to how well development follows this plan.

Agile plans are a baseline that we use to help us control change. Agile teams plan just as carefully as traditional teams, but the plans are constantly changing to reflect the things we learn during a project. Success is based on value delivered by the software.

Watch the 20-minute video of Martin Fowler explaining the history of software projects with the beginnings of plan-driven engineering (i.e., Waterfall) with agile plans.



1 comment:

  1. Fowler says about plan-driven and agile: "It's not about techniques, about whether you're doing pair programming or retrospectives, or even iterations. But they are very fundamental about your point of view of the world, and that is the hardest part of making the fundamental shift to agile. That is why most people who pay lip service to agile, aren't actually doing it. It involves a very cultural and worldview change. That is much, much bigger than most people realize.

    I particularly like this comment. There are a number of articles I read about companies (e.g., government, the military) "moving to agile" and everyone is excited about it. I, however, am skeptical of any agency or company who has been doing plan-driven engineering (which I like better than Waterfall, but it means the same thing) can create the cultural shift to agile. After watching the video, do you have any examples of places you worked or activities you saw where agile was mostly lip service? That is, they said it was agile, but really wasn't. Alternatively, what it took to move to agile?

    ReplyDelete