Skip to content

What makes a “good” web developer….well, good?

2009 May 25
by michaeldelorenzo

This is a question I’ve considered on many occasions, mostly when I’m looking to make a new hire.  In my experience, I’ve found that there are many opinions out there as to what constitutes “good” and each opinion has its own strengths and weaknesses but I want to detail what I believe constitutes a “good” developer.

Some Background
First I want to offer a little bit of background on my own experiences with finding good developers.  Through my career, I’ve had positions that ranged from summer intern to remote consultant to web development consultant to “senior web developer” to department head, etc.  I’ve participated in interviews both as a team member and as the manager/decision-maker.  While I do enjoy the interview process a bit more when acting as the decision maker, I also felt valued when management sought the input of the “worker-bees” when making a decision on whether or not to add a new team member.

I’ve worked with my share of hacks,  hobbyists, complete imbeciles, competent and, thankfully, a few rock stars.  In this posting, I’m trying to determine what, in my opinion, a developer needs to fall somewhere between competent and rock star.

Evaluation  Criteria
Below I want to layout the criteria we’re going to use for this discussion. I’m only going to focus on a few items that I’ve found to be useful in determining who’s worth inviting to join the team.

Resumes Suck, or at least I think they do
I personally tend to find resumes of developers to border on completely useless.  I find them to only help determine which applicants we’re going to consider speaking with.  The number of resumes of developers that have countless “certifications” and list every buzz word under the technological sun is too great to even consider.  Anyone who’s paying attention to the position(s) their applying for, would be foolish to not at least drop some buzz words on the resume because what organization wants to hire someone that appears stale before you even meet them. 

Be (and stay) Current
Know what’s going on in the industry, what direction things are moving, new philosophies, techniques, etc. I’m trying to find someone that can help take our team or product to the next level.

Be Creative
Creativity isn’t limited to only design, there’s creativity, in my opinion, in writing concise, legible and, of course, working code. I’m interested in finding people who can think independently and find creative solutions to problems.

Do Other Things
It’s pretty common to find that good developers are somehow connected to music or some other art form. One of the very first people to capture my interest in the field holds a degree Music Composition, not Computer Science or Information Systems! Another strong influence on my career, was a member of a puck rock band and other developers that I found over the years are painters or athletes or something non-technical. Why is it that those people seem to be the developers that we all gravitate to or consider to be good or better than that?

Love what you do
Probably the most basic idea, but is it really possible to be truly good at something and not love it? I know that some people seem to just be born to do things well, but how long can those people do that for a living? If you’re not happy doing something, chances are you’re probably not going to be doing it for that long.

Resumes Suck, or at least I think they do
Let me sum up my feelings on developer resumes–I honestly don’t care how many certifications you have. Especially given the amount of press cheating on these exams (check this one out too) has gotten lately.

Of course, there are certain things that, as an interviewing/hiring manager, you want to see on a resume. You’ll of course be looking for experience with certain technologies or methodologies or particular experiences. The applying developer should be sure to highlight these important buzz words and points, if for no other reason than to catch the reviewing manager’s eye during the period when it’s being decided which applicants, if any, are going to be invited for some type of first interview.

Personally, I tend to look for the experience that is similar to the type of work the position I’m filling requires and at least some experience with the technologies and methodologies we’re using. However, I’m not opposed to hiring someone that might not have worked with the exact languages as we’re using, if they show a sincere interest in learning new skills and have demonstrated some level of aptitude in quickly learning new skills in the work place (this attribute relates directly to my next evaluation criteria).

Hiring in general is a practice in risk management, you risk the hire completely flaming out for any number of reasons, you risk the hire disrupting the harmony of your team (assuming you have such luck to have a team that works especially well together), you risk having to invest too many resources (both financial and time) in getting the new hire up to speed, etc. I’m sure I’m not the only one who’s been part of an organization that simply jumped to attempt to quickly fill an immediate need and ended up getting burned in the end, but in my opinion the idea is to be able to identify the person who, in your opinion, demonstrates the ability to help minimize all risk associated with a new hire (duh!, right?) and you’re not going to be able to do that simply by selecting the applicant that has the most certifications listed on or keywords embedded in his or her resume–it’s going to be a matter of personal interaction and probably playing a bit of a hunch.

Be (and stay) Current
Given how quickly the technical marketplace shifts now, a developer cannot afford to let his or her skill set or knowledge base go stale. Those that do are destined to be left behind and mostly certainly won’t maintain (if they were already there) or attain the level of aptitude we’re discussing here.

I often ask my applicants, “how do you stay current on what’s going on in the XYZ-world?”. Many times I’ve received this generic response, “I read this site or some blogs”. Often “this site” is not really related to the development field at all and the applicants have almost never been able to give me a specific blog that they’ve read in the past. I want to hear about some resources that they’ve found helpful, insightful or inspiring. Maybe some of those resources will be among the ones I or my team use to find inspiration or get some information, but I’m not too much worried about that. I want to know that the developer is committed to at least staying current with the development community, I don’t need someone who makes thousands of forum postings but I do need someone who knows what’s going on.

Be Creative
Right upfront, I want to say that I do truly believe that evaluating how creative a solution or end product is, is a completely a subjective thing. However, I believe that we can all evaluate how creative a developer is in solving a problem. Nothing irritates me more than a developer that’s would rather search for days and days on end to find someone else’s work to solve a problem, rather than solving the problem first with a little creativity and then working on improving that solution through refactoring or re-designing where possible.

I guess, what I’m really saying here is THINK! A good developer is one that’s going to think about a problem, maybe diagram some potential solution(s) and implement the one that’s going to work best within his or her application or framework.

Do Other Things
Do something else besides code! Of course, this is not to say that good developers don’t code a lot (at their jobs and in their free time), because I believe they do, but not being solely a code monkey can lend invaluable experience and knowledge that will make code cleaner and more effective and solutions more creative and valuable.

Find other ways to fill your time affords you the chance of finding inspiration in other things. As mentioned previously, there a plenty of developers that double as musicians (of all skill levels) or as artists. These developers are amongst the most skilled and sought after in the industry in many cases. Now, not being scientific in anyway, I’m not going to even attempt to discuss the physiological or psychological reasons as to why that might be the case, but I am going to agree with (make) the claim that stimulating those creative parts of the brain will make a developer better at his or her job.

I think there’s also value in the traits that are uncovered and honed through other activities, for instance I believe that the love of competition and aspects of teamwork that are cultivated via participation in team sports lend themselves very well to succeeding in any career (here’s another link).

Love what you do
As I stated before, I’m not going to make a blanket statement like “if you don’t love what you do, then you can’t possible be good at it”. However, I will say that I genuinely believe that to attain “rock star” status in the development world you’d probably benefit a great deal by loving, or at least really liking, developing or writing code.

If a developer really loves what he or she is doing, then, I believe, he or she is going to spend some extra time to learn new technologies and methodologies, participate in communities, have an increased sense of workmanship and pride. A developer that’s just going through the motions or “doing their job” is more likely, in my opinion, to be the 9 to 5 type than the work until it’s just right type.

Conclusion
I know I’ve really just scratched the surface as to what really makes a good developer, but I do truly think that if a developer is able to combine the above attributes they can reach that rock star status and rise to the top of the field. A developer that loves what they do is going to put in the time learning new things, thinking creatively about solutions to problems they face or formulating new ideas for products, methodologies, etc.

[ad#Adsense-468x60]

Welcome to mikedelorenzo.com

2009 May 19
by michaeldelorenzo

Welcome to mikedelorenzo.com!  The blog is about web application development and designing effective and usable interfaces for end-users. I hope that I can help anyone that reads my posts to think creatively about how to solve a problem and build highly usable web applications. mikedelorenzo.com is run by Michael De Lorenzo, a web application developer and designer living in Northern New Jersey and working as a partner in two technology start-ups.

I spend most of my development time using Microsoft tools (ASP.Net MVC, C# and SQL Server) along with JavaScript frameworks for DHTML and AJAX (mostly jQuery).  At the onset of the blog, I’m going to be focusing primarily on the few topics I’ve listed here, before expanding my range of topics.

It’s my hope that you’ll find some useful tidbits here and feel free to comment or share your thoughts and suggestions.

[ad#Adsense-468x60]