Scott Hanselman

Sez You Architecture and the Architecture Ninja

July 10, 2007 Comment on this post [5] Posted in Musings | Programming
Sponsored By

I don't like getting into architecture arguments with people who are fundamentally interested in the argument being constructive. There's discussions and there's arguments. Having an argument doesn't mean that it has to turn into a shouting match or a "measuring contest."

I try to remind whoever I'm arguing with that we're both on the same side, with the same goals.

Sometimes, though, these Architectural Arguments devolve into what I call "Sez You Architecture."

These kinds of meetings usually go something like this:

"I'm concerned about the lack of Unit Testing on Project A. I'd like to see a little less coupling and some better code coverage numbers, otherwise I won't feel comfortable signing off on a Go-Live."

"Sez you. My team has done a great job and I don't see a problem."

Sometimes I feel like Harvey Keitel as "The Wolf" in the movie Pulp Fiction.

"Pretty please, with sugar on it, fix the ****ing build server." - Scott 'The Wolf' Hanselman

Discussions that devolve into "Well, sez you" are never healthy for anyone. Nobody wants to be the bad guy, and it's rarely a good idea for management to go get "The Smart Guy" and have him come crashing down through a stained glass on a zipline ready to save the day. However, doesn't that so often seem to be the case?

Bringing in external assistance or even oversight/governance can be a good thing, but only if the tone of the engagement is set properly. Everyone should agree what the goals are and what success looks like. The person coming in should understand they are there to help, not to dictate rules or order people around. It is very likely that the Architecture Ninja has little context and has only been told that things are messed up and that a few specific people should be killed to get the project on track.

Instead, in my experience, folks should consider two primary issues:

  • The folks ON the project may not be able to see the holistic view, as they're just too close.
  • The Architecture Ninja can't possibly understand the complete history of why certain decisions were made.

If everyone remembers these two basic facts, things might turn out better. The project team remembers that the ninja is here to help, while the ninja should focus on highly leveraged actions and avoid going over things line by line.

A crappy project can't be fixed by a line by line code inspection, no matter how good a ninja one is. Sez me.

Technorati Tags: ,

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
July 10, 2007 17:20
When you are developing a product, the whole team should have one goal - create the best product they can that meets the customers' expectations within the allotted amount of time. Alright, make that 3 goals, but they are still a team trying to accomplish the same things. Live together or die alone.
July 10, 2007 19:28

I definately like how you phrase the conversation. This is something that I see concerning Enhancements on an application that is old and has gone through numerous programming leads.
July 10, 2007 23:35
Follow the link to see Scott, Devin and Bill in a field.
July 12, 2007 21:31
WOW! This sounds EXACTLY like a situation I was in recently at work, at least as far as the 'Sez you!' part. This project was touted as a n-tier SOA golden jewel. On closer inspection it was actually a 3-tier client-server app, with a hollow middle tier that did nothing but make things slower, and required the UI to have an extremely in depth knowledge of the database design (which by the way, appears to have been dreamed up by some small gnomes living on the planet Uranus). This strange and bizarre database was exposed all the way up thru the tiers in DataSets (evil spawn of Satan, etc). Needless to say, after working on this for 3 years, consistantly missing deadlnes along the way, the lead architect was saying basically nothing but 'Sez You', while I'm trying to explain where the problems are and how to fix them. What a mess.
July 13, 2007 19:16
Our teams use a custom XSL on the front out continious integration app (we use the Criuse Control suite for Java, .Net and Ruby) that sucks in build metrics and shows the results in simple green and red so the chief engineer can make these decisions easier.

I know it doesn't solve the architecture problem, but it means the Wolf doesn't have to come out so often.

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.