Should Architects Code?
If a picture is worth a thousand words, one concrete example is worth a thousand abstractions. I have to attribute inspiration for the previous sentence to Jack Greenfield when I heard him talk about software factories. One of the observations he has made about design patterns is that they are great at describing how but poor at describing when. This leads nicely into the topic of whether or not architects should code. Let's take a look at a couple of situations.
Should architects write production code? That's probably not a very effective use of their time and skills. One of the hardest parts of becoming an architect is to realize that coding is no longer the primary job. A transition needs to be made from being the one who is concerned with building something right to being the one who makes sure the right thing is built. However, one of the jobs of an architect is to show others how to build something right so, be ready to dig-in and pair-program with someone on the team so that knowledge and experience is passed on.
Getting back to Jack Greenfield, one of the topics he has written about is that developers that are either junior or new to a team lack context. They need to learn the domain, patterns to solve problems in that domain and finally, when to use those patterns. One way to accelerate this is to provide worked examples? Again, templates are great but, they are only as useful as patterns. Knowing when to use a design pattern within a domain is the kind of knowledge and context and architect needs to supply. Provide worked examples, not templates.
One of the other duties of an architect is innovation. Not only is keeping current important, keeping in touch with what the next big thing might be is just as important. Testing new products, evaluating frameworks and just trying out new ideas all need hands-on time. Often, who else has the time to innovate? When it comes time to talk to people about a new idea, get feedback and even sell the idea, that's when a page or two of some clearly written examples are worth a thousand powerpoint slides.
If architects don't code, are they still architects? Sure but, perhaps not as effective as they could be.

5 comments:
I like the theme here, Bill. 1) spending time coding is typically not the best use of the architects time, and 2) the architect should be able to roll up his or her sleeves and knock out code to show an example that helps provide clarity.
The tendency of many of us is "Death by Powerpoint" and in many cases, a couple cogent examples are infinitely more effective.
Brian
(http://blog.softwarearchitecture.com)
Having worked with architects for years, I found it very, very important that the architect could show with practical examples of how to solve some problems. This gives credibility to the architect and also keeps him/her closer to the reality.
The idea of IT architects coding is a joke, its akin to building architects laying bricks! rather than spending time talking with clients and understanding business issues, laying a foundation with your technical staff to collaborate, share ideas and capture enthusiasm as they probably do in their time off in [non enterprise] "web 2.0" world. You dont need to code to show leadership and span the business and technology divide.
The idea of IT architects coding is a joke, its akin to building architects laying bricks! rather than spending time talking with clients and understanding business issues, laying a foundation with your technical staff to collaborate, share ideas and capture enthusiasm as they probably do in their time off in [non enterprise] "web 2.0" world. You dont need to code to show leadership and span the business and technology divide.
Good for people to know.
Post a Comment