The average Software Developer versus the good Software Developer.
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.
Related posts:
![[Google]]( http://www.makinggoodsoftware.com/wp-content/plugins/easy-adsenser/google-light.gif)
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
Hi Miska, I agree with your observation, you say
“My four ingredients for perfection (in anything, really) are Knowledge, Skill, Drive and Time”
I think we can even trace a parallelism
Drive = Passion
Time = Perseverance
Skill = Talent
Knowledge = Experience
Thanks for your comment
Alberto G
19 May 09 at 1:22 pm
[...] El programador medio Vs El programador bueno [ENG]makinggoodsoftware.com/2009/05/19/the-average-programmer/ por elpetecan hace pocos segundos [...]
El programador medio Vs El programador bueno [ENG]
19 May 09 at 1:58 pm
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
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
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
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
Hi Alberto,
Firstly, English is not my native language. So, I hope you understand my ideas regardless of my grammatical mistakes.
I think (MHO) that:
Drive = motivation to accomplish something. Be it, money, desire to change the world, passion, etc. So drive is not always passion… specially passion for programming or software development.
Time = Time.
You can be the person with the biggest perseverance in the world. But, if you are a wage slave for a big IT company, developing pieces of software comparable to nuts and bolts for that ever behind schedules big software which the final result remembers a Titanic, hardly you’ll have time to feed your passion by developing beautiful projects. And even if you have some spare time, you need remaining “brain power” too.
Skill
My utopian opinion is that you can reach skill with perseverance + time + drive + “brain power” + hard work. Talent appears to be a natural facility to grasp certain things; something that you were inherently born with. So, someone born with talent for programming, who never coded, will have less programming skill then someone without talent who, however, worked hard to gain programming skills.
And, someone with programming skills and talent, but who lacks drive, which is directly linked with lack of creativity, can eventually be surpassed by some talentless purpose driven hard worker.
knowledge
This is a word which mean changes as the discussion scope changes.
Some people, like Peter Drucker, saw “knowledge” like information being applied. So, when you think about an apple, your brain reunites distinct types of information (size, color, odor, taste, shape) to generate an apple in your mind. This process of reunite and apply information would be what is called “knowledge”. But this is discussion about knowledge is a never ending one.
I think that you acquire new information, by means of experience, to generate better knowledge when necessary.
Cheers,
Hyperluz
hyperluz
19 May 09 at 10:01 pm
[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
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
[...] bookmarks tagged software The average software developer versus the good sof… saved by 5 others yasmine888 bookmarked on 05/20/09 | [...]
Pages tagged "software"
20 May 09 at 5:17 pm
[...] 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 [...]
3 unusual tips to be a better software developer « Making Good Software
22 May 09 at 1:21 pm
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
[...] The average Software Developer versus the good Software Developer Tagged as Personal Development + Categorized as [...]
Good Software Developer | Milinda Pathirage's Blog
16 Jun 09 at 2:02 am
[...] 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 [...]
A Good Software Developer « Yani’s Weblog
27 Dec 09 at 5:54 pm