Agile Architecture, Lean Principles

Most of my discussions surrounding agile architecture have been focused on exploring how modularity helps increase architectural agility. I claim that modularity is a required (and to this point, missing) aspect of agile architecture. The basis for this claim follows:

  • Architecture is design, but not all design is architecture (ala Booch).
  • Design is architecture if the design is architecturally significant. That is, if it’s hard to change.
  • The goal of architecture is to eliminate the impact and cost of change.
  • The way to eliminate the impact and cost of change is through flexibility.
  • With flexibility comes complexity. We must therefore strive to increase flexibility while taming complexity.
  • Modularity helps us identify where we need flexibility by understanding the joints of the system where flexibility is necessary.

Without modularity, we can’t identify the joints so it’s more difficult to understand where we need the flexibility. My posts titled Modularity & Architecture and Modularity by Example show visual examples comparing designs that are isolated and insulated to designs that span the joints of a system. I’ve also devoted extensive discussion to these ideas in a number of other posts, which I summarize in my Agile Architecture Presentation post.

Lean Principles

Recently, I’ve been spending more time exploring lean software development principles and their relationship to agile architecture, and the best place to start when examining lean is with the Poppendiecks. I’m fascinated by the synergy that exists between the lean principles and agile architecture. In fact, when reading the second chapter of their book, “Implementing Lean Software Development: From Concept to Cash“, I was pleasantly surprised by an interesting discovery.

It seems that a study of software development practices by Harvard Business School professor Alan MacCormack revealed four fundamental practices that lead to successful software development. These include releasing early, continuous integration, experience and instinct, and a modular architecture. So it seems I’m not alone in feeling modularity is a critical component of agile architecture. But the thrust of the discussion comes later on in Chapter Two, when speaking of deferring commitment.

Deferring Committment, Reversibility, and Eliminating Architecture

Deferring commitment focuses on two fundamental factors – reversibility and irreversibility. In general, reversible decisions are those that can be changed while irreversible decisions are those that cannot be changed. We should strive to make irreversible decisions at the last responsible moment. For it is at this moment when we possess the most knowledge that will allow us to choose the most viable option. But we are also advised that, and I quote:

“First and foremost, we should try to make most decisions reversible, so they can be made and then easily changed.”

For me, this captures the essence of eliminating architecture. If we are able to take a seemingly architecturally significant challenge and make it reversible, then we have effectively minimized the impact and cost of change to a point where change is no longer architecturally significant.

Going forward, I intend to more fully explore additional synergies between lean software development principles and agile architecture.

20 thoughts on “Agile Architecture, Lean Principles

  1. TitanBingo Deposit Bonus

    Are you currently making an attempt to acquire your palms moist in on the net football betting? I’m confident, you have to have heard about most people raking in hundreds of thousands undertaking that as well as the lust for that greenback is actually tempting. Yet, rationally, it is actually legitimate that you simply could make dollars off sports betting but you actually have to understand how to go about this.

  2. Thanks for taking the time to share this, I feel strongly about it and love reading more on this topic. If possible, as you gain knowledge, would you mind updating your blog with more information? It is extremely helpful for me.

  3. あなたはネット上の店舗からシャネルの買い物についての決定をした可能性がある場合

  4. Pingback: nike flycave
  5. Oh my goodness! Amazing article dude! Thank you so
    much, However I am having issues with your RSS. I don’t understand why I am
    unable to join it. Is there anyone else having the same RSS issues?
    Anybody who knows the solution will you kindly respond?

Leave a Reply

Your email address will not be published.