Friday, February 10, 2012

The Origins of Agile Programming

The Agile Manifesto is common knowledge now. I had always assumed that its origin story was somewhere in the early 90s or late 80s. But in the book I'm reading I now see that it started far earlier. In the Basili book I'm reading, this comes from page 30 which is a paper from 1975:

  1. Any difficult in design, coding, or debugging a modification should signal the need for redesign or receding of existing components.
  2. Modifications should fit easily into isolated and easy-to-find modules. If not, then some redesign is needed.
  3. Modifications to tables should be especially easy to make. If any table modification is not quickly and easily done, then a redesign is indicated.
  4. Modifications should become easier to make as the iterations progress. If not, then there is a basic problem such as a design flow (sic I suspect it should read flaw) or a proliferation of 'patches.'
  5. 'Patches' should normally be allowed to exist for only one or two iterations. Patches should be allowed, however, in order to avoid redesigning during an implementation phase.
  6. The existing implementation should be analyzed frequently to determine how well it measures up to the project goals.
  7. Program analysis facilities should be used whenever available to aid in the analysis of the partial implementations.
  8. User reaction should always be solicited and analyzed for indications of deficiencies in the existing implementation.

While there is much to fault in this model, it clearly emphasizes the need for frequent refactoring of code as design flaws are recognized and the iterative cycle with far shorter sprints than was common at the time it was written. Elsewhere he talks about decomposing the requirements into a list that can be implemented incrementally. The domain of this paper was the creation of a compiler. The increments were the specific language features. So each release of the compiler would be complete for that set of language features.

Clearly the years and our personal experiences have brought us to this belief. I'll be curious to find the empirical evidence that supports this belief.

No comments:

Post a Comment