8 ms·
I've been saying for a while now, that developers and their managers should use a low-spec machine, let's say the 5th-percentile of whatever their users are usi
by myself248 3y ago
I've been saying for a while now, that developers and their managers should use a low-spec machine, let's say the 5th-percentile of whatever their users are using in the field, at least one day a week. This might force some reprioritizing of performance and efficiency goals.
As long as devs spend their days with bugattis while writing software for corollas, this will continue to get worse.
- lasereyes136 3y agoThat was true when most software was desktop software. Most software now are Web Apps so the local speed of the development computer means less. 30 years ago there was a big difference between the performance of a current computer and a 3 year old computer. These days there isn't a huge difference and a well maintained older computer can still perform well as compared to a current computer.
- playingalong 3y agoIs it the devs who need to ride the Corollas? Or is it the managers and/or the testers?
- stcredzero 3y agoThe devs. They have the true power to do something about it. Basically, that way you tighten that iteration loop for optimal efficiency to nearly nothing.
- btbuildem 3y agoHave testers not suffered enough?! It's the devs that need the slow machines -- they're in the tightest feedback loop, and directly empowered to optimize performance.
- threatofrain 3y agoOptimizing performance is very nontrivial and often means writing custom stuff, which will deeply affect TCO. It’s fine for devs to sympathize with users, but in the most ultimate perspective the users are actual or potential customers of the business and not your clients. In other words, the business should have ultimate authority and responsibility to structure incentives and pursue priorities. Up until the engineer crosses over a boundary and becomes part of leadership.
- loglog 3y agoIn enterprise software, optimizing performance usually means removing the custom stuff.
- deleted 3y ago[deleted]
- threatofrain 3y agoI think it's the opposite. With exception to startups like Bun, it's big businesses that can marshall enough financial justification to do high-performance rewrites and maintain custom code. A common complaint on HN is bloated web performance. Surely we don't think the web is bloated because of too much custom code as opposed to too many off-the-shelf components?
- nirvdrum 3y agoIt may be non-trivial to dig yourself out of a performance hole if you didn’t account for performance at all in the design. The pervasive idea that you can make it fast later virtually never pans out. In many cases, taking performance into account up front adds little overhead and won’t appreciably affect the design. But, if you codify some algorithmically inefficient approach into your public API, you’re going to find that hard to unwind. The engineering team should advocate for that when designing the product.
- torstenvl 3y agoNobody is saying hand-write it in assembly like RollerCoaster Tycoon so you can get decent performance on a 90MHz Pentium with 16MB of RAM. Tons of software would run faster if it DIDN'T use custom stuff. Don't load a JavaScript framework for form validation if using `required` and `pattern` are enough. Don't write your own sorting algorithm unless it's faster than qsort(). Don't write your own data storage engine if SQLite covers your use case. Story time: I once wrote a memset() replacement because one compiler kept optimizing out my memset() call and didn't have memset_s(). It slowed my program down a lot. When I looked carefully I saw I was always resetting the whole buffer, even though I was keeping track of how much had been written to it. Fixing that lead to a ~10x speedup (0.1s to process a large word processor document went to 0.01s, occasionally 0.02s).
- KptMarchewa 3y agoYes, the slowness of my IDE will surely empower me to optimize... performance of rando enterprise internal website #25628 that I'm currently working on.
- striking 3y agoIf you'll still pay for the software I write, why should I care?
- wanderr 3y agoI hate this for developers. I got to experience this first hand because I had a boss who thought like you. Developers generally need to run a bunch of resource intensive tools to build the application in the first place, so an underpowered system will already be choking. It means their app will feel slow no matter what. So then when they run it and it's slow, they will shrug and say it's just slow because their system is slow. There might be a case for specifically running testing on a slower machine, though.
- cuu508 3y ago> It means their app will feel slow no matter what. How so? Do the heavy tools need to run alongside the app? Are you thinking of something like Android emulator? For that scenario, keep the beastly workstation, but switch to a $150 phone.
- _heimdall 3y agoI think its reasonable to say anyone evolved in the product should regularly use the end product on low end hardware. I wouldn't expect devs to run full development environments on low end hardware unless they themselves are building dev tools.
- toast0 3y agoI think it's reasonable to have a separate machine to do building on. You can include a push to the target in the build script, or use network mounts or something. Remote debugging is a thing, if you need to use a debugger but don't have the resources to debug on the target. But I disagree with your basic assumption that > It means their app will feel slow no matter what. If you can make it feel fast or at least responsive on your underpowered machine, it should feel super fast on everything else. Even today's slowest machines can run some things fast. It does depend a bit on your market though; it might not be worth the effort, but there's a lot of applications out there that could use some speed.
- kayodelycaon 3y agoDocker is slow enough without giving me crippled hardware.
- ryandrake 3y agoFully agree. Developers should regularly dog-food their software and they should have to do it on the lowest-spec machine/phone that the software claims to be supported on. Too many developers run their creations on their fully-maxxed-out development workstation beast machine, observe it runs fast enough, and call it a day.
- SubjectToChange 3y agoIt's a tremendous waste of money for a business to spend expensive developer time waiting on garbage workstations. Simply targeting benchmark/latency metrics is enough.
- myself248 3y agoPrecisely, but how well is that working out in practice? Forcing them to CARE about targeting benchmark/latency metrics is the sticking point. And that requires shoving their face in it for long enough that it becomes unbearable.
- AA-BA-94-2A-56 3y agoAs a web developer, it’s less about me caring and more about my boss caring. If anything, give the C-suites the shitbox laptops.
- eviks 3y agoIt's only a waste if it doesn't lead to better performance driven by personal negative experience
- Timon3 3y agoIs there some way to reliably simulate this, e.g. using a VM? It would be nice to have IDE, build tools etc. using all available speed while running the output as if it was on slower hardware.
- dist-epoch 3y agoAssign a single core to the VM, 8 GB of RAM. Surely you can also bandwidth limit the storage.
- _heimdall 3y agoI've had better success with VMs for performance dogfooding in a desktop environment. On mobile I've always gone back to testing on low end hardware, there are just too many inconsistencies when trying to simulate slower performance, outdated OS problems, touchscreen drivers, etc.
- testless 3y agoFor Webapps, chrome can emulate slow network and/or devices. For Kubernetes or Docker compose, you can restrict resources, I believe.
- apienx 3y agoDev Containers are cool. There’s a VSCode extension.
- kevingadd 3y agoSometimes developers and managers can't fix it. (second-hand information) Android was at a smoothness disadvantage vs iOS for a long time, because it was never an organization level priority for devices to scroll at >= 60hz without stuttering. Then some executives went "why is scrolling so bad on our phones but not on Apple's?" and suddenly it became a priority. I remember before the priorities changed, some of their graphics programmers were very frustrated that they didn't have the freedom to invest in fixing it.
- testless 3y agoFor Web apps, I think using lighthouse and the chrome tools to emulate slow devices goes a long way.
- londons_explore 3y agoIdeally they have a fast machine to run compilers and shit on, but then the actual product they are developing runs on a slow machine. Luckily, Chrome has a feature to deliberately throttle the CPU and network speed for precisely this reason. Sadly hardly anyone uses it.
- groestl 3y ago> Sadly hardly anyone uses it. It would be great if Chrome's Developers would use something similar to run Chrome itself.
- londons_explore 3y agoBy the way... For anyone reading this wanting to solve exactly this problem... This feature is currently part of devtools. But if it could be enabled as part of Chromes policy engine, then IT departments could enable it by default for all developers, managers, and everyone working on the product, specifically for only web URL's of the product itself. So: If you want to help solve the fact computers are slow for everyone, probably one of the most impactful things you could do is to send a PR to the Chromium project to let the network and CPU slowdown code[1] be possible to activate from the policy code [2]. [1]: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/network/network_state_notifier.cc;l=209;drc=e036a8e7200d41afa08898ccede1324355ed5741 https://source.chromium.org/chromium/chromium/src/+/main:thi... [2]: https://source.chromium.org/chromium/chromium/src/+/main:chrome/updater/policy/service.h;l=83;drc=e036a8e7200d41afa08898ccede1324355ed5741 https://source.chromium.org/chromium/chromium/src/+/main:chr...
- hinkley 3y agoThis may end up being a place where some of the newish ideas in IDEs can help. You want the fast machine because you want the code-build-test cycle to be fast, but for immediacy reasons we want a little more hardware than we really need so that we don't get bogged down too badly in worst-case scenarios. So when we run the software on the machine along side this behemoth, we may or may not see something comparable to the users. And then we also like for interactions to go faster for us so that we can quickly get to the end of a thought without having to drop everything and fix the slowness first (also, too few of us actually know how to fix the slowness instead of papering over it). As we lean into multiple machines, or at least virtual machines, I can see a sliver of hope here where we offload rather large chunks of the IDE to resources the application itself cannot 'see', due to partitioning, remote calls, or both. Things like running the language server elsewhere, or the application in a container.
- alkonaut 3y agoI use a reasonably beefy machine to develop “heavy” desktop software. It’s definitely the kind discussed in this article. I find it frustrating that it has noticeable input lag even with moderate workloads for exactly the reasons mentioned. But then you talk to end users and it turns out they work 80 hours on one big document with input lag of several seconds. Some actions can take 15 seconds. It’s mad. It’s larger than anything we imagined anyone to work on. It must be infuriating. And they don’t get beefier machines despite it being an instant cost saving. Because software is seen as magical anyway. They do in two days what would take 50 days to calculate by hand! That’s fast! So when you ask them what to prioritize surely they say “make it faster with heavy documents”? No, they want more features. Because a feature can save then days or weeks or months. A faster program just saves them hours. So I sort of understand them (and why we build software that grows slow).
- HeyLaughingBoy 3y agoAnd this is exactly why you talk to users. You get the most unexpected feedback that you'd never have guessed in a million years.
- Xeamek 3y agoThe problem is how we (devs) slowly but surely conditioned users (and even other, new coming devs) so that people don't even know how fast computers actually are and how crazy it is that those things are as slow as they are. So when it comes to performance, people don't even know that things could (should?) be exponentially faster.
- alkonaut 3y agoImagine the first bank where a monthly job took a roomful of smoking people took four days complete with calculators. In comes IBM and says "we can sell you a machine that does this in five minutes". Sure it'll weigh a ton and cost a fortune, but you'll see it's worth it. So they buy it. The machine performs half of 12 boring jobs at the bank needed every month. But there is still another half dozen jobs the IBM still cannot do. It doesn't have the punch cards. So the roomful of smokers does the rest of the jobs in a couple of weeks, ready just in time to start over with next months tasks. Should IBM make the machine or its programs twice as fast, or have twice as many features, even if the programs are half as fast? They should double the amount of features. And double it again, and again, and again...
- Neikius 3y agoPlease go and do what you suggest for 8 hours a day then come back. Giving bad tools to any professional is a bad idea for productivity. We have other ways of checking if software is slow. It is all a question of company priorities as there are no professional standards whatsoever established. And companies ofc go for spend the least they can get away with.
- butz 3y agoIn some big business companies this is solved by pre-installed "security software" that usually takes up about half of the RAM, sometimes even more, and is using a measurable chunk of CPU all the time.
- metalliqaz 3y agoI totally feel this comment, myself being a corporate drone that has to deal with this software. Between disk encryption, anti virus, IT asset management, data custody tracking, etc; my PC is as slow as molasses. Unfortunately I think its slow in a different way that low-spec machines are slow. Mine is very slow on IO ops, but I have 32GB of RAM and a 20-core i7, so plenty of resources available even after all the BS.
- rahkiin 3y agoI could use some tips on talking with IT about this as it cripples work performance
- toolslive 3y agoYou think it's IT pushing this? They are just executing orders.
- theatomheart 3y agoYes and no. Businesses have cyber insurance policies. In a world of frequent ransomware attacks, many security policy changes have been mandated by insurance companies, and for legitimate reasons.
- hulitu 3y agoThe attacks are not frequent enough. And the IT is already outsourced (because cheaper).
- MichaelZuo 3y ago
- JodieBenitez 3y ago> As long as devs spend their days with bugattis while writing software for corollas, this will continue to get worse. That's BS. Like there was no such things as featuritis and unreasonable schedules.
- myself248 3y agoWhen performance is a non-issue enough that schedules and features are ALLOWED to be the priority, they will always win. When performance HURTS so much that they are forced to care about it ABOVE the pressure of features and schedules, then we get somewhere. Which is why browser emulation doesn't work -- it doesn't inflict enough pain. They wince through it, say "well that was awful, back to rushing more features out the door" and forget about it.
- JodieBenitez 3y ago> When performance HURTS so much that they are forced to care about it ABOVE the pressure of features and schedules, then we get somewhere. That won't happen because management people are the ones with Bugattis. You got the wrong target.
- dijit 3y agoI work in video games. My Lead QA recently accosted me regarding the low-spec machine being unusable. (it's an 11th Gen i5, 16GiB Ram and an Intel ARC A750). He wanted me to get a better machine. I politely declined indicating that this is the low spec machine, he made a fuss and I said if we can't make it run on that then we should stop making video games. For context: The weak part for us was the CPU; the ARC A750 is a pretty poor GFX card but it should never be unplayable, it's around RTX 2060-2070 in speed, not unreasonable for a low spec machine. It's very easy just to say yes to creeping performance demands, even in video games that are historically highly optimised. (obvious caveat here: sometimes things are not well optimised and hugely neglected)
- Xeamek 3y agoGames are lightyears ahead of 'common use software' when it comes to usability. Sure, there are bad, poorly optimized or simply unplayable games out there. But still, even the lowest of them are still insanely complex when compared to the software we are complaining here, ie. text communicators.
- alentred 3y agoAgree. And there is also actual progress in the rendering engines. Modern AAA games are incomparable with what they were 10 or 20 years ago. Most desktop apps on the other hand... Yes, of course they have more features than their predecessors. But still they have the same core functionality, though. A word processor is still a word processor, but modern ones come with a latency on an every button, including the old ones that didn't have it before.
- timw4mail 3y agoThe A750 is not that poor of a GPU either. If that's considered low-end, then gaming on a Steam Deck, or a budget gaming computer is impossible.
- Ekaros 3y agoTo me those specs sound pretty decent... i5 isn't Atom or Celeron... Intel Arc is bit weird, but not iGPU...
- Euphorbium 3y agoThe issue is not the difference in machines, the issue is that I need to run multiple apps and not just dedicate all of the resources of my machine to your app.
- vikingerik 3y agoAnd don't forget phones in all of this as well. Mobile developers have the latest and greatest and fastest, but half your users will be on $60 Android pre-paid or entry-level phones that can be a factor of four or more slower than what you've been developing on.
- scruple 3y agoWe have minimum specifications we meet for our software (games) and a suite of old desktops (that I occasionally have to go kick) that run CI performance tests for us. It's not much investment, outside of the initial setup and generating test cases / automation, but it's been worth it for us. It's helped us find a lot of problems over the years.
- deleted 3y ago[deleted]
- jiggawatts 3y agoGenerally I’ve found that the biggest causes of performance issues are network latency and missing database indexes. Slow laptops for developers test neither of those scenarios! The solution is to use network emulators that can buffer packets and simulate latency. (Or just put servers in a remote cloud region instead of the local LAN.) For databases, the trick is to give developers a slow database server with full-sized data. Don’t use empty databases (schema only) during development!
- lucas_membrane 3y ago> "developers ... should use a low-spec machine" That is exactly what Michael Brown, founder of Central Point Software, insisted on back in the 1980's when they were producing the #1 selling PC software according to PC magazine. An informed market also helped. A little bit earlier there was a comparison review published (same publication, IIRC) of the top spreadsheet programs (spreadsheets being the reason office workers were getting PC's). MBA Analyst was the best, in everything except speed, much better functionality than Visicalc, MS Multiplan or Lotus123, and only slower by a difference few users would notice without a stopwatch. MBA Analyst vanished in a flash after that article came out, and it found such a stable oblivion that it doesn't even show up on google nowadays.
- PaulHoule 3y agoBut software developers do builds on that machine. I’ve quit workplaces because they wouldn’t upgrade my computer, in one case I just bought my own. It”s a chronic problem that software developers get a hand me down craptop from a salesman who couldn’t sell.
- 1vuio0pswjnm7 3y agoAs a user of "low-spec" computers, I try to avoid software written by teams of developers working under managers. Most of the programs I use day-to-day are (a) decades old, from the distant past before so-called "tech" companies existed and/or (b) written primarily by single authors, often as a hobby or as a result of itch-scratching. Some of them are written by me. When I occasionally compile and run the scripts and small programs I write on more powerful computers, I am amazed at the speed. Everything I write is compiled on "low-spec" computers. Today's hardware is amazing.
- earthling8118 3y agoWhere are all of you people working where you get crazy machines? I've gotten a laptop at every job that didn't let me use my own computer. They're never fast at all even when they use supposedly higher end hardware. Not even a fraction of the speed of my regular workstation.
- Log_out_ 3y agoBut it's easier to optimize something to good on best in class, then to go to that from rest in case. Might even expose a developer as incompetent when it comes to hardware optimized software. Slow software bad developers.
- mananaysiempre 3y agoAka “craptop duty”[1]. [1] https://css-tricks.com/test-your-product-on-a-crappy-laptop/ https://css-tricks.com/test-your-product-on-a-crappy-laptop/
- gregors 3y agoI don't think developers are the problem here. Most developers I know would love time to work on optimizations. "When can we get this shipped???? We need it yesterday", I suspect business attitude plays the greatest role.