Mort, Elvis, Einstein, and You

Here’s what’s particularly ironic: the very act of commenting on an
article about software development automatically means you’re not a
vocational eighty-percenter.

Segueing away from the points you’re eloquently making, you would maybe be surprised who your audience is. I’ve often been tempted to comment, but haven’t. However, the mere fact that I do doesn’t mean I’m even a programmer. I’m not – I run a lowly application support team.

However it does mean I have a professional interest in the making and running of software.

It’s apparent on a lot of programming blog that there doesn’t seem to be much awareness of the fact that for any reasonably large and complex running software application, there’s a slew of (hopefully) competent technical people who aren’t programmers. Some are on the software engineers’ radar (QA is, some bits of DBA may be, and I’m not talking about sysadmins, who have their own visibility). But the several teams of people keep the system running, diagnose things that are going wrong, make configuration changes, or work on resolving users’ problems too often aren’t.

And I see the quality of the software suffer for it. Because, thing is, we know stuff about the application the programmers don’t even know. We know what real-live data our clients put in there, what exactly they do with the system, and some of it has never occurred to the engineering side. We know what exactly breaks if someone uses Ukrainian characters that are not in Russian cyrillic, and why, and can provide details, as needed, in technical jargon (codepoints and charsets) or for the business user. We know what part of the UI slows down for only a particular account and have a very good idea why. I see the system in action every single day, and know what it does well and what it doesn’t, which low-priority bugs (because it’s just a UI glitch, isn’t it) are particularly galling to the user, where exactly an architectural choice multiplies the time I take on a maintenance task by 10. I also know what a buffer overrun error means when I see one.

Oh, I do write some code once in a while – a bit of SQL, not more than 100 lines, for my own team’s use, to check what’s going on in the DB; reworking a web page we use with its DB backend; a bash script to munge logs; a simple front-end to an API. And I get code thrown at me by users who want to talk to the API and have to figure out why it doesn’t work. But by no stretch of the term am I a coder.

@Gareth:
“But for me, and seemingly a number of your other readers, that was because of your buried assertion that 20% = Linux, 80% - Windows.”

I thought he meant to say those who actually at least tried Linux vs. those who are not even interested. What they actually use is not relevant. I would expect most of the “20%” to actually try a different OS “just for fun”. Or at least something at all that goes beyond immediate benefits.
At least I will e.g. try Vista as long as I can get it for free from my university even if I have no use for it. Just as I did with .Net.

@Chris:
While some things said do not to apply to non-programmers, as an MPlayer (http://www.mplayerhq.hu) developer I can say I see some of that “80/20” stuff in “mere” users all the time, even in those who don’t even know yet how to compile a program.
Like, those who really want to find out how things work (even if they think that they will probably never really understand it) and those who say “I’m not a programmer, I shouldn’t ever see any code, go away!”

Great couple of posts - and even better comments!

One commenter rephrased the divide to be the Innovators (20%) and the Implementers (80%). I like that. The Innovators are the rabid enthusiasts playing with and writing about cutting edge technology. It’s great stuff, but it can be very removed from what I, an Implementer, am working on. What I really want to see more of is great blogs written by the top 20% Implementers, talking enthusiastically about applications of mainstream technology - or even older technologies that many of us are still supporting!

or even older technologies that many of us are still supporting!

You mean like RS232 that a lot of people (including Sun with Java, thus Java has become irrelevant to me) decided to be a thing of the past while in the production industry here it is almost the only thing used (for control stuff, the full-fledged PCs of course use ethernet, the alternative being CAN which costs an arm and a leg in comparison)? :slight_smile:

I read your blog and I am one of the unwashed 80%. No problem being there because it pays well. Actually, I’ve moved to Configuration Management years ago, and haven’t written a solid program in years. I use to be a user interface expert in C back when we interacted with our users via the Curses library.

I think of the division being closer to a 10 percent to 90 percent divide. The 10 percent are those with programming blogs that are actually read by a significant audience. (Sorry, guys, your Mom and Uncle Leo doesn’t count as a significant audience). These are the ones who create new tools – like Ruby on Rails, come up with concepts like AJAX, and are the ones who come up with all the Microsoft ideas (I am specifically exempting the person who came up with Clippy the Paperclip).

Nothing wrong with being the great unwashed. We’re the ones who make all the stuff the other 10% think of come to life. We aren’t the ones who came up with WebKit or Android (or because this is a Microsoft crowd) .NET, but it will be our job to make them work.

I’m in that 80% even though I read this blog. I make just as much or more money than those in the 20%.

:slight_smile:

Thing is, I work with lots of 80%ers but tell them about codinghorror and try to get them to read it. I wouldn’t show it to them if it just spat in their faces. Maybe McConnell’s idea is better, i.e. how to become 10X more productive than you are now, or just “Sucking Less Every Year”:

http://www.codinghorror.com/blog/archives/000530.html

Otto: Apes don’t read philosophy.

Wanda: Yes they do, Otto, they just don’t UNDERSTAND it… Aristotle was not Belgian, the principle of Buddhism is not “every man for himself”, and the London Underground is not a political movement. Those are all mistakes, Otto. I looked them up.

– A Fish Called Wanda

Robert Stephenson Smyth Baden-Powell was the founder of the Boy Scouts. After his death in 1941, a letter of his was found, addressed to all Scouts, including the passage:

“Try and leave this world a little better than you found it.”

I learned that phrase in Scouting, applied first to campsites, then life, when I was 12. If you could have only one guiding principle in life, that would be an awfully good choice.

@Reimar: This is a point I left out not to overload the comment, but of course I agree. I consider myself part of the 20% … just not in programming. Also, your absolute experience level doesn’t matter, but whether you’re self-motivated to learn what’s going on in the wider world is.

(Though you threshold for a competent user is a bit high. Compiling a program is not required. Being a specialist at what they can do BETTER than you – telling you how they want to use the damn thing – is.)

Loved the post, and the comments - much food for thought as always.
I split developers into starters and finishers. The starters have the vision, and write the “IF” part of the logic. The finishers haven the real-life experience and tend to add the “ELSE” parts that mature the product into something that is tolerant to most of the real-life exceptions.
For new work (rare) you need more starters, and for maintenanc work (common) you need more finishers - but to build a great team you will always need both types.

I work with armies of folks who really know the business. Their code works and the systems give the company a competitive advantage in the marketplace.

That said, I recently opened a 5,000 line Java class with most of the logic in one 3,800 line method with all the sins you could imagine present. I’d guess the people who dealt this mess have never been given one moment’s guidance on what makes good code. They’re well into the “uninterested in better programming” crowd. What’s important to the company is they put their heads down and produce business value.

I agree they are pretty much “unreachable” re most of the topics we toss around out here. Maybe if management sees that code quality can have a significant impact on the cost, or even the possibility, of delivering business value in coming years they can try to affect a change in culture. I’ve had darned little luck from the bottom up. And the original author of that 5,000 line monster is now the boss. Not holding my breath for change.

I do consulting for several companies and so far I’ve only seen ONE guy who buys and reads books, and he’s not into development.

Of course there are many who read blogs and books and we see them here, but there’s a BIG bunch of people who just don’t care.

Best regards

So if the three personna are contextual states that can be wore (like disguises) by a single individual, Why the 20/80 is not? Why is it different to be disguised as Mort than to become temporarily part of the “let me pay my bills” 80%?, or maybe it’s just I that can’t see that this is kind of obvious by putting the two ideas together (actually I don’t see nobody supporting/commenting on this).

OTOH, inspired by Jeff’s first conclusion: Is there some place where the “true brave coders” throw snippets of code for the masses to rant, dismember and insult it/him? (maybe called “Bash my code”). I mean, not just a place like worsethanfailure.com where people show other’s bad code to be bashed up, but where, “in an ultimate act of humbleness”, you post your own bad code in order to improve yourself as coder more than to improve the code itself.

And finally, I don’t know how you English speakers have transformed the “vocation” (“strong inclination or impulse to follow a particular activity or career” or “function or station in life to which one is called by God”) into “vocational” being the definition of the people that is on the 80% that doesn’t care and just wants to pay the bills. Quite a strange false friend for spaniards like me I think :-/

Please stop writing posts on this stuff. The comments are recursively depressing. The problem is not between open source and MS. The problem is not between full-timers and part-timers and the problem didn’t go away once we stopped working in machine language.

What purpose does this kind of discussion serve? As an electrical engineer I have never experienced any caste system within my profession. The idea of looking at a colleague as a Mort ASIC designer or an Einsten ASIC designer seems childish. There are those that are more dedicated or more experienced than others as in any profession, but to assign degrading or belittling names to “80%” of your co-workers seems disrespectful and unprofessional.

For some reason this kind of techno-taxonomy is OK in the world of software engineering and I have never understood why. It seems almost pathological.

Given the projects I’ve seen, I’m wondering about the 80% of organizations that can’t even begin to pass the Joel Test. No version control, no real project management, the endless and repetitive execution of McConnell’s “classic mistakes.” Maybe it’s the folks we work for that keep the majority of developers in the average level. Or maybe I’m way off.

In any case, everyone falls into some place in the spectrum, whether it’s their career, knowledge, IQ, personality, temperament, etc. So really, should anyone be offended by this notion? Consider also that at any given moment, individuals are rising from noob to novice to expert and beyond.

Robtwister –

I think you pretty much nailed it.

In the days of little memory and processing power, no UI, etc., those people had skills (e.g., see grc.com).

Amen JS - Amen.

It seems rather odd to me as well. People seem to be interested in doing it, though.

The whole conversation is frankly is odd to me… I have better things to do than sit and ponder how I can reach people who have NO INTEREST in being “reached”.

Jeff,

Been reading a while - never posted.
The question is: How would you class myself.

Used to write FROTRAN on IBM mainframes and VAXes - these days I don’t write anything. But I like reading to see what is happening in the field.

Doesn’t matter - just curious.
David

I’d say that the 80-20 analogy applies to just about any profession you would care to name.

You have a certain segment who are interested in learning new and better things, having interactions with others to hone what they know, and adding what they’ve learned to the collective wisdom. Some are more involved with this than others - there are always differing degrees of effort in this area.

Then you have those who only want to do their job. They don’t want to learn something new, they don’t want to add anything, they want a pay check so they can go out and do other stuff at night and on the weekend… maybe even just put food on the table. They are basically glorified “line workers” just like those who work in factories. Their work does take some brain power as they must do some thinking about what they’re doing… but they want to invest the minimum effort.

I missed the original post because this was a busy week for me, but I have seen both these types of people, even in the small business I work for. I don’t do much programming anymore - it’s just the way the job falls. But I try to at least read and keep somewhat abreast of the new things going on. No matter where you work in IT - at least knowing or having heard of new developments gives one a leg up when doing your own job. Being informed seldom goes to waste and may help in unforseen circumstances.