I was recently reading an article on this subject which included feedback from other software architects. What was interesting was the lack of consensus on the topic. There were quite a few strong opinions raised on both sides of the discussion.
As a professional software architect, should you also write code? The argument goes, that if you aren’t writing code, you become increasingly detached from the applications you are designing and architecting. This leads to the Architecture Astronaut[^] which was first coined by Joel Spolsky back in 2001. The Architecture Astronaut constantly tries to think in higher and higher (and increasingly less relevant) abstractions. The end result is that the role performed by those particular architects is redundant.
The counter argument is that by continuing to write code, you keep your development skills up-to-date and therefore maintain a greater degree of relevance. After all, to be a good software architect, you also need to know how to implement good software systems right?
I must say I’m quite divided on the subject. I definitely agree that as a software architect there is definitely merit to be gained from continuing to hone your development skills and ensure that these are kept up-to-date. However, is it necessary to write production code to do this? Keeping your skills relevant and up-to-date is one thing, but shipping production strength code is another.
A software architect doesn’t write code in the same quantity as the software developer. This should be fairly obvious. If your primary function within the organisation is software architect, then you will naturally spend most of your time on architecture related activities. If your primary function is software developer, then you will spend most of your time on development related activities.
So it should come as no surprise that the software architect who specialises in architecture, should be better at architecture than they are as a developer. And conversely, the software developer should be better at development than they are at architecture.
So I would conclude that a software architect should most definitely keep their development skills relevant and current, but that this shouldn’t necessarily involve writing code that is going to ship to a paying customer(s). I’m sure there are many less critical applications (such as internal applications) that would allow the software architect to keep their skills current, without compromising the quality and integrity of customer facing applications.
If this article was helpful to you, please do hit the 💚 button below. Thanks!