Seven Qualities that Every Good Developer Possesses

February 27th, 2010 by Kevin | Posted under development.

Today I attended a session by Sudhi Herle, Vice President and Head of Handset R&D at Samsung. The session was to discuss about the future of the mobile industry. The session started with an introduction of how mobile technology has revolutionized business in the world in the last ten years. The phones that we hold today use the most sophisticated and complex technologies ever created. Yet even the common man can use them with relative ease. Companies like Apple, Nokia, Blackberry and Palm keep revolutionizing the mobile industry with innovative ideas. The question what that how was it possible for these companies to keep reinventing themselves with such innovation. The answer lies in the developers who come up with such ideas. A question asked what that why can’t we do what developers at Apple or Palm do. What is it that differentiates those developers from others?

Here are six traits or qualities we find that every good software developer possesses.

1) A detail oriented view

Developers tend to work on the problems at hand. While time to deliver or to fix a bug might be the reason to ignore a thorough understanding of the system, good software developers tend to get involved in the details of everything they do. They are not satisfied until they have an in depth understanding of the system that they are working with.

2) Good fundamentals

Development problems and their solutions can tend to get complex at times. However good developers are good at the fundamentals of solving such problems. This enables them to understand and explain them in a relatively simple manner which ensures better communication among peers and a quicker solution to the problem. A good understanding of algorithms and data structures is also essential to the repertoire of a good software developer.

3) Covering all corner cases

Any software created always generates corner cases which tend to be ignored. A good example is that of binary search which was published in 1946 but the first published binary search without bugs did not appear until 1962. This was be cause some of it’s corner cases were never understood at the time. Such corner cases can be covered only by extensive analysis of the solution and good test cases. Good developers tend to be good at both.

4) Handle lots of information

Herle mentions that good developers can hold a lot more information in their head than an average person.

5) Read books

Good books are a constant source of insight and understanding to good developers. This also holds for reading good blogs and articles by good developers.

6) Read source code

You cannot become a good developer without reading source code, both good and bad. Good developers read source code as often as then can. Because they know that if they want to solve a problem, many a times it is already done and in a much better way.

7) Productivity

Good developers are substantially productive. They enjoy spending their time on more important and newer objectives and leave the trivial stuff to automation. DRY (Don’t Repeat Yourself) is emphasized by good software developers.

 

Related Posts:

Tags:

Comments

6 Responses to “Seven Qualities that Every Good Developer Possesses”
  1. Florian says:

    This list is self contradiction, incoherent or wrong.

    There is no human possible way to juggle 50 tasks while at the same time be productive at any of those. Or as the saying among *really* highly productive hackers goes, “I’m a single task machine.”.

    Covering corner cases is important. Important like proper design, good tests, the right level of configuration files, proper separation of concerns, and avoiding any number of anti-patterns like spaghetti code and the big ball of mud. You can chalk it down to “reasonable development practises”, of which, corner cases is but one tiny aspect in a sea of (anti)qualities.

    1. and 2. is really the same, one point would’ve sufficed.

    5. and 6. are genuinely true, non contradictory, coherent and non overlapping, congrats, you made two out of seven, keep working on that list making skills.

    [Reply]

    Kevin Reply:

    Ah, perhaps I put it wrongly. It should be the amount of information that a good developer can hold in his head at a time.

    Yeah, I need to keep working on my list making skills. But this list is what I heard and tried to put it in writing.

    [Reply]

  2. Dmitri says:

    50 tasks
    are you kidding?

    [Reply]

    Kevin Reply:

    Ah, perhaps I put it wrongly. It should be the amount of information that a good developer can hold in his head at a time.

    [Reply]

    Nicklas Reply:

    Still, how did you come up with the number 50? I find it a bit arbitrary… :) Furthermore, IMHO good developers are not any super humans with significant higher IQ, I suppose what you are after on that point really is that a good developer knows how to break down and deal with a lot of information rather than actually having it all in mind.

    [Reply]

    Kevin Reply:

    Yeah, that is what I mean. Maybe I heard it wrong. Maybe it was 15 :)

Do you have any comments on Seven Qualities that Every Good Developer Possesses ?

Spam protection by WP Captcha-Free