One of the enduring myths about software architecture and in general technology leadership is the degree of control an architect has.
Our advocates believe we walk into a room, draw a picture, everyone listens to us and then code materializes.
And I have worked in places like that. Teams willingly were lead off a cliff.
I remember a time at NetApp where a team just wanted me to draw the picture. And I did and then projects got spun up and engineers got assigned. And then I left because that’s not the way I work.
The best teams don’t work that way.
The best teams draw the picture for you and you evaluate if the picture makes sense.
What you want is people to be passionate and believe in their solution. And only very rarely is what they are proposing wrong. Most of the time it’s good enough.
And so my job is to find out how to nudge them away from potential disasters.
Sometimes it can be exasperating because it’s not the picture you want drawn. And sometimes the picture is a compromise between organizations and not the best software. And there is always someone smart enough to point out the better picture that no one had any passion for.
And then they look at me as a failure, because isn’t my job to build the best possible system and force it down my teams throat?
And the answer is almost never.
The job is to have product that can evolve to be the best product it can be. And to do that you need a committed team. And a committed great team will always produce great software even if the picture isn’t exactly what you would have drawn.
Because drawing the picture – ironically – is almost never the job.



