An agile modeling poster:

How does agile prevent stovepipe systems and implementations. My inquisitor seems to think that agile development processes actually increase the incidence of stovepipe systems and thinking. (I’m paraphrasing here)

Agile is recursive.

Just as the power of components, objects, interfaces is applicable in the small or in the large…

The parallel being: the mere existence of the “tools” to avoid poor solutions doesn’t mean that poor solutions will not happen. We still have excellent code and poorly-written code.

The overarching agile requirement is to use good old-fashioned, smart thinking.

Agile neither precludes nor promises brilliant designs and abject failures. Only people can do that.

Apply the tenets of agile development recursively “upward” and you might be able to avoid stovepipe thinking.