Solving the IT Turnover Crisis
thedailywtf.com
thedailywtf.com
And you're not paying them enough because you've chosen to adopt a pay structure that, by definition, cannot handle outliers (which are exactly what your best people are).
An excellent programmer can routinely do the work of ten mediocre programmers. Have you ever heard of a pay scale that pays Programmer III ten times as much as Programmer I?
An excellent programmer can save you millions of dollars by increasing revenues, reducing costs, changing the way you do business, or any combination of these. How much of those millions does the programmer get?
An excellent programmer can provide a company significantly more value than his boss and his boss's boss. How much more does he get paid?
An excellent programmer can earn real equity and merit bonuses in enlightened firms. How many companies don't even have this on their HR radar?
An excellent programmer can go out and pound the pavement or join a start-up and earn what he/she is really worth. And until most companies provide that same opportunities, they probably will.
It's also I think why a lot of programmers are attracted to startups: because it's far more attractive (not to mention the company's and the programmer's interests are more greatly aligned) to be somewhere where you share in the success and aren't simply treated as an irksome cost centre that's hard to apply metrics to.
A programmer with 10 years of experience can be 10x (or more) more productive than a graduate yet they will probably less than twice as much.
Do this exercise: look at how much you earnt 5-10 years ago and now adjust it by inflation into today's terms. In real terms don't be surprised if now you earn little more, the same or even less.
It's unlikely to experience that bad of performance from your display logic. (unless you are trying to display millions of rows at once)
Yes, ibanks and hedge funds routinely do this. Both programmers probably go by the title "VP", however.
But you will get paid well for fixing headaches in the back office (referential data, clearing, etc). Perhaps only 5x as much as a mediocre programmer rather than the 10x you'd get in the front office, but it's still a big multiplier. Line work costs banks a lot of money; if you can put 100 humans out of work, they (or someone else) will pay you.
Quit repeating this crap. Quit it. Look at your hands, count the fingers. How many? Ten fingers. Ten fingers is the reason that the number "ten" appears in that sentence and that is it. In fact, an "excellent" programmer can be from anywhere to less valuable to infinitely more valuable than a mediocre programmer. But if the market needs 5 such people and there are 6 available, then the prices will reflect that rather than some cliche that gets endlessly repeated.
can go out and pound the pavement or join a start-up
Thus resolving all of your and the original author's objections. Yep, that's how the market works, that's how it's always worked and always will. There's simply no use expecting every company to magically know the "right" price. There's no such thing, ever.
"Frequently Forgotten Fundamental Facts about Software Engineering" by Robert L. Glass at the IEEE Computer Society website:
http://www.computer.org/portal/web/buildyourcareer/fa035
"P2. Good programmers are up to 30 times better than mediocre programmers, according to "individual differences" research. Given that their pay is never commensurate, they are the biggest bargains in the software field."
He also has a wonderful published book, "Facts and Fallacies of Software Engineering"
I believe the number there is "28 times" as mentioned on Jeff Atwoods blog: http://www.codinghorror.com/blog/2008/03/revisiting-the-fact...
"2. The best programmers are up to 28 times better than the worst programmers."
I believe the source studies are cited in the book.
I would add that the book is a great and thought provoking discussion of exactly this sort of 'old wives tale' about software engineering.
Edit: I found the page with citations on google books.
Another frequently cited source that was methodologically much better is the fact that 10 to 1 productivity differences are common even across small groups of programmers. Tom DeMarco and Timothy Lister performed this research and cited it in Peopleware. The two illuminating facts they also discovered at the same time were that the best predictor of programmer performance was the performance of other programmers at the same company, and that much of the productivity difference could be accounted for from differences in environment. (Sufficient office space, quiet office space, low interruption rates, etc.)
I would trust that number a lot more. And I would strongly recommend that anyone who is interested in it read Peopleware to get some ideas about how they can improve productivity.
Considering long term productivity improvements a good programmer can make - one good programmer is definitely better than 10 mediocre code monkeys.
It's an economic decision, they just aren't interested in what very talented developers have to offer, except for a very small portion of their business needs. It's essentially factory work. A car manufacturer could pay more for artisans to work the auto assembly line, and it may have some sort of positive effect on the overall elegance of the workmanship, but there's a quality trade off to be made and the vast majority of cars sold aren't a Lotus Esprit nor will they ever be.
I don't justify this way of thinking, to me its the scorched earth of capitalism with very limited consideration of the social, cultural, and environmental implications of placing profit motive on a pedestal of not just utility but also of righteousness, but that's me and that's not 99.999 percent of the employing population. This is not an IT turnover crisis, as much as we can come up with stats and anecdotes, this is a global turnover crisis, and it's because the value sought is not related to, as I said, social, cultural, and environmental balance and success, it's about money. Sorry to be the freak here, but this is the elephant in the room and why is it so hard to acknowledge?
..has a large contingent of developers that they seem to prefer to not be very good at what they do..
I've seen this as an intern and it drives me mad. Whole groups of people just wanting to do the bare minimum and end up being rewarded for it. I have a hard time being around people like this.
What's worse still is that a lot of these people have figured out how to game the system.
At my previous job (big company -- 175,000 people), we had a lot of "senior" staff floating around, and the common thread among them was an inability to learn anything new. They were doing things the same way that they had for years -- and most of the software that they'd had a hand in was very brittle (loads of tightly coupled "components") and inefficient.
Their approach was to do basically nothing until the project went to crunch mode, then bust their butts in Hero (tm) mode, and the management loved it -- especially as the company foolishly brought more and more managers over from amazon, where heroism + round-the-clock babysitting are standard operating procedure.
I know of a few good examples such as GOOG, MSFT(depending), Netflix, some startups etc but I know the Midwest(my location) is chock full of these IT houses that don't care.
Even here in Seattle, surrounded by the likes of Amazon (probably the most technologically backward sweatshop in Washington), Google (who knows, the guy that did my phone interview was a dolt), Microsoft (probably the most technologically advanced shop in Washington), and even Adobe (now run by clueless marketers) and Disney (which is turning into an amazon clone), it's tough to find worthwhile work.
So far the only decent job I've had in a decade is with a small company developing software for libraries.
I think that to have a good job you either need to be very lucky or create it yourself. This job is paying the bills while I do just that.
I've thought about this and I don't know what they can improve (except 4). What can a large accounting company do to hire an ex-GOOG or MSFT? Nothing, really.
I think that the implication that people may presume in my critique above is that I think the problem is the developers not being better, but that's perception is a big part of the profit motive that I'm critiquing. If success is a zero sum game then sure, you want only the best, but what I'm critiquing is that it is that very same zero sum game which makes it harder for these corporate developers to get ahead. I'm not charging some evil master plan, just that it's not realistic to presume that all developers must be top of their game at any one point in their career, or even that it must be their primary motivation in life.
I don't think the problems these developers face are only related to contemporary society seeing the corporate profit motive prerogative as paramount. It's also the attitudes of other developers who look down on them and put them down and actively detract from the reputation of those "corporate drones" who aren't as good as them. How about maybe didn't have the same opportunities? How about didn't get the same influences in school? How about just not having any mentors to show them the ropes? I find myself mentoring a lot and yet I also find it important to not be patronizing, but that's not very hard when I appreciate and am thankful to be working with these developers because they have so many good qualities, even if they haven't yet learned some abstract coding concepts and maybe aren't even interested in learning them.
But bleeding heart for the poor drones is not even the point, that's patronizing in itself. I think the self-described non-drone developers that look at things this way who are as negatively affected by the perception problems. On a delusionary scale of one to ten who's the more delusional one? The true believer in the way things work right now and is hoping for their big Startup break so that they too will be winners and free? Or the corporate drone developer who's a survivor, who's often an immigrant or foreign worker, who's sending remittances home every year, or who's already lost all hope and for whom thinking about career is about the time they reach for the depression meds.
It's also worth considering that the negative weight that is assigned to these developers is just plain factually wrong. First of all the corporations that hire them are making buttloads of money upon the work of these "unskilled" developers. And anyway, what exactly should we do with this supposedly dead weight? Throw them out of the village? Banishment? Their lives aren't worth as much? There isn't a place for them at the success in life table like there is for the better developers? Is it that they don't work as hard? Really? Hmmm...and what is this work of which you speak, bank software? Health insurance statement producing doofangles that too 65 hours a week for the past two months because the integration with the COBOL backend was acting up again and the nightly batch jobs from partner corps sent to the FTP dropbox were frequently corrupted? Hmmm.
And then some smartass comes along and tells them they're stupid for using FTP or some other random criticism, some developer always has a better way to do it of course, but fails to realize that the developer they are talking about simply has no say, no time to research, and nobody pointing to sources of information that will make it easier. Not everyone reads HN.
I think the problem may not be those less skilled developers, the problem is social conditioning and the narrative of what success is being all wrong.
We might talk a good game about looking for happiness in all the right places but that seems to break down pretty damn quick the moment we start critiquing those drones for not being good enough workers for the greater good. So what is is? Socialist or Capitalist? Or is the Left and Right narrative that guides our intellectual, political, and populist debate simply completely broken to begin with. But I think that broken narrative are what guides the conversation and attitudes as they relate to the concept of better or worse developers and how they contribute to us, presumably the great ones that is.
So my actual criticism is really about the attitudes, both those "greater good" attitudes, and those profit motive constraints which remove so much of the joy in a job well done. "More bricks, less hay" seems to be all we hear in corporate-land. Or at least, that's all I hear, maybe your bigcorp is a healthier society.
I agree with you, and in particular this. My experience in craporate IT is exactly that. I've had a number of projects where we had a very specific set of operational requirements (platform, OS, database, web server), and couldn't get even a hint about anything vaguely resembling a functional requirement. I've even had "emergency" projects where it was suddenly critical that we deliver right away! But the same people complaining that we were late couldn't tell us what the software was supposed to do.
One company I worked for didn't tell the development team about some software we were supposed to develop (as it turned out, this software was supposed to be part of the company's flagship product, but no one knew what it was or what it was supposed to do) six months AFTER it was supposed to have been shipped.
There's really no way any developer could ever actually add value to a place like that, no matter how skilled and how motivated.
Those projects they canceled, and the craptacular ones that somehow managed to make it into production, maybe for 30 years, those are the decisions that are making a lot of money. The idealized view of the peace and love and beautiful code making money are just not how it's done in the real world. I'm not a Microsoft hater, but hey, there's a good example for all you haters out there.
:)
If by developer, you mean people who write whole (or significant parts of) software applications, you find that you usually never get to do this in IT departments.
This is why skilled software developers often leave IT departments. They don't want 20-30 years of integrating pre-written software. They actually want to write the software themselves.
I never worked anywhere where anyone could "learns all that there is to know about the business".
Challenges change over time, what you need to know (and therefore learn) various hugely with each new challenge.
"Value Apex" sounds like a pseudo scientific term justified with a few invented graphs.
And the use of the word ‘crisis’ in the title is stupid. Everything is a crisis now; we have a healthcare crisis, unemployment crisis, foreclosure crisis, energy crisis and apparently now we can add IT turnover to the list. If everything is a crisis then really nothing is a crisis.
It's not crap, you're the one who's fortunate.
I can say with complete certainty that I've added next to no value to most of the companies that I've worked for that some random bozo hired off the street couldn't -- because most of them resist anything like good engineering. They just don't understand it, and they complain about (and penalize) programmers who aren't writing code when those programmers are asking "What's this thing INTENDED to do?"
No programmer, no matter how skilled, can add any value to such an organization. They're ass-in-seat jobs even though the hiring staff pretends that they're programming jobs.