12 ms·
Ask HN: Why do companies issue crappy machines to developers?
Companies are willing to pay big money to developers, however they issue crappy laptops as development machines. Laptops are designed for mobility, not for performance. Sure, you can use a dock and plug a keyboard and external monitor(s), but a Core i5 laptop with 16GB of ram running at 1.6GHz won't cut it as a dev machine. I would imagine that companies would want to provide the best tools for their developers so that they can be happy and productive. What is the rationale for companies to do this kind of short-sighted thing?
- fendy3002 5y agoMost of the time companies fail to see non-concrete costs, one of which is slowing developer time, while it's easier to cut costs on developer's machine. Not all, but many. Same with "the meeting should be an email" type of thing, meetings are expensive but they cannot see the costs.
- chitza 5y agoNot all companies, maybe some. I've never worked for such a company, I've always been provided with decent/powerful desktops and laptops as extra (for meetings). Last two jobs I got powerful machines (Xeon/9900KF, 32/64GB RAM, SSD + HDD, 2 monitors, etc.)
- crate_barre 5y agoMoney is just a complicated thing for people. I’ve had very close friends, good people, that had certain habits ingrained in them. Cheapness is a mental disorder, like addiction, or other compulsions. It’s solvable, but boy is it something to marvel at when you see it first hand. It’s like walking into a hoarder’s closet for the first time in your life.
- jiggawatts 5y agoI had to explain to both friends and romantic partners that it’s absolutely insane to penny-pinch on certain things. Pepper, for example. I always buy a good pepper grinder with the best quality whole peppercorns in it. The difference it makes to a dish is just incredible. This costs something like 3 cents per meal instead of 1 cent.
- BitwiseFool 5y agoHere's how I like to put it: "No one faults a mechanic for buying high-end tools and top of the line equipment. I program for a living, how is buying an expensive computer any different"?
- __d 5y agoOh, but they do! The cost of cheap tools can be a fraction of a well-made tool. On paper (ie. the only way in which a manager can compare them) they have identical functionality. So why spend 100x more? Even if you then have to replace them more often, it's not likely that they need to be replaced 100x more often. And even if they do, that's not in this year's budget, so you can deal with that problem later, while saving a bunch now. The intangible cost of crappy tools is very hard to measure in a way that can compete with the dollar cost in a manger's mind. And so similarly, you get two extremes of developer culture: Aeron chairs, standing desks, subtle lighting, and good machines or crappy desks, left-over chairs, 7/11-style lighting, and cheap laptops.
- crate_barre 5y agoSome people find it virtuous to make do with a lesser whatever. This can happen for a number of reasons, usually a very painful personal experience or a type of severe brainwashing (your parents convince you walking a mile to school is virtuous, so now you do the same). If you find yourself having an eloquent long winded discussion with such a person, explaining to them they aren’t saving money by foregoing the soda at a night out (it’s cheaper to buy water after all), looking around the menu for the best value, half of which they can definitely take home (at this point I start to wonder if it’s theater, and even if it is theater, you’d have to be sick to even take part in such theatrics), I don’t know, what’s there to discuss. You almost want to throw a wad of $500 at their face.
- jiggawatts 5y agoI like the strategy Adam Savage follows: Buy the cheap tool! If it breaks, throw it away and buy the expensive one instead. This is a self-optimising strategy where he has cheap tools where it doesn't matter, and expensive tools where it does. While this kind of approach can work very well, it doesn't translate well to the world of "corporate drone doing software development on company equipment" because: 1. Development don't have a nice clear "break" signal, they just introduce friction. Lots of small frictions, each maybe just a fraction of a second, too difficult to measure. 2. The entire problem is that unlike Adam working in his own shop, in charge of his own tools, most corporate developers get very little choice in their tools.
- AnIdiotOnTheNet 5y agoOn the other hand, forcing developers to use underpowered hardware forces them to confront the performance of what they are creating.
- jiggawatts 5y agoThat’s not necessarily true. Most “slowness” is not caused by CPUs performance but by network latency and differences in data scale combined with inadequate indexing or poorly chosen algorithms. A 1MB empty database on localhost will run well on anything! What’s needed in my experience is network simulators that can add latency, and full sized databases with real data.
- BitwiseFool 5y agoI'd also add that a lot of the inefficiencies are a direct result of client demands. Not in the sense that they want it to be slower, but they refuse to budge on the requirements and do not want to adapt their business process. We bog down our validation code with dozens and dozens of edge case processing rules that could be bypassed if the client simply changed their own processes, but alas, no.
- favorited 5y agoIt's absolutely nonsensical, and it drives me crazy as well. I'm about to do something I told myself I'd never do, and just buy my own machine to use instead of my work-provided laptop...
- jiggawatts 5y agoI just had to explain to a bunch of project managers that developers cannot do docker-based workflows with a bunch of locally running cloud service emulators… with 8GB of RAM. Watching those poor coders clicking around and typing was just painful. Multiple seconds to respond to any input. Madness.
- xenadu02 5y agoInternal politics is the usual root cause. For example hardware may come from the CFO's budget or IT may want fewer configs for their own convenience. It doesn't make sense to save 0.2-1.0% of the fully loaded cost of a developer. Just making them happy and reducing churn by a tiny amount would more than pay for itself.
- PaulHoule 5y agoI think many managers really don't understand the impact that computer performance has on developers. For instance, some developers have a 40 minute build process. You'd imagine that if you spent a week making that 40 minute build process a 10 minute build process you could get that time back in a few weeks. The first response you might get if you bring the issue up is that we only work on tickets that have a direct benefit to the customer. If you stop for a moment to be articulate about it you can say "the customer wants to get features more quickly" and "we can cut three months off the schedule by speeding up the build process." That's an argument that people will listen to. Say you get paid $100,000 a year. Something that makes you 10% more productive saves $10,000 a year. $2000 of hardware pays for itself in about two months! You can go from "talk to the hand" to getting what you want if you can explain just what a good investment better hardware is for the business.
- yks 5y agoIn real world it's usually hard to precisely quantify this improvement ahead of time and so managers might over weigh the probability that your efforts fail to materialize the win. In the end you need a manager that is comfortable enough with risks, has the same expectation of success as you, and trusts you personally. So as usual, you need a good manager.
- PaulHoule 5y agoNot as hard as you think if you try. People often just don't think about "how long does it take to do X?" At one startup I worked at the CEO wanted to try "hackathon" style development and have us try to knock something out in two hours. This was a system that had a back end written in Scala and a front end using Typescript and React. I told the CEO that it took 20 minutes to go from zero to docker images ready to run (I knew because I kept notes) so at best we could do six iterations in that time. The CTO said, "No way it takes that long". I stepped back at this point and we all agreed we'd go ahead and see what happens. It really took 18 minutes. Whenever I've felt pressured and "under the gun" I've taken notes about what the process is and where the time actually goes.
- tsywke44 5y agoany such (public) company has fallen into the ”printing money from past heroic projects by former employees” phase and is slowly dying out
- tyingq 5y ago>a Core i5 laptop with 16GB of ram running at 1.6GHz Not arguing that's enough, but it is probably better than the average customer laptop. So if you do get a much higher-end machine, it's worth making sure the app runs okay on something less capable than that.
- hellisothers 5y agoYou want my compile times to suffer so I experience what a normal user experiences when using my app? Doesn’t seem like the best use of the developers time.
- tyingq 5y agoMaybe read my comment again. I didn't say anything like that, at all.
- majewsky 5y agoExactly this. I wish more developers were being made mindful of the humongous amount of resources they're wasting.
- toast0 5y agoI was going to write something similar. Actually, I don't care what hardware developers use to develop on, but what they use to experience the product should be at most median of user hardware, and probably lower spec than that (except if they're working on bugs or features for high end devices or specific devices). A low spec laptop (which something with 16GB isn't) and a nice remote build server is a good combination. When you give developers wonderful devices, it takes a lot of mindfulness to consider the performance on lower class hardware. When you have to make do with $100 laptops or phones, you're more likely to make things work for the low end users.
- squiffsquiff 5y agoYou're thinking here of front-end developers. Everyone else: Platform Back end Mobile Etc Is not targeting median consumer grade laptops At my org the PO's had to upgrade from MacBook air to MacBook Pro in order to be able to screenshare Jira via Ms Teams with slack and outlook open
- ajb 5y agoA company is a bad simulation of a hyperintelligent single decision maker. The best possible decisions would happen if somehow one person could be omniscient about all the things that happen in a company, and had the mental bandwidth to decide everything. Since that's impossible, we simulate this by a network of nodes (humans) linked using a very low bandwidth communications channel (speech and it's representations). Each node has finite capacity and can only bear in mind a certain number of considerations. There are a number of well known failure modes. For example: One node is delegated a decision affecting matters they don't understand (HR person has to buy computers for Devs) To render the financial situation comprehensible to central nodes, it is simplified by binning costs into budgets. For example, HR budget pays for laptops, engineering budget pays Dev salaries. Decisions are made to optimize each budget separately, so HR budget is optimised by buying cheap laptops, without reference to the fact that this makes engineering less efficient.
- cupcakesupreme 5y agoI once took a contract for a FAANG that had me on the shittiest piece of DELL Optiplex Dell had ever plexed. You could not have sold it for negative dollars. It took me easily 2x longer to do everything I needed to do. The contract paid out about $150,000, so the high-end graphics lappytop I needed that would have cost them $3,000 cost them $75,000 instead. This does not account for my lost sanity. Fury. Rage. Tempest. The sound of my soul dying. Where's the fucking grenade? Forgive me for being so complicit. $100/hr was a lot of money then.
- nicoburns 5y agoWouldn't you normally supply your own equipment for a contract?
- cupcakesupreme 5y agoThe manager was a creepy ass creeper who wanted your machine tied to his machine so he could observe you whenever he felt like it. Yes, one of those.
- Krisjohn 5y agoThat doesn't sound like it would have slowed down the craptiplex even more at all.
- bb88 5y ago$100/hr still is.
- BizarroLand 5y agoI got a crap PC that literally exploded 2 weeks after I started working for a college in the IT dept. I just brought my old PC and joined it to the domain. No one had a problem with it for some reason. (It was the wild west out there)
- cupcakesupreme 5y ago
- KaiserPro 5y agoThere are a number of answers: 1) they are cheap 2) they don't like you and have given you the crap machine 3) they want you to create stuff that runs on a machine similar to the target audience of your product. So you'll build stuff that works on less speedy machines of all of those options its mostly 1, then two, and very very unlikely 3
- actionherobiju 5y agoWell, they are paying me a shitload of money as salary. That is what that doesn't make sense to me.
- sys_64738 5y agoUsually you should do development on remote build machines where code is kept under VPN protection. For a lot of developers the laptop is merely a dumb terminal for console access.
- Lapsa 5y agocause it's cheaper
- actionherobiju 5y agoNot really. A really, really good laptop can be given for 1% of the cost of paying the developer. IMO, it would be best to provide the best tool for the trade.
- bob1029 5y ago> What is the rationale for companies to do this kind of short-sighted thing? Saving money is pretty much the only thing I can come up with. I certainly don't agree with any of it. The laptop piece might be a bit of DR (everyone has their work PC with them, so we don't need an emergency office). Everyone in our company gets Threadripper workstations these days. Currently we are handing out Thinkstation P620s. We don't play games with bullshit dev machines anymore. All of that frustration is reserved for our cloud vendors.
- Saphyel 5y agoI feel you I got a massive macbook pro. I complain everyday because it's so slow and heavy. I only want a small linux laptop that runs perfectly fine docker...
- jeff_vader 5y agoI do not know and by now I do not care. I switched to contracting/freelancing and hardware/tooling is mostly my own responsibility (was one of top 3 reasons why I switched). Loving my mildly overkill desktop machine now.
- AdrianB1 5y agoLet me give you a real life example: my company, very large, US-based with global presence, non-IT. - we buy every year about 10,000 laptops. Not one model because some are not available on all continents, but a small number of models. - we buy less than 400 laptops/year for IT people, that is 4% of the total - out of the IT people, over 80% are using the laptops just for emails, Excel and PowerPoint, so regular computers are fine. - the rest of ~100 laptops/year out of 10,000/year means just 1% of the total. The guys in charge of equipment purchasing are measured on cost savings, they could not care less about the 1% with special needs - out of the 100/year, the smart ones don't do heavy lifting on their laptops, but on servers or special use desktops (ex: Threadripper machines) that are very adequate for their needs. The less smart ones get what is called "engineering laptops" with more CPU cores and RAM and larger screens, but the thermal limits in the laptops are still there, so the problem is just partially solved at a high cost. In the past I worked in an engineering department where the dept manager took care that everyone had equipment matching their needs. That was a great manager and this is how this should work, but in modern companies mid-level managers are mostly a bunch of politruks and I am saying this as a long-time IT manager working with many external parties.
- bb88 5y agoBecause laptops are a standard hammer for most organizations. Optimizing everyone into a standard laptop configuration saves money and time for the entire company. They don't need Xeon's to run excel. The CFO/CTO is looking at the macro picture. You are a subset of that organization. If your engineering director wants more powerful laptops, it should be up to him or her to work through the CFO/CTO to do it. Also some companies have a policy where the less the executives spend, the more money they get in bonuses. It's effective for management, but it sucks for you. Edited to add: Increased performance is a "soft" metric, in that it's hard to quantify. Costs are a "hard" metric, in that it's easy to quantify. Which do you think the CFO is going to look at when making a business decision?
- Krisjohn 5y agoThat would be a valid answer if all of senior management didn't regularly ask for, and receive, non-standard computers (usually lighter or more powerful laptops, sometimes just more expensive ones for no good reason).
- robotnikman 5y agoMy 2 cents from working in IT Where I work now, we do issue developers better laptops than the usual we give out, however they are all the same make and model with no one offs. It makes keeping track of equipment and inventory easier, and if ever someone needs a new one we just load up one with a pre-built image we made with all the programs and settings pre-installed, and its good to go with little hassle. My guess is other companies have similar reasons, except maybe they want a standard laptop model used by all employees who need one, regardless of role. Sometimes its because an IT department may have only a shoestring budget to work off of due to execs wanting to save money.
- ramesh31 5y agoI've never worked anywhere that didn't give me my choice of the latest top end Apple hardware. Is this more of a corporate thing?
- ChrisMarshallNY 5y agoWell, in my case, I have been using laptops for development for at least ten years. I can easily afford a real powerhouse desktop, but I have deliberately chosen laptops. Most of the time, I don't need a huge amount of power. I'm not rebuilding the Linux core, every time I compile; usually an app. For my server work, all I really need, is an FTP connection, a browser, and a text editor. The reason that I prefer laptops, is that, every now and then, I need to take the show on the road, and it is very convenient to just yank my main device out of the dock, and drop it into a backpack, without worrying about syncing. I tend to do native Apple work, in Swift, using Xcode, so it is important to have a lot of local files. I can't really do the work remotely, on a cloud. When I was still in my "day job," the company issued me a laptop (because I was a manager, and traveled a lot). I brought a laptop for my own work, because that was all done in "nights and weekends." I often threw my personal laptop in with my work laptop, when I traveled. Nowadays, I have an M1Max 14-inch MacBook Pro. It is pretty much maxxed. Every bit as powerful as any desktop I've ever used. Xcode is still fairly klunky on it, because the code in Xcode is ... classic. I don't think a Mac Pro would be any real help. But when I'm docked (which is most of the time), I'm running on an LG Ultrawide (49-inch, 5120 X 1440) monitor. Even the 16-inch can't hold a candle to that, so the 14-inch is better for me. But that's me, and my workflow. YMMV.
- paulryanrogers 5y ago> I'm running on an LG Ultrawide (49-inch, 5120 X 1440) monitor That sir is a super ultra-wide. I salute you!
- ChrisMarshallNY 5y agoStretches across my whole desk. Apple just started supporting the full resolution, natively, a couple of releases ago. It's spoiled me rotten.
- nicoburns 5y agoI very briefly had an M1 Pro laptop (unfortunately it came with a faulty keyboard, so now I'm waiting another month for the replacement to ship), and I was blown away by how fast it is. My daily driver is currently the 2015 MacBook Pro, and I hadn't realised what I was missing. Looking at benchmarks, it turns out that the M1 Pro is actually a full 8-9x faster than the 2015 model at multicore workloads (which most dev workflows will be): twice as fast single core, 4x more cores + 2 efficiency cores!
- matzhouse 5y agoIt's also kinda hard to measure how much a bit of hardware helps or hinders a user. I guess it's something like cost vs average needs. If most people can do most things without too much difficulty then you're mostly good?
- YEwSdObPQT 5y ago
- monkeybutton 5y agoI've been stuck with a older, underpowered dev machine but in compromise I've also been given a VM in the cloud to work with. It has way more horse power for way less cost than any comparable laptop. At this point it feels like they just don't want to manage physical devices anymore and want the flexibility of renting whatever compute resources are needed for development. Edit: The actual day to day experience is not so bad with vscode and the right plugins.
- hkchad 5y agoI buy all my developers new MacBook Pro's every 18 months. Partly b/c I am (was) a developer and also I understand time/value/money and there is ZERO point in wasting time because of a few $1,000 laptop over a couple years.
- jasonpeacock 5y agoBecause the people making the decisions are not the same ones doing the work.
- jcun4128 5y agoThink depends where. I got lucky used a 16" MBP spec'd out and XPS 15 spec'd out.
- dave333 5y agoDevelopers can adjust their work style to accommodate a slow build process to some extent just by batching multiple changes into each build. I'm retired now but I never found a better way to work than keeping a notebook full of one-line problem statements created as bugs were found. Typically I would fix several of these then compile and test. That said my last employer a large networking company had power laptops standard for devs and normal laptops for everyone else.
- ancode 5y agoDo they have cloud budget? Slow dev machine is a deal breaker for me. I ask about dev machine quality in the interview bc I hate being bound by the machine I'm on. It's hard enough to focus on tasks, if I'm constantly having to take coffee breaks to compile things that shouldn't take that long it would drive me (more) crazy.
- postalrat 5y agoNot necessarily a bad thing. Your users are probably using potato computers. Make your app and dev environment work there too.
- actionherobiju 5y agoThis argument is correct only if you're testing the end-user component on the dev machine. I work on backend services.
- jerriep 5y agoYears ago at one of my first job as a tech lead, our boss wanted give us the same computers as the people who will be using the application (this was a Windows desktop application). His argument was that we should experience the application running on the same hardware as the users will experience it. I had to go into a long discussion explaining that we need to run a whole bunch of development tools besides running the application and therefore need much more powerful computer. I also explained that, if he makes developers that will by the hour, work deliberately slower, it will cost him more in the end. I think it was this final argument that won him over.
- karmakaze 5y agoI was at a startup and Xcode compiles were getting really slow. When asked about it, it came down to the slow Swift compiler which was still early and evolving quickly but not very quick. Ended up getting a Mac Pro with I think 64 GB (which doesn't seem quite as much now with laptops having 32GB). It wasn't me using it, but I appreciated using money to solve problems.
- midrus 5y agoBecause those are crappy companies. As I said many times over here: If you have a terrible manager/lead, if you are drowned in useless time consuming scrum rituals and can't get work done, if you are asked to work more hours you're paid for, if you're not happy with your salary or anything similar to this and you can't see this changing in the short term, just find a new job. If you already have a job as a developer it will take you almost no time to find something else. Right, your next company might have some of these problems as well. F*ck them too and keep searching until you find something you like. There are a LOT of great companies to work for out there, but it takes time and research effort to find them. I've left companies just after 2 months because I've given crappy laptops and forced to use tools (such as local editors as crazy as "Scite") because the CTO was a fanboi of it. I've left companies after 2 or 3 months because they were scrumb-by-the-book extremist who didn't had a clue what they were doing but scrum was good because the book the PM read said so. I've left companies because after 2 years was earning almost the same salary than when I joined while my market value was a lot higher (now I'm earning about 2.5X). So are you in a crappy company? They don't want to change their bad ways? Good luck to them, I'm not working there.
- devn0ll 5y agoIt is the reason why I hammer on BYOD beeing supported or not during the interview. "Can I use my own machine with Linux on it, do your tools/tooling allow that use case" There is sooooooo much work out there looking for devops people; that, for me, it's a numbers game. And for the companies; a struggle to provide such an environment. So far so good, and I'm having a blast. It's amazing what a difference having a nice dev experience / setup can make in you day to day work.
- devDude168829 5y agoDeveloper here, I've got i9 2.4GHz (Turbo 5.3 GHz) with 64GB of RAM from my employer. I think it doesn't count as crappy.
- sebazzz 5y agoCrappy computers or crappy anti-malware solutions? My Thinkpad T14 Gen 1 with AMD Ryzen 7 Pro 4750U and 32GB memory is not the fastest machine but plenty fast when forced in boost mode. In Windows-to-go on an external USB3 spinning rust drive at least. Running the corporate OS however is a whole different story: - Symantec Endpoint Protection with SONAR enabled, scanning at every file access - CarbonBlack Response Sensor - Hive Streaming - Riverbed Steelhead Mobile - BeyondTrust Defendpoint - Nexthink sensor that were installed because people were (are) having performance issues - Probably other stuff I've missed Kernel times are through the roof when I look at Task Manager. Suffice to say, this computer is plenty fast and does its job better when booting Windows from an external harddrive than it does on its internal NVME SSD running the corporate install. Everything is faster, from running git to running builds and automated testing.
- actionherobiju 5y agoWhy not give devs a machine that is still fast after installing all that?