State of Mind Matters For Enterprise Architects
Posted in Eric Bruno on February 28th, 2011 by Eric BrunoEric Bruno originally posted this on Smart Architect.
It’s funny how often in life you become convinced that someone simply is closed off to your point of view — he or she doesn’t care about what you want to say and doesn’t have any intention of taking your concerns into account.
From personal experience, I know that happens when you’re a developer on a project trying to get a single application built and deployed, and when you’re an enterprise architect trying to define an enterprisewide technical vision. Both roles are important and crucial to the enterprise — after all, what good is an architecture without resulting applications? But it’s easy to get wrapped up in your role and your concerns and forget that the other party has concerns, too.
In one specific case, I recall sitting with my VP of development, explaining that we had an application to build and customers to keep happy. The enterprise architect and his VP were sitting across from us and were, I thought, entirely too dismissive of our situation and our need to circumvent parts of the architecture to deliver something fast.
Soon after this meeting, though, I had one of those moments where I just got it. It wasn't that the enterprise architect didn't care about “my application” — it was that he was thinking of the enterprise's current applications, and future ones. The enterprise architect needs to look farther down the road and position the enterprise to be ready to meet future customer needs more quickly than competitors. I approached the enterprise architect, hat in hand, and we cooperated from that point onward. You see, it turned out he actually did understand where I was coming from, too. As a result, we improved the architecture, and the application truly did benefit from the enterprise architecture's vision. And, I became an enterprise architect myself!
The point I’m making is that architects and developers must open up to each other and form a symbiotic relationship. One really cannot exist without the other. You've probably heard that all software has its architecture, even in situations where one isn't explicitly documented. This is why it's imperative to get it right, from the beginning.
Improving Your Relationship
And embracing that symbiotic relationship also means getting things right all the way through the process. I once heard an enterprise architect say, “I don't do schedules!” By this he meant that he refused to get involved in the actual planning and development of the software he was helping to define. The developers understood that his job of defining the architecture for a large enterprise — and keeping it relevant — was demanding and time consuming, but he lost a lot of credibility with the dev team as a result of that attitude. You see, most people in development took this as a cop-out: They saw this as his attempt to remove himself from the results of his work if the architecture wasn't perfect, the software failed to meet customer needs, or if it didn’t deliver on revenue expectations.
Accountability all along the line is just as important as a clear architectural vision. In my experience, successful architects choose to be involved in the implementation process, and share in its ups and downs. This ensures two elements: First, development follows the architecture, and each developer becomes an advocate and a spokesperson for the architectural vision. Second, the architecture is sure to be improved as issues arise during development — especially those that weren't considered while defining the architecture. And there will always be improvements to make..
A good enterprise architect gets involved in the software's build process, testing and quality assurance, and ultimately its deployment. Remember that as the architecture process extends beyond the diagrams and models, into the development process, your success and relationship with development will grow as a result. In the next installment of this blog, we'll see how architecture can even benefit from popular development processes, such as agile methodology.

