How do you maintain your coding skills?

Jason Chambers has a great blog entry called Do Architects need coding skills?, which talks about why architects need to be able to code. Given that this site is called Coding the Architecture, our thoughts on this will come as no surprise. In addition though, he also asks the following.

However, a more contentious question maybe - Do Architects need to maintain their coding skills once they've achieved the lofty status of architect. Well, I think it depends. Enterprise architects - possibly not (more on that later). However, for application, solution or product architects - I would say yes. There are many reasons why I think this is the case.

Again, I agree with what he says - you need to retain a certain level of technical knowledge so that you can competently define an architecture using it. And that itself raises another interesting question - *how* do you maintain your coding skills as an architect?

One of the problems with being promoted to or assigned as a software architect is that you might find that you can't code as much as you'd like to. This may be down to time pressures because you have a lot of "architecture" work to do, or it might simply be down to company politics not allowing you to code. It happens, and when it does, you run the risk of introducing a huge great gap between yourself and the development team. All is not lost though, because some of my advice for addressing this gap also applies here.

There's obviously no substitute for coding on a real project, but getting involved with the code reviews is one way to at least keep your mind fresh with technology and how it's being used. Of course, you probably have more scope outside of work to maintain your coding skills; from contributing to an open source project through to continuously playing with the latest language/framework/API that takes your fancy. Books, blogs and podcasts will get you so far, but sometimes you just have to break out that IDE.

About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.



Re: How do you maintain your coding skills?

Boy is this a struggle for me too. Code reviews do help. But also I like to download new tools / frameworks etc. and write some simple code against them. Reading tech books helps - esp if they have some good tips to try for things like JUnit, Ant etc. If I could get 20% of my time doing this I'd feel OK.

Re: How do you maintain your coding skills?

I have projects that I spend time on in the free time. I think the more a coders fascination with a problem / tool / framework, the deeper the motivation to learn and develop ones skills. Another strategy is just to have a textbook of interesting algorithmic problems to hack through - this can become addictive, though, and swallow up *much* more time than one originally allotted for the task. Generally, I have not yet been in a role where the architecture was so elevated from the code that I didn't need to write code at all. From interface stubs to database schemas, everything boiled down to code that I had to write or co-write. Maybe I have been fortunate but this is really how I would like to work with architecture. Satisfaction from writing good code - if one doesn't feel that then I think it is difficult to work with code at all! If one does, then it is hard to keep the fingers away from the keyboard, architect or not.

Add a comment Send a TrackBack