6 ms·
I empathize with you, the developer. I still want the best machine money can buy. But I have also been on the other side. Let me give you a simple question to
by alain94040 15y ago
I empathize with you, the developer. I still want the best machine money can buy.
But I have also been on the other side. Let me give you a simple question to ponder: assuming an engineering team of 50, and the cost of 2% to upgrade machines, would you rather upgrade everyone, or hire one more developer? As the manager, I can tell you that everyone is asking for an extra headcount: "we need a full-time person to handle builds", "Tom could really use an extra hand with the XYZ module". Etc.
It happens to cost the same: hire an extra developer, or upgrade. So, as a manager, you handle the trade-off. Life is all about trade-offs, not absolute. I'd love to have a faster machine. I'd love to have more engineers. I can't have both.
- etaty 15y agoGive each year/month credits to your engineers to buy a new computer and give them a way to 'buy' extra credits. So some of them will wait longer, some will buy a new machine each year. Give them the liberty to choose!
- jlaurend 15y agoThere are certainly benefits to having everyone upgrade at the same time, though. From a technical standpoint, it seems better to have everyone on the same setup so that you only have to deal with the same set of problems. You might also be able to get a deal for buying in bulk. Additionally, it would be frustrating to use your credits too soon and then the guy next to you gets something twice as good one month later. So just play it safe by keeping everyone on the same playing field.
- willyt 15y agoOr suddenly all the machines in the office are bluescreening at the same obscure graphics driver bug and nobody can do any work...
- ben_straub 15y agoAs a father of two, I heart this idea. This takes the budgeting headache away from the manager, and is completely fair. It implies that every developer is responsible for his/her own workstation maintenance, though, and that might be a risk/pain you don't want.
- stonemetal 15y agoBut that would give up the really good dell discount for buying 30 identical machines.
- hkarthik 15y agoI've pitched this idea before, and the standard argument is that by doing something like this, you lose the tax benefits around capital expenditures that become depreciating assets. However, I'm sure the tax benefit is small compared to the potential for increased productivity and output. But try explaining that to the average CFO.
- dpark 15y agoYou're forgetting the cost of maintaining a separate machine type for every developer. When models are standardized, the support team can keep identical replacement hardware on hand for quick fixes. They can swap in an identical memory stick or GPU if yours has glitches. They can even swap entire machines by moving the hard drive. Having non-standard machines greatly increases this cost for companies with more than, say, 6 developers. And of course standard hardware typically means a volume discount and a significant support agreement with Dell, or HP, or Apple, or whoever else. Let's also not forget that when developers are choosing their own machines, they're doing so on company time. It's certainly not cost effective to have developers doing comparison shopping on machines. And it's absolutely not cost effective to have developers putting together their own machines from parts (as some would happily do if allowed).
- jasonkester 15y agoI'd say you're making the wrong choice there. Developers productivity doesn't work the way you think it does. 51 developers on crap hardware won't be 2% more productive than 50 developers on good hardware. It won't even be equal. Somewhere in that stack of 50 developers are a few of those mythical 10X-100X guys, who are currently spending a lot more time than you think arguing politics on Reddit. When you're writing code and your machine bogs for whatever reason, it kicks you out of what you were doing and almost forcibly alt-tabs you over to look at lolcats. Give those guys good machines that don't piss them off, and you'll find them a lot more productive. And not, like, 2% more productive. More like 2X more productive as a group and 10X productive for some individuals. Try it yourself one day and let us know how it works out for you.
- tptacek 15y agoYou've polarized the issue pretty intensely here. A developer using the '10 MBP is not really going to be less productive than one using the '11 MBP. But that's where this logic leads.
- masklinn 15y agoBut that's a minor update of a pretty good machine already, especially if both are kitted with SSDs and maxed in RAM. jasonkester mentioned "crap hardware" versus "good hardware", a pretty minor revision of a machine likely won't move it from one to the other.
- mtogo 15y agoMBP = Macbook pro, for anyone else wondering. Took me a minute.
- ben_straub 15y agoI think you're straw-manning the premise. He's not talking about the difference between a '10 MBP and an '11 MBP, more like the difference between a mid-to-high-end '08 MBP running Leopard and a mid-to-high-end '11 workstation running Lion. Try going back to 3-year-old machine for a week, and I think you'll find it's kind of annoying, and your morale will die the death of a thousand papercuts.
- rch 15y agoThe manager should ask the team, or himself, if having SSDs, twice the RAM, etc. would give them enough extra time to manage the builds. OR, if Tom is having trouble with a module, maybe he would feel more comfortable handling CI...
- onemoreact 15y agoThat ignores the diminishing returns on additional staff. Also your math is off let’s say 1 person costs 100k/year including benefits SS energy hardware office space etc and you upgrade every 2.5 years that’s 5k/person above the base cost of having any hardware/software. Now, it can be close if your comparing 150 people vs 151 people but I can tell you better hardware would be more productive in that case.
- enjo 15y agoNow, it can be close if your comparing 150 people vs 151 people but I can tell you better hardware would be more productive in that case. No you can't.
- Dove 15y agoAsk the team which they'd prefer.
- gamble 15y agoWhat's the point in having engineers who can't engineer because their tools are inadequate? Would you hire a carpenter to work on your office who offered to give you a 2% discount, because he has to stop several times a day to fix broken tools? I find it bleakly amusing that so many blue-collar companies have no trouble putting a $10/hour worker in front of a $100,000 machine, while white-collar companies will do anything to avoid putting a $50/hour engineer in front of a $2000 machine.
- TheCondor 15y agoEngineers that can't engineers, can't engineer. Are we talking about tools that can't do the job or "the best tools money can buy" vs your average computer? I could care less if my carpenter has a Dewalt power drill or a Festool power drill. Seems like something you could quantify pretty easily. Arstechnica or Phronix or someone could build up a $1000 machine, a $2000 machine and a $10000 machine and build various open source projects on each and publish the times. IDE reaction time might be harder to quantify but I bet you could do it. My hunch from 10000 feet, you'll see an appreciable difference between like $1000 and $2000 but between $2000 and $10000 it won't be that substantial or it could be attributed to a $300 upgrade (SSD vs. spinning platters) or something. If the difference is that big, nobody would ask this question, everybody would have $12000 workstations on their desk at work and $5000 laptops to carry home, that's just how it would be.
- WettowelReactor 15y agoMaybe you should just cut salaries, healthcare, or other benefits by 2% and see how well that flies. Benefits are there for retaining the best talent and maximizing that talents efficiency. Treating PC hardware as ay less a concern is ridiculous. If you want to think of it another way if you manage to save even 1.3 hours of developer time a week (20 minutes of each daily builds) the hardware has paid for itself.