Saturday, January 10, 2009

The Dilemmas of Coding and the Architecture

I found a great blog about software architecture, and in it, a great post. What I like about this blog is the emphasis they put on the inherent conflict of the architect. The daily struggle with the developers who want to code now, and think later. The conflict with the managers - and the budget - who need to see the project delivered already. But more than all, it is about the fight with yourself. There are many such conflicts, some subtle, but definitely they keep the stress up and the spirits low. But in the end of the day, I sometimes feel, it's about the internal dilemma that involves the need to both manage your project - all of it, leaving no corners unwatched - and in parallel, the need to code the core architecture in the way you see it.

In Hebrew there's a saying: Tafasta Merube Lo Tafasta. Which means: if you try to catch everything, you will catch nothing. I learned time and again that you can't catch and control everything, and if you try to do so, it will have the reverse effect. On the contrary - you must let go, must delegate responsibility and give with it the authority to do so (because responsibility cannot go without authority). This, my friends (as McCain used to say) takes courage and calmness.

On the other hand, an architect must always code something in his project. Doing so will you can give you the feel for the code, and more importantly, the feel for your programmers. You will understand the daily hurdles they have to tackle, and it will free you from being the frustrated perfectionist, sitting in a managerial ivory tower surrounded by Gantt charts. That's why I like the name of the blog so much: Coding the Architecture.


0 comments: