Geeks With Blogs
Ulterior Motive Lounge UML Comics and more from Martin L. Shoemaker (The UML Guy),
Offering UML Instruction and Consulting for your projects and teams.

Note: This is a Best Of post from my other blog. The topic came up on Twitter, so I'm rerunning it here.

Coding Geekette has a slightly dated but still timely post about The Making of a Good Developer. That post was inspired by Justin Etheredge's equally interesting post on why Being Smart Does Not a Good Developer make. Both address the idea that good developers are those who like to learn new things, not just smart people. And they lament or wonder that so many people in the software development industry aren't interested in learning new things. I admit, this attitude puzzles me. I love to learn. I remember as a kid watching M*A*S*H and seeing that Hawkeye and BJ were reading medical books and journals, even though they were already doctors. I asked my Mom, and she explained that doctors have to keep learning new stuff all the time. I thought that sounded incredibly cool; but eventually, I learned that most kids didn't like school, and thought the idea of learning all the time sucked. I didn't get it, and I still don't.

But lamenting isn't my style; and wondering about someone's motivations isn't productive (better just to ask them). But being a proactive kind of UML Guy, I prefer trying to persuade them, through the power of raw, naked greed.

And that brings us to the U-Shaped Curve, which will eventually lead to a great argument for why they should keep learning. Now this idea isn't original with me. I would swear I learned it from John Stout at an AACS presentation; but John denies ever mentioning it, so it must've been a panel he hosted. Someone on that panel deserves credit, but I can't recall who. Update: Josh Holmes tells me it was Bill Wagner.

The basic idea of the U-Shaped Curve is seen in this picture:

U-Shaped 1

Figure 1: The U-Shaped Curve

The axes of the Curve are:

  • Newness (horizontal): Newer technologies toward the right, older technologies toward the left. And remember, today's Bleeding Edge will be common in a few years, and Paleontological in a couple of decades.
  • $ or Value (vertical): More $ toward the top

The idea is simple supply and demand: if you know a Bleeding Edge technology, you can charge through the ceiling, because nobody knows it. And if you know a Paleontology technology, you can charge through the ceiling, because everybody else who knows it is dead. But if you know only common technologies, you sit in the bottom of the U, with the bottom rising or occasionally sinking over time.

Now there's a complication for both Bleeding Edge and Paleo: you have to find someone who needs those skills. For bleeding edge, that's especially difficult, because few people know those skills even exist. For Paleo, it's a little easier, because those skills are known, proven technologies. Of course, they're technologies that have mostly been abandoned years ago, but they're still better known than the Bleeding Edge stuff.

A lot of people aren't interested in chasing the Bleeding Edge; and most people aren't learning Paleo tools just for fun (some do), so only time will make them Paleo experts. But of course, those are only two extremes on the curve. There are some pretty common waypoints as well (as described in Steve McConnell's Professional Software Development):

U-Shaped 2

Figure 2: Waypoints along the U-Shaped Curve (inspired by Steve McConnell)

  • Early Adopters. These people jump on new technology as soon as it's publicly released. Between the Early Adopters and the Bleeding Edge are the Scouts: people who like to learn about the pre-release tools, but aren't going to jump in with both feet until the tools near release. (I'm a Scout by temperament. I don't have the time to keep up with Bleeding Edge, but I want to see what's coming.) Early Adopters can't charge as much as Bleeding Edge folks; but they're pretty valuable, and they have more opportunities.
  • Middle Adopters. These people jump on new technology later, usually when they finish their current projects and start on new projects. Of course, since projects frequently run over schedule, and since new tools sometimes -- sometimes! -- can make help you to meet a schedule, these people may be too cautious. (In fact, I would argue that they're usually too cautious; but that's a very long discussion, and I'm tired.) Middle adopters are near the bottom of the U, but probably still above it.
  • Late Adopters. These people think they're being safe by waiting until a technology is "proven". What they're really doing, more often than not, is being too cheap or too busy to learn anything new. These are the people Coding Geekette wonders about. They willingly give up a competitive edge to all the Early and Middle adopters who aren't so short-sighted. This is a false economy. And it makes it hard to attract and retain good people like Coding Geekette, who thrive on constant learning. Plus the U-bottom rates these companies pay won't catch the attention of anyone who can work higher up the U.
  • Forced Adopters. These people cling to old technology until it's no longer supported. Then, kicking and screaming, they upgrade. The people who work at these companies may cling to their old skills long enough to reach Paleo, or they may slide back to the U-bottom. If they're smart, they'll grab the opportunity to move to Leading Edge. It's often easier to just skip all the intermediate generations of technology and go straight to the new stuff; but that takes a willingness to change that's rare in Forced Adopters.

Now you might look at Figure 2 and think, "Eh, Middle Adoption's not that bad. The pay is decent, and you don't have to deal with all the Version 1 bugs. That's what I'll do." And that can work (though McConnell describes some real opportunity costs you can lose if the Early Adopters pick a really good technology that gives them an edge over you). But you have to pick your next sentence carefully. Is it...

"So I'll learn this stuff that's been out for a while, and then just keep using it until it's phased out."?

Or...

"So I'll learn this stuff that's been out for a while, and then next year I'll learn the stuff that's new this year, and then the following year I'll learn the stuff that's Bleeding Edge right now, and..."?

If you're Coding Geekette (I hope she doesn't mind me using her as an example over and over again, but I thought her post proved that she has the right attitude), you'll give the second answer, because you love to learn this stuff. (Although I suspect she's probably more of an Early Adopter, from her post). But if you're in this field for a job not a passion, you may be tempted to give the first answer.

Don't.

If you have kids to put through school, or you have a mortgage to pay, or you just want to buy a nice fishing boat and spend summers on the lake, give the second answer.

Because remember: the whole U-Shaped Curve isn't static: it keeps sliding to the right, so static skills keep sliding to the left. Your skills that are new today are common next year, and old the year after that. Unless your career plan is to Go Paleo (live through the curve bottom and ride out the trailing edge), sooner or later you'll find yourself in Forced Adoption. That's a hard spot to ever escape, and it's not a spot with high financial reward.

In fact, becoming a Late or Forced Adopter can lead to financial or career risk, because pay rates aren't static, either. Unless your company's fortunes turn really bad, most employees can count on some sort of pay increase over time, even if only a cost of living adjustment. So at the same time your static skills are sliding down the U, your pay is increasing:

U-Shaped 5

Now at first glance, that looks attractive: "You mean I can beat the curve simply by holding my ground?" But that's a trap. At some point, your pay so far exceeds your worth on the curve that no one but your current employer would conceivably pay that much for your skills. In the mean time, if you're a typical person, your cost of living has increased due to many factors: inflation, growing family, kids in college, etc. So that means your only choice for work is your current employer. Is that bad? Not at all, for some people; but if you want options in your career, static skills are not the way to get them. And you also risk becoming too expensive for your employer: you can be replaced by someone with the same skills but a much lower price tag. (Note: This simplistic analysis ignores your accumulated knowledge of the company, its business, and its customers. The U-Shaped Curve is not the only measure of your value to the company, and it's short-sighted for employers to think it is.)

But suppose you love your current employer and wouldn't ever want to go elsewhere. In that case, you still should keep moving to keep your skills up to date (wherever you pick on the U). After all, if you like the job, don't you have loyalty to them? Don't you want them to succeed? At a minimum, don't you want them to stay in business so you can keep enjoying the cushy job? Well, if your skills are static and your pay isn't, then your employer is effectively losing value. Don't you want to maintain or even grow their value in order to protect your job? Now one way to grow their value is through your expanding expertise in their business and customers; but another is to keep growing your skills.

So I think that if you're in software development, you're in the learning business or the falling-behind business. This may not appeal to you, and I'm sorry, but that's the way it is. Some people don't invest themselves in their work: they may work competently and professionally, but work is simply what they do to support their lives and lifestyles. But some people like to find a task, master that task, and keep improving until they're the best they can be at that task. They take pride and pleasure in knowing their job and doing it well. And finally, other people like to keep finding and tackling new challenges. They take pride and pleasure in new conquests and new things they know (and may quickly get bored with the old challenges). If you're not in the last group -- or you can't at least act like you are -- then software development may be the wrong profession for you.

So my advice to those who want to excel as developers: Run! Run like the wind!

 

Posted on Friday, January 9, 2009 1:18 PM Development Community , Development Processes , Personal , Code is not Enough | Back to top


Comments on this post: The U-Shaped Curve (A few more reasons why Coding Geekette is right)

# re: The U-Shaped Curve (A few more reasons why Coding Geekette is right)
Requesting Gravatar...
Sadly for some reason I'm getting dead image links here. However, in my situation I'm not happy with my employer. However, I'm always eager to learn more, and there's a ton of different routes I could take to learning more.

I find I have to balance learning new languages with learning new techniques. However, the two coincide sometimes.

My latest personal project is converting all of those design patterns from Java to VB.NET from Head First Design Patterns. Simultaneously, I'm studying for my retake on the 70-536 in VB.NET. The experience is giving me familiarity not only with C#, but also with Java. It is helping me associate the related concepts as they apply to each language (mostly the application is similar, but the syntax differs slightly or more than slightly).

I'd say currently, I'm somewhere in the middle. I always strive to learn more, but what I'm currently focusing on are fundamentals. As I get those out of the way, I may migrate into the category of early adopter, or at least keeping a watchful eye on the bleeding edge nearest myself.

When I try to visualize a representation of what the bleeding edge is, to me it seems more like an irregular polygon with many sides and edges. You start in a certain point and can either stagnate to the center or climb your way out to the edges, however your independant focus determines the edge you are most likely to keep closer too (IE you and I may stay closer to Windows / .NET technologies, whereas someone else might head towards the Java edge)

I hope I made some amount of sense in this post, however, again I'd say I cannot view the images. It might be something wrong on my end or blocked by work.
Left by Stacy Vicknair on Jan 09, 2009 3:15 PM

# re: The U-Shaped Curve (A few more reasons why Coding Geekette is right)
Requesting Gravatar...
The images are working great for me now. Did you repost this?
Left by Stacy Vicknair on Jan 09, 2009 3:45 PM

# re: The U-Shaped Curve (A few more reasons why Coding Geekette is right)
Requesting Gravatar...
I'm trying to get a new position. The last place I worked was in Visual FoxPro. Now I'm in VB.NET, however the company has no real structure for projects other than "Hey, here do this. Here's a sentence statement from someone in another department about what they want."

So I'm looking for a team oriented workplace to learn and help others learn. I feel like I'm seeping into paleontology, but because of the lack of standards and practices.

Again, I can read books on it, and I do. However, I'd rather be somewhere where I can see practical experience in action.
Left by Stacy Vicknair on Jan 09, 2009 4:32 PM

# re: The U-Shaped Curve (A few more reasons why Coding Geekette is right)
Requesting Gravatar...
Stacy,

Not sure what was up with the pictures. I haven't changed anything. But I had a similar "no pictures" experience the first time I looked at it.

I think working on leading edge fundamentals is VERY smart. The tech changes faster than the fundamentals do, so the U for fundamentals is much broader. And more people should be working on those, not on "hot, new" tech.

So if I ran the world, your plan would be perfect. I hope it works out to be a good plan for you.
Left by Martin L. Shoemaker on Jan 09, 2009 5:53 PM

# re: The U-Shaped Curve (A few more reasons why Coding Geekette is right)
Requesting Gravatar...
automotive crm software guy (and by the way, your CRM tools look cool),

Yep. And then they grumble about why the need to change. Why isn't COBOL/VB6 more appreciated? etc., etc., etc.

And while I'm sympathetic, they're arguing for how they think the world should be. In this essay, I hope to remind them of how it is.
Left by Martin L. Shoemaker on Jan 09, 2009 5:55 PM

Your comment:
 (will show your gravatar)


Copyright © Martin L. Shoemaker | Powered by: GeeksWithBlogs.net