Mort, Elvis, Einstein, and You

“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.”

Unlike Electrical Engineering, there are no barriers to entry for software developers. You can spend 5-6 years earning a masters in Computer Science, only to work under someone who never even considered going to college.

In a way we are like auto mechanics. Just as they are constantly hounded by people who think because they can change their beak pads they know something about cars, we are hounded by people who think they can design software because they wrote a script or two.

Imagine if every person you meet says, “I installed my own car stereo, so I know building a new dual-phase signal processor with 100X amplification and no fidelity loss is trivial.”

We make these distinctions because the only alternative is yelling like Tarzan and throwing power-supplies at peoples’ heads.

“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”.”

Personally I think it is a waste of time, but I understand why we do it. In the end, we are stuck cleaning up the mess they make. In fact, these people are often our managers and we are forced to help them make the mess.

How about this analogy based on database, and not partioning on Windows-Linux divide?

Given a database and a query:
A 20% developer can look at a SQL statement and then write the tuple calculus/algebra behind the evaluation and the pseudo code for the query that generates the most cost-based optimized output

A 80% developer would just refer to a SQL book and then generate an SQL query, that just gets the required results, not even knowing what is cost based optimization.

I struggle with all categories similar to the 80/20. My main beef is this notion that you have to spend x amount of weekend hours doing things like installing Linux partitions, playing around with VS 2008 yada, yada. When I am at work, I try to make my programming and development skills better. When I am away from work, I try to make my personal, family, spiritual and relationship values stronger. (not that all these cannot overlap). Not sure…I have always felt a little lonely for the guy that spends his weekends and nights playing with his computer. We programmers need to get out more in general.

Coming back here catching up on the comments I realize that I was trained to be Einstein, seeking Elvis as a role model in a market where I was expected to be Mort – on steroids.

When I read all of your comments about how Mort is a hopeless case with no will of his own but getting home after five, I feel obliged to point out that Mort probably knows more about good practices than you might imagine. It’s only easier to think of him as horror incarnate.

If Mort didn’t become a rockstar, it’s due to a lack of standards. His first blame was to accept working the way he does. And because of that, he learned to grow within the constraints that were given to him.

I am guilty of being any of the three (stereo)types at various times, depending on circumstance.

Better than average blog post this time compared to the previous. I’d say it was in the top 20% :slight_smile: /duck

Excellent piece. Really thought provoking. But after some thinking on the subject and I was wondering… Isn’t it pretty much the same in any craft or profession?

Paul Vick is right, if we want to get anywhere we HAVE to stop pandering to Mort. The more hack-writers we have in the industry slapping together shoddy code, the worse the software industry as a whole will become.

I didn’t start off cozily dropping controls into a WYSIWYG and slapping together websites, and I’m glad I didn’t. I have yet to meet a good developer who started out that way. My first IDE was NotePad, and even to this day, I only use Dreamweaver because the code coloring makes things more pleasant and snippets make life much easier. I NEVER use the WYSIWYG.

I use VB, too. That’s because my brother knew it and he helped me learn it(he helped very little, it was mostly me). I also like VB because it’s actually quite CLEAN. I want to rip my hair out when I use C++ because it never makes any damn sense. There are like 500 different type libraries out there, and every time I use C++ I learn about a new one. The names of functions rarely make any sense, random functions have reserved variables that have to be a certain value. C++ is just too damn esoteric, and it frustrates me to no end. So I stick with VB, and it works, very well, and I don’t waste my time trying to figure out what the hell an LPRANDOMNAMETHATMAKESNOSENSE is.

I’m venting, I know, I just had to write an ISAPI filter earlier this week, so bare with me. Back to the point, slipshod VB/Access/.NET developers are out there every day chugging away at really terrible code, and some day it’s going to get so bad that whoever they’re working for will have to call in the cavalry, the Einsteins or the 20% developers, to fix it all. I’ve actually done this myself, several times. Imagine how much productivity is being lost, how many new paradigms aren’t being developed, how many blog entries aren’t written, and how many killer apps aren’t developed, because the good developers are too busy cleaning up after Morts.

Maybe that’s why IE6 was around so long? Microsoft hired some new developers to work on Vista and the IE team had to be pulled to fix their work. Just maybe.

return 0;

This has set off an alarm in my mind…
yes i do read this blog religiously(and jeff you get all credit for it…)

and yes i also do agree that i belong to the 80% of the crowd and i’m still in my earlier stages of my career…this has been an eye opener for me(or ego squasher for some)

what the best thing that can come out of this post, especially, is that we can expect the ratios to change a bit in future…lets say 3:1 from 4:1

what say Jeff??
:wink:

i think becoming an elite programmer is a step-wise process.Honestly,you can’t be a 20%'er just when you started programming or programmed a few months.You graduate from the 80%er squad to the 20%'er squad just as becoming a Mort then an Elvis and finally an Einstein,it’s basically like this:when you get comfortable you are bound to seek new challenges.i bet you’ll not be satisfied with “Morting” around all the time you’ll certainly get bored and want to try doing stuff like an Elvis or Einstein.So don’t be so pissed about where your conscience is placing you ,just console yourself with the fact that you’ll graduate and move into a higher rank (only if you dedicate yourself to programming)and stop steaming at Jeff just because he provided a scale,your conscience weighted you and obviously you did not like what you saw :).

ps: Jeff, an 80%'er sent you an email (me = gogole = Donald) requesting assistance,don’t you think it will be a good idea if you assisted ?

For me the question is - do we really want to reach this 80%? Or is it maybe a good idea to improve the performance of the better 20% to be enough to write all the software, and let the 80% do something where they are good at (I think everybody is good at something, it’s just not always their job). I’m reluctant that we accept that we must live with people who suck at their job.

What about the fact the for the standard developer that codes a solution to a spec is doing the equivalent of factory work. There are thousands of programmers that are able and willing to to the job and most likely for a lot less cost.

I feel my major part of the puzzle is a full understanding of the problem along with how to code it. If I don’t understand not only the business rules but the reasons behind them then I’m just blindly coding a solution.

Re: Personas

When you create software do you not have an image of who you are creating the software for.

I am glad that the development tools were created with all these different types of programmers in mind.

How many programmers really try to imagine the people who are going to use the software that they create? What knowledge and skill are they bringing?

We can learn something from the persona approach.

Doug (not the previous commenter named Doug.)

Jeff, you and many other posters are ignoring the reasons behind this.

It makes us all feel good to think WE make the decisions and have responsibility for, and control of, whether we are Morts or not.

In fact, that’s only partially true. The greater controller is money. Money, in its own gene-selfish, self-replicating way, generates the environment which necessitates whether a programmer goes on to be in the top 20%, or the bottom 80%.

Management wants to make money. They can’t afford or manage a staff of Einsteins or Elvises. They need Morts. They hire Morts. Developers are encouraged to become Morts. A few are encouraged to become Elvises or Einsteins.

The optimal ratio, whatever that is for a given project, optimizes for maximum profit. The ratios described by you or Microsoft are like a genetic algorithm, designed to optimize for the best problem solution in the domain space of project completion within a software development ecology.

This happens in other situations too. You need functioning at all levels. Could we run the world if everyone was a CEO type? Or nobody was? Would a brain be useful if all the cells were dedicated to breathing and eating? Or if none were?

Hi Jeff,

As I was reading your post, I realized that the meat of what you are saying demonstrates the problem-solving mentality that makes you a great developer. You see a problem (Majority of the software development community is not trying to improve their craft in lines with the technology) and you want to try and find a solution. That attitude in itself, I would argue, is what puts you in the 20 %ers. I agree with the problem, but not necessarily with the proposed solution.

IMHO, there are 2 general ways you can try to motivate a person to do something: push them from behind or pull them from the front. Using my non-vast experience, I believe it is more effective to pull from the front. The main reason being is that it is important not to slow things down just because some people can’t keep up. I agree that the majority of the people in the software development community don’t care about this craft or even look at this profession as a craft. They simply want to collect their paycheck and go home. Going and trying to help them get to the same level as you are will only slow down your personal progress. It is very easy to become entrenched and swalled up in the political BS and excuses that arise when you try to “help” the other 80 %ers.
Instead, keep paving the path and widening the gap between the 2 camps and I believe that will have the desired result you are looking for. At some point in time, if the gap keeps widening, businesses/people are going to notice it and stop hiring the people in the 80% camp. This is, overall, a good thing. I’m not being cold-hearted here. The 80 %ers do not enjoy their job. Therefore, they are not happy with their lives because they are spending a significant percentage of it on something that will never lead to personal success. They should be pursuing something that they DO enjoy and WILL find success. The craft of software development is extremely difficult and if you are not dedicated to constantly improving the craft within yourself, you will be overcome with frustration and ultimately failure.

Anyway, I hope this does not sound too pompous, but ultimately, I want to encourage you and the other 20 %ers to keep doing what you’re doing because it is significant and does improve this profession.

I’ve gotten 2 einsteins retrenched this year, taken over their code, now I get 5 callouts a week fixing the bugs I slipped in: an extra $270 a month for the mortgage. All the remaining Einsteins think I’m just imcompetent. Fooled them good. And… I’ve just been put on project managing a conversion from the legacy something-or-other system: been getting free lunches from reps every day. I get to pick my own Elvises too for the techie work. Even threw some contract work to some fellas from my old job. Should be able to slip some skimming code into the old system during the conversion, hidden in all the spagetti, while the coders and auditers are bogged down on the decoy, then I can that new system, get the glory and bonus for saving heaps of money. Those mainframers from the 60’s created a Y2K retirement plan, so why shouldn’t I create one?

re: “leave the craft of software development better than we found it.”

We will… a good start would be to stop calling it a craft and start calling it an engineering discipline!

http://softwareindustrialization.com/PreparingTheWorldForSoftwareEngineeringPart1.aspx

I think the wrong kind of people are becoming programmers. http://passionet.blog.com/2368025/

I really, really, really want to belong to the 80% group. Always go with the majority. Blend in with the crowd. Don’t stick my head out. Be mediocre with the rest of the gang. Cool instead of Geek. I want to belong to any club that would have me.

I’m not offended at all for belonging to the 80% bunch. Hell, I must be the laziest programmer out there, and get away with it.

Sorry, I’m just letting off steam. My evaluation came through this week. “People” don’t understand me when I speak; my speech is too technical (for her). Also, I’m the “bottleneck” of the department (being the only programmer) even though nobody gives me any work. And when they do, I normally solve things in five minutes. Being lazy, five minutes work is all right with me :slight_smile:

This year, I’ll be working on being mediocre and work one hour on five minutes jobs, and I’ll try to belong to the 80% crowd, and suck up to my boss just to get a really mediocre evaluation… Oh, forget about that. I’ll be looking for another job next year. There might be companies interested in hiring a smart person that gets things done (Joel do you hear me?).

Please stop writing posts on this stuff. The comments are recursively depressing.

This is the pinnacle of entertainment! I chuckle at some of the posts and comments just as if I’d fragged someone at close range with a rocket launcher in Quake! How can you get depressed with this kind of stuff flowing across your screen? There’s more positioning going on in here than on the senate floor. I used to use comics to get a laugh, but the real thing is much more enjoyable. (I bet you all are getting a kick out of the feeding frenzy too)

Jeff, could you do some write ups touting some code dogmas like “Goto’s are the sign of a bad programmer” or something like “Only morons do deep nested ifs”? That would be fun too. Maybe do some sensationalism like “Good Coders don’t cry (or whine in my blogs)” or “Frankenstein looks better than most of the code you junkies put out there”. Maybe even start your own version of the Java Ranch where we can submit our code and everyone can blitz us. Okay, sorry… I’ll stop there.

I agree with the 80/20 post and think it’s too bad that so many were bothered by the self-imposed 80 percent tag, even if 80 percent is not necessarily bad! Now on round 2 where we are dealing with personas and the message is being taken more in line with what it was intended for the discussion continued quite nicely with all of the expected humor. I refrain from citing those comments which have given me the most enjoyment since the sensitivity and insecurity behind them might get me stalked and killed.

Really though the nail has been hit on the head several times. I feel it is such a shame that so many people equate being “good” with a hefty income and/or an Alma Mater. Don’t even get me started on those of us who claim some sort of viability because we have mastered a niche technology or market. If a person’s drive is the paycheck and nothing more then that is a mission field I’m not interested in addressing, but if a person just doesn’t know any better… that is the audience that has a chance.

I’m betting most of the folks scanning these blogs are constantly trying to figure out how to become better. “Git R Done” just isn’t enough and “Done Right” is the evolutionary process we are all moving through as our world changes. On your persona level, selfishly speaking, I need the “Mort” beginning/mid level technical folks around to do the mundane and tedious things that keep me from getting the big stuff done. The beauty is that the smaller tasks are usually a rewarding challenge to the inexperienced folks. (Being a small fish in the pond is sometimes such a blessing)

I appreciate your call for us to try pulling the unreachable into a reachable state and am thankful for all of those gone before you that in a similar fashion punted articles and appeals directed to the programmer or technology user that is caught up in day to day minutia, missing the big picture in front of them.

Maybe we should get in touch with our feelings here…
Some of us feel like a genius walking around in a flock of stupid sheep (Make a choice: be a wolf or a shepherd)
Some of us feel like a stupid sheep walking around in a flock of genius (Make a choice: get smarter or get lost)
Some of us feel like a genius walking around in a flock of genius (Make a choice: work together or get nowhere)
Some of us feel like a stupid sheep walking around in a flock of stupid sheep (Make a choice: get help or get nowhere)