You don't have to give up coding

I've already written that architects should get involved with the code and there's a flip side to this where I'm constantly asked whether architects *can* continue to code if they are to climb the corporate career ladder. This is a shame, particularly if these people really enjoy the technical side of what they do.

My take on this is yes, absolutely, you can continue to code. For me, it's quite frustrating to hear interview candidates say, "well, I understand that I'll have to give up coding to become an architect or to progress further up the career path". There are lots of organisations where this is the expectation and it's reassuring that I'm not the only person to have been told that coding doesn't have a place in the senior ranks of an organisation. Something that really struck a chord was a quote from somebody at the closing QCon London panel recently.

We’re losing all of the senior technology mentors into management positions.

As a software architect, you take on a great deal of responsibility for satisfying the non-functionals, performing quality assurance, making sure the software is fit for purpose, etc. This *is* a senior role and coding is one of the very best ways to make sure the project is successful. I have some thoughts on the whole career progression thing that I'll save for another day, but I want to reiterate what I say to everybody that comes through our doors for an interview. No, you don't have to give up coding.

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: You don't have to give up coding

Coding isn't the be-all and end-all of a successful developer's skills. Many skills that are employed during development will also be exercised when engaged in other tasks (eg, analysing, designing, breathing etc.).

I don't mean to imply that architects shouldn't code. Far from it - they should as it's a very effective way of defining and maintaining an architecture (and fun too). I just wish people wouldn't get so hung up on thinking that coding is the only way to get satisfaction from a project. Someone who worries whether they'll have to "give up coding" probably hasn't enjoyed anything other than development and so is probably not ready to be considering anything else yet.

At the very least I would expect the amount and nature of development to change otherwise they're just evolving into a very expensive development resource!

Re: You don't have to give up coding

Agreed ... architects doing a full-time coding job on a project is a bad thing because they will have no time for the other aspects of their role. But it's a shame that people have the perception that they can't code once they've been tagged as an architect.

Re: You don't have to give up coding

I think it is all about "can't" vs "shouldn't". People think that architects shouldn't code. The reality is that they usually can't because of time pressure and because they can't be experts in every technology. Certainly in the large IT company I work for, no one has ever said I shouldn't code, but the reality is that I really don't have time...

That said, I am grappling right now with how I keep my technical skills without coding, but I think the answer is the difference between understanding a technology (i.e. knowing what it can and can't do, knowing when to use it) and being able to actually use it. Sometimes knowing how to do it is actually a problem- when you are a hammer specialist, everything looks like a nail...

I think as an architect it is ok to just talk the talk, as long as you are humble enough to defer to people who really understand stuff when you need the detail.

Tom

Re: You don't have to give up coding

"That said, I am grappling right now with how I keep my technical skills without coding" - that sounds like an interesting topic for discussion. :-)

Re: You don't have to give up coding

I have worked on many IT services firms and it's always architect - please don't code, and soon they will be project managers. Guess it is only the product firms where such choices exist as you can climb the ladder being techy. Otherwise, it defies all explanation why an average salesman earns double than a star software developer.

Re: You don't have to give up coding

Yesterday I had Microsoft Project installed on my laptop and I feel, somehow, dirty. Is this the beginning of the end? What are the ten signs that you've stopped doing real coding?

Re: You don't have to give up coding

A cold right hand is one sign; mine goes cold when I use a mouse for too long.

Re: You don't have to give up coding

One sign I get is when Word or Powerpoint appears in my recently used list in Windows and Rational Application Developer doesn't...

That said, if Project appears you are probably turning into a project manager (God help you).

Tom

Re: You don't have to give up coding

I think the #1 downside to being a non-coding architect is you will very quickly lose the respect of the developers. I've touched on that topic briefly in a blog article I wrote on becoming an architect. Also when push comes to shove it helps to be able to dive in, fix bugs and really get your hands dirty. I think the architect role can be so hard sometimes, that I think about "dropping back" to just being a principal software engineer. Architects often have too many expectations - part architect, part developer, part project manager, part strategist etc.

Re: You don't have to give up coding

I agree. I am comparatively new to the role and finding it hard. I feel like I am expected to be all things to all people... The developers want an arch-developer, the project managers want a techy project manager, the client wants a strategist...

Specifically on your point about coding, I'm not sure that coding is the only way to keep the respect of the developers (although I take your point). I think that they only really loose respect when you loose touch and start suggesting things that will never work...

Tom

Re: You don't have to give up coding

I just happened to come across this post. And even though this post is a view years old I am going to comment on it because it is an omnipresent subject. I believe we shouldn't put too much focus on it. It really depends on a number of factors, not just whether or not we should or we should not (code). Personally I like coding a lot but haven't really gotten to do so in my day-time job as an Architect for a while. The reason is simple: the project is so large that my primary role is "communicator" (guiding the architects, guiding the designers, guiding the developers, guiding the client, guiding the project manager, doing estimates, and many other things). Sometimes coding can be an inhibitor as - in your specific role - more important things will not get done because you are all of the sudden operationally tied to another job (coding), deadlines, defect fixing and many other things. All I wanted to say is: it depends (on the situation you are in). Not to be able to code is not by itself a bad thing (yet). And you do not lose the respect of the developers. The bad part is that if you do not code for too long a time you are going to be too removed from reality. And this has an effect on your ability to produce architectures, designs, solutions, estimates, etc, i.e. on your abilities as an architect. So every once in a while I take on a small project where I am actually able to write code, just so I do not lose touch with my craft.

Add a comment Send a TrackBack