Making Good Software

A blog by Alberto G (Alberto Gutierrez)

Written by Alberto Gutierrez

May 19th, 2009 at 9:57 am

The average Software Developer versus the good Software Developer.

with 18 comments

Meet Avery, the average Software Developer.

Let me introduce Avery; Avery is a programmer, he has been working in the IT department for a big non IT company for several years, he considers himself a Senior Developer, he has never questioned his approach to the software development, he doesn’t see coding as an art, he doesn’t believe that there is “ugly” code and “beautiful” code, he believes on the overall quality of the product rather on the quality of the code, he doesn’t like changes or new ideas about his code BUT he will eventually implement something that works. As you can see, Avery is the average programmer.

What’s the difference between an average Software Developer and a good Software Developer?

There is a major difference between an average Software Developer and a good Software Developer: Passion. Passion is what pushes developers to make good code rather than applications that just work; having good code it’s important because it makes the foundation for having a maintainable application.

In any case, passion is not enough to become a good Software Developer, it’s a good start, but it has to be combined with experience, perseverance and a bit of talent.

Are you an average Software Developer or a good Software Developer?

Is likely that  if you are reading this article is because you read other programming articles, so my guess is that you have the passion, but are you a good Software Developer? To be honest I find that question very hard to answer with a closed definition, but there are a few symptoms of being a good developer.

  • You are passionate about programming.
  • Others consider you a good Software Developer.
  • You want to become a better Software Developer. When you think you have reached the top of your profession is when you start going down and become an average Software Developer, there is always room for improvement and new things to learn.
  • Your main motivation for being a good Software Developer is not money.

Can an average Software Developer be a Senior Developer?

The category of a Software Developer is mostly based on its revenue and experience, so YES an average programmer can effectively become a Senior Developer. For good Software Developers is sometimes frustrating to see that, but it is natural and right that companies base their decisions on plain figures, what is really important is that managers in the Development teams can see beyond that so they can reward good Software Developers somehow else like with better salaries, better hardware, letting them mentor the junior members, giving them proper credit…

So, is it bad to be an average Software Developer?

Not at all, being an average Software Developer is just fine, in the Software Development industry as in any other industry you will always find average professionals which will do a good job every day, being a good Software Developer is to be one from the small fraction of those professionals that take an extra step and become leaders.

18 Responses to 'The average Software Developer versus the good Software Developer.'

Subscribe to comments with RSS or TrackBack to 'The average Software Developer versus the good Software Developer.'.

  1. Most of the developers are average, that’s just mathematics. The difference between an average programmer and an excellent one can be huge. Some old studies showed that excellent programmers can be two orders of magnitude more productive than average ones. A hundred times more productive!
    You list that a good Software Developer has passion, “experience, perseverance and a bit of talent.” My four ingredients for perfection (in anything, really) are Knowledge, Skill, Drive and Time. If you know what perfection is, and you have the necessary skill, and you want to achieve perfection, then all you need is enough time. You never reach perfection, because at least one of the ingredients is unavailable in sufficient quantities.

    Miska

    19 May 09 at 12:59 pm

  2. […] El programador medio Vs El programador bueno [ENG]makinggoodsoftware.com/2009/05/19/the-average-programmer/ por elpetecan hace pocos segundos […]

  3. Passion makes the difference in any profession, certainly not specific to software. Software, however, is one of those professions where you very much have to worry about having your passion, or your soul, crushed by the work itself, or the beneficiaries of the work.

    Andrew Badera

    19 May 09 at 1:59 pm

  4. Good insight. I’ve seen similar articles relating the term “craftsmen” to the art of the trade.

    One concern that I had with the article and in general, is programmer vs developer. Those are two different things to me and maybe contribute to the perception of “average” vs “good” here.

    I categorize “programmers” as the people that do nothing but code, often their isolated in their own world and don’t care to keep up on the latest practices or technologies. Participation in the SW lifecycle is often limited to “implementation”. Often they don’t care about the users and relish the analytical challenge of a function taking in ‘x’ args and return ‘y’ objects. This is not necessarily negative within the appropriate situations.

    Were as a developer is more of a participant in other aspects of the SW lifecycle. They maybe involved in reqs, design, and how the software is used; aka “the big picture”. Often they think of themselves as a user, like a “craftsmen” does. These naturally leads them to keep abreast of the latest trends, technologies, and practices. This does not necessarily imply that they are a “SW Architect” though either. They may not be the best coder though either. Personally I prefer these types of people for the types of projects I work on since I prefer pretty dynamic projects that likely are not “maintenance”.

    Great insight from this author, I always ask an interviewee what “nerd” sites they check out or who are their “SW Gods”, looking for developers with a sincere interest in software. Any programmer can rattle off “interface vs abstract”, “What’s SOAP?”, “static vs final”, “spec x,y,z”.

    Scott

    19 May 09 at 2:24 pm

  5. An interesting little read.

    Don’t forget the bad programmers though, they are just as numerous as the good ones… or at least numerous enough to weigh down the average. :)

    Jheriko

    19 May 09 at 8:28 pm

  6. I wonder how this applies software part timers.

    I’m a physicist. Every writes some software, maybe just a 200 line data analysis script, maybe it’s a massive simulation, maybe he invents the World Wide Web.

    Yet whatever he does or she does, software is probably not their main job. It’s just a bit of fun or a chore on the side, one that ought to be done well, without taking to much time.

    Do you think your guidelines scale down?

    raka

    19 May 09 at 8:51 pm

  7. [code]
    if($money –>passion==true; ) {
    $person–>type=good one;
    while($sumMoney==$resources) {
    hr->buy=’ i want 8 gig ram’;
    hr->office=’ergonimic’;
    }
    if($hr->assign_staff=true) { follow_proccuredure–>’sldc’=true; }

    } else {
    $staff(extended from person)–>type=’slow’;
    switch($company->resources)
    low:’How you wan to paid my salary’;
    low staff:’ don’t complain much,you paid penaut you get monkey;
    }
    sleep(24/7);
    }
    [/code]

    hafizan

    20 May 09 at 1:00 am

  8. Umm, you are saying fairly obvious things, really. Some organizations are more capable to nurturing passionate developers than others. It’s life. That’s why one must choose with care.

    Dmitri

    20 May 09 at 8:42 am

  9. […] bookmarks tagged software The average software developer versus the good sof… saved by 5 others     yasmine888 bookmarked on 05/20/09 | […]

  10. […] already written an article about how passion is the main difference between a good software developer and an average software developer, but if that passion is pushing you to the point where you are getting stressed, just take one step […]

  11. Yes, I agree with Dmitri. Let’s make a list of characteristics of bad programmers! I’ll start:

    1) Over-engineering a simple problem in order to look like a big shot.
    2) Inability or refusal to explain one’s solution in clear, concise terms in order to make the solution look difficult or impressive.

    What else?

    angel

    6 Jun 09 at 4:25 pm

  12. […] The average Software Developer versus the good Software Developer Tagged as Personal Development + Categorized as […]

  13. […] yang baik bukan ? Seperti apa itu ? Ternyata banyak juga yang membahas hal ini. Misalnya, menurut sumber ini, yang membedakan an average and a good software developer adalah passion. Ya, dengan passion, dia […]

  14. Managers don’t care about the quality of your code.
    Testers don;t care about the quality of your code.
    Users don’t care about the quality of your code.
    99% of developers dont care about the quality of your code.

    Managers will promote someone based on the colour of their tie or the cut of their jib (Mr. Burns). The only people who understand what quality code is and so are responsible for keeping up the standard is the author. The 1% of developers that DO care about the quality of your code are those who will have to maintain,extend and support it. Spend 10 years supporting an array of systems and you will know what is and is not “good” code.

    steve

    14 Dec 11 at 2:36 pm

  15. […] related links How to be a good programmer… My tips The average Software Developer vs. the good Software Developer This entry was posted in Beginners and tagged computer programmer, good computer programming, […]

Leave a Reply