Asked what is agile? It's a method of reducing the cost of change when developing an uncertain act.
— swardley (@swardley) April 21, 2015
@swardley have you seen John Seddon's quip: "Waterfall: doing the wrong thing righter. Agile: doing the wrong thing faster."?
— ruth malan (@ruthmalan) April 21, 2015
@swardley in theory :) What we're paying attention to shapes what we perceive and pay attention to. etc.
— ruth malan (@ruthmalan) April 21, 2015
@swardley I was making a sophisticated/nuanced point. We canalize -- we think we're open to finding misdirection but it's hard
— ruth malan (@ruthmalan) April 21, 2015
Some things are easier to change than others. The architect Frank Duffy proposed a theory of Shearing Layers, which was further developed and popularized by Stewart Brand. In this theory, the site and structure of a building are the most difficult to change, while skin and services are easier.
Let's suppose Agile developers know how to optimize some of the aspects of a system, perhaps including skin and services. So it doesn't matter if they get the skin and services wrong, because these can be changed later. This is the basic for @swardley's point that you don't need to know beforehand exactly what you are building.
But if they get the fundamentals wrong, such as site and structure, these are more difficult to change later. This is the basis for John Seddon's point that Agile may simply build the wrong things faster.
And this is where @ruthmalan takes the argument to the next level. Because Agile developers are paying attention to the things they know how to change (skin, services), they may fail to pay attention to the things they don't know how to change (site, structure). So they can throw themselves into refining and improving a system until it looks satisfactory (in their eyes), without ever seeing that it's the wrong system in the wrong place.
One important function of architecture is to pay attention to the things that other people (such as developers) may miss - perhaps as a result of different scope or perspective or time horizon. In particular, architecture needs to pay attention to the things that are going to be most difficult or expensive to change, or that may affect the lifetime cost of some system. In other words, strategic risk. See my earlier post A Cautionary Tale (October 2012).
Read Ruth's further comment here (Journal November 2015)
Wikipedia: Shearing Layers
Agile is a way to do more work relative to managing it, something like 80/20% rather than 20/80%.
ReplyDeleteSome agile is good for programmers.
Work management, planning is good for customers and executives to understand what, when... to expect, assess costs and prevent issues etc.
In any case, the architecture of a system/enterprise is supposed to be delivered upfront, most of it in any case.