James McGovern is an industry thought leader whose focus is on the human aspects of technology around open source, SOA, software security, enterprise architecture and agile software development.

The opinions expressed herein may or may not represent my own personal opinions and definitively do not represent my employer's view in any way...

Friday, May 16, 2008

Twisting the meaning of architecture

In the halls of large enterprises, the word architecture is the most overused twisted word in the vocabulary of IT today...

Architecture is the most overused word in software engineering today. Analysis and Design are close on its heels. Depending on whom you believe, it is:

the same thing as design

the bare bones of design - what Agilists refers to as a System Metaphor

the tools and libraries used to build something: The Microsoft crowd calls DNA an architecture

a set of patterns from which design elements derive

a data model, sans behavior

behavioral interfaces, sans data dependencies

a list of the application's processes and how they communicate

the packaging/layering/modularization of the main work product

the hardware, what processes run on what hardware, and how the hardware is connected

methodology, standards, process, and heaven help us a CMM

any combination of the above, and also the address of a good therapist

Enterprise Architects need to abusing the word Agile and need to start practicing it. Agile methods for software development such as Extreme Programming set an excellent precedent by not talking about architecture, design or analysis, but talking about concrete activities with unique names appropriate only to themselves. If someone chooses to interpret an XP activity as architecture, or design, or analysis, or hog-calling, this person isn't doing XP or Scrum - they're bullshitting. Is this activity like that activity? These folks usually haven't recognized that such activities that are supposed to provide clarity, in fact are evidence that distillation is a mental disorder. Frankly, so long as each activity is understood well enough for it to be conducted efficiently, it simply doesn't matter. It's just bullshit...