Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Digital Library

Javascript is currently disabled for your browser. For an optimal search experience, please enable javascript.

Advanced Search

Basic Search

Content Type


Publication Date


Software Architecture and Agility: A Clash of Two Cultures?

  • May 2010
  • By Philippe Kruchten
  • In this presentation, Philippe Kruchten discusses how Agile and software architecture can support each other and coexist, where appropriate.
  • Publisher: Software Engineering Institute
  • This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.
  • Abstract

    Software architecture is taking a bad rap with the agilists and other proponents of agile and lean software development approaches: “BUFD (big up-front design);” “YAGNI (You Ain’t Gonna Need It);” “massive documentation;” “smells of waterfall;” these are common claims made about software architecture when it is portrayed as a typical nonagile practice. However, in certain classes of systems, ignoring architectural issues for too long causes teams to “hit a wall” and collapse from a lack of architectural focus. But isn’t “Agile architecture” a paradox or an oxymoron? Aren’t they two totally incompatible approaches?

    In this lecture, we will review the real issues at stake, move past the rhetoric and posturing, and show that the two cultures can coexist and support each other, where appropriate. We define heuristics to scope how much architecture a project really needs, attempt to assign actual value to an otherwise invisible architecture, and review management and development practices that do work in the circumstances where some significant architectural effort is needed, when you are actually going to need it.

  • Download