Geeks With Blogs
The Unstable Mind of a .Net Developer

Surprisingly (or maybe not), I have heard this question and its many variations several times over my career, even more so the past couple of years.  It really is a very simple question without a very simple answer, especially since it is highly subjective.

From personal opinion (like I said, subjective), what constitutes a good developer is that they exhibit few (if any) bad developer traits, AND, they bring more to the table than just code.  Writing code is just one component of the job.

A bad developer:

  • Is cocky and arrogant.
  • Knows how to spell RDBMS, C# and VB.Net, but not much else.
  • Uses notepad for their IDE.
  • Thinks Foxpro is a real relational database system.
  • On a scale of 1 to 10, always rates themselves a 9 or 10.
  • Still thinks that quality and value are measured by lines of code.
  • Doesn’t have a single line of original code but copies it all from the internet and claims it as their own.  This is usually accomplished without attempting to understand the code or determining if the functionality applies (No kidding.  At a previous employer, one of the developers was the master of the copy/paste.  When he was terminated, we found approximately 90% of his code was ripped out from the internet.  It was so bad, one of the apps he wrote worked ONLY because there was a bug in the copied code.).

A good developer should be:

  • Confident, maybe even border-line cocky.  Also, a good developer would attempt to rectify the situation on the rare occasion they do cross the line to arrogance.
  • Able to study a problem/requirement and provide a logical, reasonable solution.  For instance, does the solution meet the requirements, timeline and need?  And, a full rewrite may be logical and desirable, but is it reasonable?
  • Able to clearly and concisely communicate solutions and logic behind them to their peers and, potentially, less technical members of their team.
  • Able to intelligently discuss the reasons for selecting one technology or functionality over another rather than just resorting to the words, I don’t like _________.  If a developer has a preference, they should be able to communicate that preference.
  • Proficient in their development language(s) of choice.  It is not necessary to know the exact syntax of every single method or value of every enum.  It is, however, essential that developers know what features and functionality are intrinsic to the platform and know how to apply them appropriately.
  • Can work quickly and efficiently, without constant supervision.  A good developer is self-motivated to produce quality code.
  • Able to take suggestions or be open to new and alternate ideas/solutions to problems.
  • Ready to admit they don’t know everything there is to know about software development, especially when you consider all of the new and emerging patterns, technologies, methodologies, etc.  Once they have learned all there is to know, it is time to retire.
  • Able to look at the code they wrote 5 years ago and can’t believe they wrote it (One gentleman I know called up his replacement and apologized for the mess).

 

So, what do you think?  What other traits differentiate a good developer from a bad developer?  Is there any way to make the decision before hiring a bad developer?  Or, is that the one thing they are good at?

 

Ralph Wheaton
Microsoft Certified Technology Specialist
Microsoft Certified Professional Developer

Posted on Tuesday, September 8, 2009 10:41 AM | Back to top


Comments on this post: What differentiates good developers from bad developers?

# re: What differentiates good developers from bad developers?
Requesting Gravatar...
Good post. I was ready to read more elitist drivel, but this was grounded in common sense.
Left by Anthony Trudeau on Sep 08, 2009 6:25 PM

# re: What differentiates good developers from bad developers?
Requesting Gravatar...
Nice post.

I can think of a couple of things, off the cuff...

A bad developer:

+ Works on code alone, uses phrases like “my code”, “your code”.
+ Does not learn new architectures, patterns, languages, development tools on a regular basis
+ Does not mentor other team members
+ Thinks code is “done” when it “works”
+ Looks to fix blame first, fix the problem second

And a little bit more controversial …
+ Uses terms like “database application”, “web developer”, “c# developer”
+ Always creates new solutions to problems
+ Unable to refactor code, particularly if it is more than a couple of years old

A good developer:

Is the opposite. Just negate everything above.

That's about as good as I can do typing a comment after stumbling across your blog on the GWB aggregate feed. You obviously put more work into your post than my comment, but hopefully I added something to the discussion.

Cheers!

Bill
Left by Bill on Sep 08, 2009 7:26 PM

# re: What differentiates good developers from bad developers?
Requesting Gravatar...
will add a bit

a bad one

+ stays late to show off efforts but actually stuck somewhere.

+ is not confident enough to ask for help if stuck

+ will use for loop instead where foreach
work best
+ will hate QA the most

+ opens up the books where should be thinking

+ breakpoints and F11 his / her best friends

Left by Asad on Sep 15, 2009 4:26 PM

Your comment:
 (will show your gravatar)


Copyright © Ralph Wheaton | Powered by: GeeksWithBlogs.net