Channels ▼

Al Williams

Dr. Dobb's Bloggers


January 23, 2010

In online parlance, IANAL stands for “I Am Not A Lawyer” and usually precedes some free and probably erroneous legal advice. Recently, I've had the phrase IANABS in my mind. That is, I Am Not A Brain Surgeon.

 Well, for one thing, I'm not a brain surgeon—or any kind of surgeon, for that matter. I'm not known for my manual dexterity so letting me cut on you would probably be a bad idea. But its more than just that. Suppose you were a hospital administrator and you needed to hire a brain surgeon. I don't know (because I'm also not a hospital administrator) but I suspect you'd try to locate candidates who call themselves brain surgeons and not spend time interviewing – much less hiring – podiatrists, thoracic surgeons, and orthopedic specialists.

As engineers, I'm not sure we classify ourselves far enough. Sure, the distinctions are obvious to us. But maybe they aren't as clear to the people who sign our paychecks. I'm an electrical engineer, for example. But so are the guy at the power company. If I learned something about delta and wye transformers, I've forgotten it. If you want to design a substation, I'm probably not your guy.

What would a reasonable ontology of software developers look like? It seems like what divisions we do have are pretty arbitrary. He's a C++ guy or she knows Linux. Those are only a little better than nothing. You can write a lot of different things in C++, Linux, Java, or Windows. I also hear a lot about “embedded developers.” But the truth is, I see people who specialize in big multi-blade x86 vehicle controls systems being lumped in with people who cram functions into 8 bit chips so the whole system costs less than a buck. Is that really the same skill?

The impact a mistake in hiring makes can be considerable. I spent many years as a consultant so I've seen the gamut of companies from those that I thought were on the ball to those who... well, let's just say those who had room for improvement.

I've noticed that one basic distinction among developers is that some people are better tool builders and some are better tool users. I am much more productive building tools and I don't do well building systems for their own sake (which might explain why I've written a bunch of compilers and more than one operating system). For some people, all that is “overhead” and they get excited about what the system will “do.” They just want to consume tools. That's great – we need each other. But my point is, it is a different mind set.

Does one title “embedded developer” really mean anything? Should we invent new categories? For example, microcontroller developer, embedded PC developer, and physical computing developer all come to mind. Yes, many of us are versatile enough to do more than one of these things (and if you aren't, a few years of consulting will cure that). But I can't help but think that better specificity in titles would lead to happier employees and employers.


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.