Qualities of Great Software Developers

Over the course of my career I have run across all types of developers, and people (sometimes I wonder if developers are even human! I kid, I kid.), from the expert beginner to the guru. Expert beginners are those that think they know it all and are not open to learning anything new. Gurus, of course, are those that understand that our field is huge and it is impossible to know everything, but are experts in some things and have worked with a wide range of technologies.

In no particular order, they exhibit these traits:

Calm Under Pressure

This is one I wish I was better at. How do you handle pressure? Great software developers do not let criticism, negativity, or dysfunctional behavior deter them from their goal. They handle it in stride and get things done. You will never see them sweat.

Attention to Detail

Great software developers have an uncanny attention to detail. They sometimes can come off as being a little bit OCD, but they pay so much attention to even the little things (like indentation, proper casing, intuitively named methods, fields, and classes) that their software winds up being very easy to maintain.

Asks a lot of Questions

I originally titled this section “Great Communicator” but it really all boils down to asking questions. When you are given (or gather your own) set of requirements, use cases, user stories, etc. do you jump straight into designing the solution, or do you make sure there are no more questions before you start designing the solution? Coding should the last thing you ever do. Great software developers will ask questions until it is clear to them, even if their questions seem dumb.

Does not Reinvent the Wheel

Great software developers will look to open source libraries to help them develop the solution faster. Need to export something to Excel? Chances are, someone has already done that and has made their solution freely available to the world.

Breadth of Knowledge

Depth of knowledge is very important, but great software developers have worked with a  variety of technology and are not opposed to trying out new languages. Is your team going to use Ruby on Rails for the next project instead of .NET (assuming it was advantageous to develop the solution in Ruby rather than .NET)? That’s great! That just means it is an opportunity to expand your breadth of knowledge and add another tool to your tool belt.

Depth of Knowledge

Breadth of knowledge is important; it makes you more versatile, but great software developers have depth of knowledge in at least one technology and can consider themselves as an expert in that particular technology. This comes with experience, of course, but these are the guys and gals you look to for guidance when developing software in their language of expertise.

What do you think of this list? What are some other traits you have seen in great software developers?

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s