The Top Ten Habits/Traits of a Great Software Developer

  1. Masters their primary programming language and support library.  If you’re a .NET developer around here that means C# and the .NET Framework.  This one is fairly obvious, right?  These tools are your bread and butter.
  2. Masters their development tools especially the debugging tools.  You spend a lot of time here and whatever you discover that can make you faster is likely to have a big impact on your productivity. Being effective at debugging can save you days on a single nasty bug.
  3. Writes unit tests for as much of their code as possible.  This is the best way
    to avoid embarrassing yourself with buggy code and to avoid regressions.
  4. Uses Internet search.  This should be one of the first steps you take when tracking down a problem.  Odds are somebody else has hit the same problem and posted something on the Internet about it.  Also uses search to avoid NIH (not invented here).  A great software developer would not re-invent software if it already existed and were freely available. If the software is expensive then they would do a make vs buy evaluation.
  5. Automates tedious and error prone manual processes whenever possible especially in the build and test processes.
  6. Knows some flavor of regular expressions.  Regex use comes up over and over again in software development, automation and computer administration.
  7. Masters a command line interface (preferrably Windows PowerShell if you’re a .NET Developer).  Automation for one-off jobs is usually best accomplished via a shell especially when it comes to file system (source tree) maintenance.
  8. Masters software diagnostics tools.  Download and use the Windows Sysinternals tool suite – these are great diagnostic tools and they are free.  Also check out Wireshark or Microsoft’s NetMon packet sniffer.
  9. Manages distractions – turn off toast and exit Outlook when you need to
    get into "the zone" and stay there to finish a complex coding or debugging
    task.  If you can manage an office with a door you are that much more ahead of the game.  Where I work, the best we can do is work from home to avoid distractions – unless it is summer and you have little kids :-).
  10. Continuing Education: reads a book every month or so to stay up on the
    latest techniques and/or technologies. Reads blogs and/or listens to podcasts  – there’s a wealth of shared experience out there that you can learn from.

This is just my opinion.  I’m curious about what others think.  What would be in your top ten list?

This entry was posted in Software Development. Bookmark the permalink.

3 Responses to The Top Ten Habits/Traits of a Great Software Developer

  1. Stefan Haubold says:

    Wow, never I have encountered a list of this type that was so in line with my own beliefs. Your list very much nails it.
    If only I could say that I always put them into practice :-(.
    Well, I am working on it.

  2. Unknown says:

    There is an excellent book from several years ago (but still entirely relevant) that expresses the same kind of principles: "The Pragmatic Programmer" by Andrew Hunt and David Thomas.   Highly recommended.

  3. Keith says:

     Heh, having ideals is one thing, putting them into practice – consistently – is another.  Still it is worth having something to strive for.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s