Rockford Lhotka

 Monday, March 13, 2006
« An (accurate) rant on OO | Main | Order of book releases »

Business people hold the common belief that computer people are all the same, just cogs in a machine. Don’t like the color, shape, odor or whatever of one cog, just replace it with another cog. Domestic cogs are too expensive? You can find low-priced cogs overseas.


Those of us actually in the computer field know that this is quite incorrect. One “cog” is not at all like another. In fact, the skills of good cogs are orders of magnitude better that the skills of average cogs. Similarly, the skills of bad cogs are orders of magnitude worse than the average.


Unfortunately, the array of skills falls on a truncated bell curve; and I think that’s a primary contributor to the way business people perceive us cogs. That, and another issue I’ll get to later in this entry.


But the bell curve issue is a real and serious one. And one that isn’t likely to go away. The fact is that the vast majority of computer professionals are competent. Not stellar, not terrible; just competent. And, for technical ability, one competent professional really is much like another.


There are also “professionals” who are a standard deviation or two down the skill slope. We’ve all interacted with some of these people. But the fact is that they simply don’t last long; not most of them anyway. That’s why the bell curve is truncated. You have to truncate it, because to ignore this low end would distort the curve, making it useless.


The reality is that the vast majority of practicing computer professionals are in the middle of the skill range, but artificially appear to be near the bottom. At least this is true for the business people who don’t exist inside the industry and don’t see that bottom third (or so) of the skill range like we do.


This vast majority of very competent and generally hard-working professionals tend to be Mort (in Microsoft’s code scheme). They are as focused on the business as on the technology. Sure they are technologists, but that knowledge is focused on solving the issues of the business in the most efficient manner possible.


What’s important to realize though, is that the technology skills of Mort aren’t a differentiator. Even subjectively, the tech skills of most computer professionals really are pretty interchangeable (within a platform at least, such as Java or .NET). But the business domain understanding and knowledge are most certainly less interchangeable. Yet in the end, it is the intersection between the technology and business knowledge that truly differentiates one computer professional from another. It is in this nebulous area of overlap that the cogs become specialized and substantially more valuable than just any other random cog.


If business people understood the true value of this intersection of skills and knowledge they’d understand why they can’t just outsource or offshore all the computer work to save money. While the technical skills might be comparable, that area of business-technology overlap can only be gained by in-house staff (or perhaps by consultants who focus on a vertical area of business).


Years ago I managed a small group of programmers at a bio-medical manufacturing company. Our small team (of 5) built and maintained software that is a pipe dream for almost every client I’ve encountered from a consulting perspective. But our small team had this intersection in spades. We all understood the business, the people, the politics and we understood our entire technology infrastructure and standards. Coupled with being competent professionals, this little team did what I can say with certainty (having been in consulting for 12 years now) would take a team of consultants 2-3 times the size and at least twice as long.


But it is also important to remember that the bell curve and the non-linear nature of skill differentiation combine to create some interesting effects.


One standard deviation up the skill curve and you have far fewer professionals. Yet they are likely an order a magnitude better than average. Two standard deviations up the curve and there are precious few people, but they are really good with technology.


This is the part business people just don’t get. Hire someone one standard deviation up the curve, get them the business domain knowledge and they’ll out-produce a number of average developers. In theory, it would be even better if you got someone two standard deviations up the curve.


But what really happens is this: moving up the skill curve requires increased focus and specialization on the technology. There’s simply less time/room for learning the business domain.


The group one standard deviation up still has enough time to grasp the business domain effectively, and that group really is much better than average. We’ve all worked with people like this. People that really grok both the business and the technology and are able to come up with answers to problems in a fraction of the time as many others with whom they work. These are the Elvis persona in Microsoft-speak.


Of course the business people often don’t recognize this value, so these people don’t get paid according to their production and so they often leave and become consultants. A simple case of the business people shooting themselves in the foot, turning a would-be gold mine into an adequate resource.


Why “adequate”? Well, Elvis as a consultant loses the business domain expertise, and even their increased technical skills can’t entirely compensate. The fact is, Elvis as a consultant is not much (if any) better than Mort as a full-time employee (FTE). That near-mystical business/technology intersection enjoyed by a typical Mort typically offsets most or all the benefit Elvis gets from their technology understanding.


This is why Elvis-as-a-FTE is a real catch, and why business people should get a clue and work to keep these people!


Then there’s the people that are two or more standard deviations up the curve. They are so busy keeping up with technology that they don’t have time for the business domain expertise. Hell, they often don’t have time for families, stable inter-personal relationships or anything else. Let’s face it: these are the uber-geeks. In Microsoft’s persona system these are the Einstein persona.


An Einstein may work in a regular company, but honestly that’s pretty rare. The lack of business domain focus, coupled with the narrow technologies used by any one company tend to make Einstein a very poor fit for a single business. Of course very large businesses have the variety to overcome this, giving an Einstein enough different technologies to avoid boredom. Oddly, the same is true for some very small companies, where dabbling in random technologies seems to be the norm rather than the exception.


So most Einstein types are in consulting, working for software companies (like Microsoft or Oracle) or they are in very large or very small business environments.


And everywhere but in a software company, they are trouble. The Einstein types directly contribute to making all computer professionals look like cogs. They can (and do) create software that can only be understood and maintained by people at their level. But they are easily bored, and generally don’t do maintenance, so they move on, leaving the maintenance to Mort.


But of course Mort can’t maintain this stuff, so it slowly (or rapidly) degrades and becomes a nightmare. You’ve probably seen this: a system that was obviously once elegant, but which has been hacked and warped over time into a hideous monster. The remnants of an Einstein. Perhaps a better name for this persona would be Frankenstein…


Just check out this “overview of languages” post, but make special note of what happened when the Einstein types moved on and the Mort/Elvis types tried to maintain their masterwork…


Now we know what happened here. But to business people it is likewise “quite obvious” what happened: They hired some bad cogs to start with (the Einstein types), who created a monster and left. Then they hired some more bad cogs later (the Mort/Elvis types) who were simply unable to fix the problem. See, all cogs are the same; so let’s just offshore the whole thing, because some of those foreign cogs are really cheap!


In summary, what needs to be done is to figure out a way to get business people to understand that not all cogs are the same. That there are wide variations in technical skill, and wide variations in business skill. Perhaps most of all, they need to understand the incredible value in that mystical intersection where business and technical skill and knowledge overlap to create truly productive computer professionals.


The alternative is scary. When there’s thought of having Microsoft unionize, you know we’re in trouble. Unionization certainly has its good and bad points, but it is hard to deny that people inside a union embrace the idea of being interchangeable cogs and use it to their advantage. To me, at least, that’s a terrifying future…

Monday, March 13, 2006 4:14:18 PM (Central Standard Time, UTC-06:00)  #    Disclaimer