Niwot Ridge Resources

A Source of Information for Mission Critical Systems, Management Processes, and Strategies

Agile Concepts

The discussion around "agile" is confused with many voices and ideas. Here is a collection of "statements" about agile.

  • The work of analysis and design, regardless of the methods used cannot be as good as actually building something and letting the users try it out. This bottom up method of "build it and they will come quickly to the conclusion it does or does not work" is superior to most of the current top down methods.
  • Arriving at the initial "guess" of what the user wants is critical to agile methods.
  • Developing code in an agile environment is as much about "attitude" as it is about process. Continuously asking:
    • "is this feature needed?"
    • "is this process the lightest set of activities that can be performed and still meet the quality and schedule needs?"

Agile Methods or Major Concepts

For more on agile programming in general, see "The New Methodology" by Martin Fowler, at

Extreme Programming

Built around 12 basic practices ranging from pair programming to frequent refactoring, this approach is more prescriptive than the others. For more information, visit and or read Extreme Programming Explained: Embrace Change, by Kent Beck (Addison Wesley Longman Inc., 1999).

Extreme Programming on a single page

Balanced Agility

Mike Beedle's Balanced Agility is not a framework. It requires fewer engineering practices than XP. It is NOT OPTIMAL or BEST; instead it is MINIMAL but SUFFICIENT, engineering-wise. It is also EASIER and somewhat SAFE. Balanced Agility has some of its roots in the Living Metaphor, which merges patterns of life, computer systems, and human organizations. As a physicists by training this topic is right on the edge of rationality, so I take the Living Metaphor with a grain of salt.


Based on the empirical process control model, Scrum programming relies on self-directed teams and dispenses with much advanced planning, task definition and management reporting. To learn more, visit or read Agile Software Development with Scrum, by Ken Schwaber and Mike Beedle (Prentice Hall PTR, 2001).

Another Scrum resource is the Scrum Alliance

Scrum development on a single page


This approach empowers the team to define the development process and refine it in subsequent iterations until it's stable. To learn more, visit or read Agile Software Development: Software Through People, by Alistair Cockburn (Addison Wesley Longman, 2001).


Based on adaptive rather than deterministic theories, this approach offers a series of frameworks to apply adaptive principles and encourage collaboration. For more information, visit or read Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, by James A. Highsmith III (Dorset House Publishing, 2000).

Feature-Driven Development

This model-driven, short-iteration process is built around the feature, a unit of work that has meaning for the client and developer and is small enough to be completed quickly. To learn more, read Java Modeling Color With UML: Enterprise Components and Process (with CD-ROM), by Peter Coad, Eric Lefebvre and Jeff De Luca (Prentice Hall PTR, 1999).

Dynamic Systems Development Method

Conceived as a methodology for rapid application development, DSDM relies on a set of principles that include empowered teams, frequent deliverables, incremental development and integrated testing. For more information, visit or read DSDM: The Method in Practice, by Jennifer Stapleton (Addison Wesley Longman, 1997)




Home | Search |Site Map | Copyright