Sunday, November 24, 2013

Architecture Articles

Sometimes with a partner and sometimes on my own, I've started developing a series of articles on the topic of architecture.  It's a topic that I resisted for a long time and am finally coming to terms with in the year 2013.

Vive la Résistance

When I first got into agility, something like eight years prior to the date of this post, I grew instantly allergic to the role of "architect" and, therefore, to the concept of architecture.  "Designs can and should be grown," I would say, "so why would we want a person or activity that prescribes design in advance."

I was able to hold and defend this kind of opinion for years.  Partly, that was because architects in the day were like politicians - the ones who sought the position were those least fit to hold it.  Partly, that was because I worked on teams so small that the need for an architect was either non-existent or non-apparent.

Then something happened.  People I knew - reasonable people with good minds and intentions - started becoming architects.  To my surprise, the people I knew and respected started accepting the role of architect and the design artifacts of architecture.  Even more surprising: they stayed reasonable and worthy of respect.

That wasn't enough to convince me, though, because one of my mentors had spent years drilling into my head that exceptional people can deliver value even under the most adverse conditions.  So I was shocked to find out that value could be delivered by these people and that they were not corrupted by the station, but not enough to revisit the negative connotation I hung on the word "architect."

I started thinking back to before I was an agile evangelist and lean thinker.  "When I was just starting out, some of the most important and supportive people in my career were architects," I told myself.  The confirmation bias is strong in this one, though, so I said "They were just more exceptional people and it just looked like they were successful because we didn't understand agility."

My Last Stand

I'm known for my stubbornness, so it should come as no surprise that I resisted the need for architecture and architects in general up to the point where I was made one and beyond.  It's all a blur, now, but for at least a year I was labeled an architect and did everything in my power to not be one.

None of this is really particularly out of character but, in the course of that year, I refused to acknowledge architecture meetings, sabotaged myself, and blocked other architects from accessing the team.  In effect, I used my position as an architect to become a sort of architecture antibody.

Finally, I was backed into a corner.  I had to play the role of the traditional architect - envisioning a solution far greater than we could hope to achieve in the near future.

I mean.  I suppose I didn't absolutely, positively have to do that.  I could have gone and found a new job but I've been having a lot of success where I am and I didn't want to abandon the organization so I bent.  Just a little, but I bent.

Surprise!

That's what convinced me.  Bending just a little produced a valuable outcome.  I saw for my self, with my own two eyes that architectural work can be done without sacrificing lean or agile principles.

If you blend the goal of architecture (big picture, vision-level design) with the principles of lean thinking and agile software development you can produce artifacts that are lightweight, high-value conversation pieces.  The architectural documents you create are interesting at the executive level as well as at the individual-contributor level.  Most importantly, these artifacts help the team by documenting ideas rather than harm them by creating commitments.

That's what the articles I'm writing are about: fulfilling the goals of architecture-level work without undoing any of the progress we've all made toward emergent designs and agile process frameworks.