Saturday, June 7, 2008

What makes a good software developer?

I have decided to move on from my current role after over four years working at my present company. My reasons are varied and plentiful but as always the lure of a fresh new challenge often commands the majority of my thoughts.

I have started once more on the interview merry go round, first with agents and then in the coming weeks with potential employers. This is an interesting time in my career and certainly a change I am looking forward to albeit a little nervously as I have only ever had three IT related job interviews in my life.

During my early stages of interview with one particular agent I was asked a really good open question. The question was “What makes a good software developer?”. I waited no more than 2 seconds before I began rattling off my opinion. Normally in these situations you take the time to consider what you want to say and then lead up to the answer.

This felt different.

I guess this is because although I have never answered this question before (personally or via my blog), I have hired enough developers and non-developers over the years to understand what I believe a good developer to be. After all, one of my own interview questions to potential new hires is “Why software development for a career?”

I ask this question as I want to know what motivated them to get into software development and what maintains that desire to be a software developer. At my last firm a new project manager joined and we got talking about stuff. You know, the technical stuff. It was quite obvious to me that this guy didn’t want to be a project manager and that he still harboured that technical development desire. I knew this because as a project manager he would say stuff like “Worst case I can write that program.” or “Couldn’t we do this in x language or y language.” It was pretty obvious to me that this guy couldn’t let go, and this is what I look for.

For me the number one thing is the passion. I want to see this in the eyes of the candidate as they express to me their achievements and technical prowess. I look for the body language that backs up these passionate views.

I have been part of and built software development teams. I have written in other posts that you do need a mixture of people at varying stages in their careers with a good balance of personal motivating factors. Passion is certainly the one I look for when I am considering the lead roles within a team. The reason being that I believe as a lead developer you must bring others on by example.

Other factors to look for, especially for a permanent employee are:-

* Longevity in the industry and loyalty to an employer or two.
* Proof of learning multiple languages and having the desire to adapt to development trends.
* Good understanding of general development concepts and practices.

These are pretty generic but with passion, loyalty, desire, adaptability and a good all round understanding of development I believe I can teach any developer the technology of the month.

Without these attributes I guess you could be selling your business short. If I had to choose one then passion is the one I would go for.

If you see a developer struggling with some code all day but eventually they let out an enormous scream of relief as they finally solve their issue, jump up and then start punching the air in delight in the style of Rocky Balboa.

I’ll have that person in my team any day.

Thanks for reading.


  1. I've punched the air ala 'Rocky Style' a number of times throughout my development career. Sometimes more enthusiastically than some people feel is warranted.

    Like the time I found a 10 year old bug (I had been coding for 6 months) that was hidden in an array element that was used in a multiple occurrence data structure. It wasn’t easy and it was a hard slog watching the debugger step through a 4000 line program, line by line by line. Ensuring I didn’t miss a single beat. The number of loops required to re-calculate a payment structure on a term loan is mind boggling. Hours and hours. But when the light bulb above my head suddenly flashed on, I’m sure Sylvester was watching and based his ‘Rocky’ dance on me (just with a whole lot more muscle).

    There have been many more similar moments over the last decade, however the moments are getting less and less and are further between. This poses the following question :- Is my enthusiasm dwindling or am I just getting better at what I do?


  2. Nice one Syborgg.

    All I can say is that you have probably got a whole lot wiser in programming and very proficient in the environments you code.

    This is a good sign and congratulations. Now you have to ask yourself. Can I get the buzz back? or Do I want the buzz back?

    Might mean new technology but is that Rocky moment worth repeating more frequently.

    Whatever you chose. Good Luck.



Thanks for considering leaving some comments about my random rants for everything software development and more.