5 ms·
Actually, it's more like this. There are good programmers in the enterprise (meaning, say, investment banks or large corporations or governments) but they gene
by michaelochurch 12y ago
Actually, it's more like this.
There are good programmers in the enterprise (meaning, say, investment banks or large corporations or governments) but they generally fall, ambition-wise, into one of three categories:
(1) those who want to become managers or software architects (or, in finance, quants and traders) and will define and oversee work but delegate the dirty bits. This would be fixable (they could oversee a team of mediocrities, who'd be grateful just to be employed) but they generally don't have the patience for that.
(2) those who want to do highly-theoretical R&D work that doesn't necessarily solve any immediate problems of the business.
(3) those who have a specialty (say, deep neural networks) and want to be in the umbrella of a large organization that can protect it. Pull them out of their specialties and they'll try to leave.
In other words, these supposedly stodgy non-technology companies do, contrary to stereotype, have good programmers (I've worked in a few) but the ones who are at all decent have career strategies that they expect to be able to implement in their full-time work. They won't work on "just anything" and if you stick them with the random muck that comes from the line of business or zealous "product people", they'll either leave or slack in order to learn new skills on the clock, and the project will be done poorly or even abandoned mid-flight.
The appeal of the $3000-per-day consultant is that he'll work on what he's told to do and he doesn't expect you to consider his career needs. He's not going to do a shitty job and leave after 6 months because the people allocating the work don't care about his career; that's what the money (4-6x typical salary) is for. He gets his education and career advancement on his own time and dime (but earns a premium to account for his unpaid work). And while he might not be a great (2.0+) programmer, he's better than anyone in-house who could actually be assigned a bad project without political friction or high departure risk.
The average Bay Area startup programmer, like the average software consultant, isn't great; but he's far better than the corporate serfs who get sloshed around on the worst projects. He might be 1.4-1.5; so Goldman's R&D engineers and it top quant-coders will be better, but he's a relative colossus compared to the in-house peons (0.7-1.2) in back-office IT who'd get assigned to grody projects based on internal processes.
(Of course, not all the work that consultants do is undesirable. You also have the specialists and those with elite levels of skill. My point is that a "mercenary" consultant will power through the ugly projects for the pot of gold, whereas in-house people expect investment in their careers.)
In other words: yes, Goldman can hire great people. But if you want to hire someone great to do a project where 99% of the work is mediocre (and the 1% is extremely careful and requires an expert) you want the $3000/day consultant because Goldman can't get anyone good who's in-house (and not getting a consulting salary) to do the work. One might ask: why don't they pay an internal person $3000 per day, as they would a consultant? The answer is that it'd have him out-earning his boss and they'd often end up promoting someone not on traditional definitions of readiness (increasing scope, leadership) but because he took on an icky project.
- sswaner 12y agoThis is spot on. The last sentence is a very important point in enterprise IT shops: Lack of self-confidence in line managers is a big disincentive to hiring smarter developers. They worry that the smart developer (who often shows up with a bit of an attitude) will overshadow the manager and our point out their weaknesses.
- connie_lingus 12y ago"...They worry that the smart developer (who often shows up with a bit of an attitude) will overshadow the manager and our point out their weaknesses." lol...well you just described my last contract.
- tptacek 12y agoNo, that's not what the money is for. The money compensates inventory, scheduling, and delivery risk. It does not compensate developers for working on mundane projects. If the developer in question gets a W2 paycheck, odds are they're not seeing anything like 4x what the in-house people are seeing. And, while I do buy that all three of these developer archetypes exist in the real world, I do not buy that they are the reason that companies don't deploy talent aggressively to upgrade "support services". Rather, companies make straightforward buy-vs-build decisions based on whether projects are part of the focus of the business or not.
- michaelochurch 12y agoIt does not compensate developers for working on mundane projects. It does. That's not the sole reason why consultants make more, but that's a factor. If you're a full-time employee, you expect your health insurance, HR, work supplies, 401k, office space, finding of work, and your career growth and promotion planning to be taken care of, and you're likely to leave if you're not getting it. If you're a consultant, you're taking on those responsibilities for yourself. That's a big part of why you charge a higher hourly rate. It's to include buying your own health insurance and having to manage your own career with no expectation that the people giving you work give a damn about your vector. That's not to say that typical middle managers or companies actually care about the careers of most people under them, but they at least pretend to, and some actually do. It's part of the social contract that exists for an employee and not for a consultant. Of course, after being an employee for a while and seeing that part of the social contract ignored, many people decide that the job is too important not to do themselves and start managing their own careers... and some become consultants.