Frans Bouma's blog

Generator.CreateCoolTool();

Syndication

News



    Visit LLBLGen Pro's website

    Follow me on Twitter

    Add to Technorati Favorites

About me

Fun stuff I created

My work

Categorizing Software Engineers

Jeff Atwood posted a nice blog post today about The Two Types of Programmers. I always like to refer to programmers by using the term 'Software Engineer', when they're software engineering. The term 'programmer' is often associated with a 'code monkey' (human code generator), and Jeff's post isn't about code monkeys.

The post by itself is interesting, but what's more interesting is the long list of replies to it, mostly in the category of "your categorization is wrong/insulting/arrogant" etc. I think the replies show the point Jeff tried to make.

I'd like to quote one little gem, one reply by Robby Slaughter which IMHO is what Jeff's post is all about :

the question is what percentage of software engineering is done by amateurs who think they are professionals. There's nothing wrong with being an amateur---everyone starts at the beginning---but we don't let people whose only qualification is that they leafed through a few books do brain surgery, design bridges, or organize the Superbowl. There's more to writing good software than being able to sling code. I'm not interested in whether or not you live and breathe tech and write Linux drivers blindfolded for fun, I just care whether or not you *know what you are doing*.

It seems like most people don't. In our industry, that's easy to get away with.

It doesn't matter in which group you belong, according to whatever person. What matters is that last sentence of Robby's reply. In a world where every day we become more and more dependent on software, it's essential that that last sentence becomes history. Let's all work on that, in whatever group you feel yourself belong to.

Published Monday, November 26, 2007 6:51 PM by FransBouma

Comments

# re: Categorizing Software Engineers@ Monday, November 26, 2007 2:01 PM

I wish there was an easy enough way to seperate the two :)

Sahil Malik

# re: Categorizing Software Engineers@ Monday, November 26, 2007 6:38 PM

Putting on the incredible cynical hat, but doesn't that 20/80 rule hold true for most industries, that there's always a good percentage of people that don't know what they are doing. You may say that at least in most of engineering you at least have some sort of proficiency coming from having a degree, but really that's a horrible measure. Schools vary, students vary in quality. Just because you have a BS in mechanical engineering from State U doesn't mean you should be allowed to build a bridge. At the same time you may be better qualified than the next candidate from a much higher rated school.

I'm certainly not saying that it's a good statistics, but the fact is that a large percentage of people learn as much as they need to get by and work a job because it pays the bills. Being passionate about your field and constantly wanting to better yourself is not the status quo in any field, imho.

So i'd just say that the problem is real but it's not just our industry that's affected by it.

Arne Claassen

# re: Categorizing Software Engineers@ Tuesday, November 27, 2007 2:26 AM

Back from 1996... www.byte.com/.../art1.htm

Stephen

# re: Categorizing Software Engineers@ Tuesday, November 27, 2007 2:49 AM

Software development is creative, not technical.

You can teach any nub to repeat the same old things over and over and bluff their way through the debug messages ... you cannot teach them the inspiration and creativity required to evolve new solutions to the problem ... your 1996 link hit the nail on the head.

The problem exists in other industries too, but it is easier to hide in software development if you are sub-standard. Any fool can see when a builder builds a wonky wall, almost nobody can tell when a piece of software is inefficient, insecure, and unstable, and when they do they just accept all software is made that way.

Casey

# re: Categorizing Software Engineers@ Tuesday, November 27, 2007 10:15 AM

When I was doing some help with job hiring I had a fairly easy question that helped seperate the two.

Ask them what was the last couple of computer/technology books they read and then the last non-religious book they have read.

Also ask them what magazines they have subscriptions to.  This is kind of dated probably should switch to asking about blogs and web sites they have accounts on and regularly read.

If they havn't been reading anything recent they are probably not of the 20%, the non-tech just adds to that knowlege.

The magazine is the same way, since almost every technology use to offer a free magazine, usally filled with tons of ads and a few useful article but it gave you info on what was happening outside of your work environment.

The blog/web site works the same if they are not reading a few tech sites then they are not keeping up what is happening with the tech you are hiring them for and are probably in the 80%.

The non-religious part is to make sure you don't break laws.

Will

# re: Categorizing Software Engineers@ Tuesday, November 27, 2007 10:55 AM

While I'm inclined to believe the 20/80 rule, the categorization is pretty narrow and silly in its definition. At the end of the day, the only thing that really matters is that you can deliver something high quality, on time. That's what professionals do. Whether or not they know anything about Linux (or any platform/tool/toilet/elephant) is irrelevant.

Jeff

# re: Categorizing Software Engineers@ Wednesday, November 28, 2007 8:09 AM

"...we don't let people..."

Good thing I don't live anywhere near that guy.

Marcel Popescu

# re: Categorizing Software Engineers@ Wednesday, November 28, 2007 11:36 AM

I understand the point that is trying to be made but putting things is such black and white terms ignores reality.  And it begs the question of how and when does a person more from one type to another?  What defines that moment?

I believe a more appropriate metaphor is that being a programmer\software engineer is similar to being a writer.  What does it take to say you are a writer?  Well you must have written something…that is about it.  But that does not define the quality of the work nor the type of writing you are good at (e.g. fiction v. non-fiction), and the market as such has room for many levels of quality, from crappy blogs to great literature.  

Similarly there is a continuum of software developers, mission critical software should be writing by very experienced developers.  But an "as is" tool that you post to CodeProject does not need to be of the same quality.    

If we truly want some sort of authoritative division between the 20% and 80% the industry needs to move towards licensing developer, similar to other professions (lawyers, doctors, engineers).  Which may or may not be a good thing (but that is whole other discussion).

J Jablonski

# re: Categorizing Software Engineers@ Tuesday, December 18, 2007 9:21 AM

2 types -> those we believe sw is about creativity and those who believe hard work will get you there.

Olaf