My transition from head of Engineering to Chief Architect has been marked by one epiphany after another. Here's the latest:
In a previous post, I laid out some of the differences between the Chief Architect and the head of Engineering. An obvious question is: Why can't one person do both? Isn't architecture a key component of Engineering?
The same question can be asked about the separation of Product Management from Engineering (and, by extension, the Chief Architect). Don't they have the same basic goals of building high-quality software?
I think most people can easily distinguish between Product Management and Engineering: Product Management decides what to build, and Engineering builds it. The distinction between Chief Architect and Engineering is less obvious...
...until you think about how the levels of performance of the three departments are judged.
The head of Engineering is judged by the quantity and quality of software that comes from his teams. (The quantity is primarily a product of the developers, while
QA has primary responsibility for the quality.)
If software releases are consistently behind schedule, or the support burden following releases is consistently overwhelming, where does the buck stop? With the head of Engineering. (Sorry, Sheridan.)
On the other hand, if software releases consistently fail to resonate with customers, or resources are consistently applied towards projects that yield no revenue or other value, then you have a problem in Product Management. The head of Engineering has neither the
authority to decide what gets built, nor
accountability.
By the same token, when releases are technically successful (goals are met and quality is high), the Engineering team has every right to celebrate and take credit. And when customers rave over the latest release because the enhancements are both timely and well-designed, Product Management can take the kudos.
So, how will my performance be judged as Chief Architect?
One thing is certain: I am no longer judged by the quantity or quality of code that gets written. I can't be, or I would be so caught up in writing code and helping the Engineering staff keep up with their demands that I would be unable to do my job, which I described in
an earlier post.
Nor can it be based on the reception (hot, cold, or lukewarm) of new enhancements, by customers or by
AdvancedMD staff.
Instead, my performance will be judged in more nebulous terms:
How well do I communicate our current architecture, its strengths and weaknesses, and our company's technology
road map to our CEO, board, and other executives?
How faithfully do the
architectural and technology changes that I propose and endorse reflect and support the high-level strategies of the company, as defined by the management team?
How effectively do I bridge the language and culture gap between the Engineering teams and Product Management?
How well do our applications and subsystems scale? How easy is it for our
DCO (Data Center Operations) staff to go from supporting about 10,000 providers today to 100,000 providers in just a few years?
How stable and robust are our interfacing and interoperability infrastructures?
How well do I communicate and tout our technical accomplishments to those outside of
AdvancedMD?
The prospect of finally, after eight years, having time to devote to these and other issues is exhilarating, and at the same time daunting and just a little bit scary.
The accomplishments of the past have been rewarding. But it won't be long before
AdvancedMD will be asking me, "So, what have you done for me
lately?" Here's hoping I have a good answer!