The problem with slow tools (2021)
jeremymikkola.com
jeremymikkola.com
* Most engineers can maintain focus on a task for up to 10 seconds waiting for a slow tool. However a couple of engineers (myself included) will get derailed at only about 3-5 seconds.
* A tool that runs for more than a minute will cause just about every engineer to switch task while it is completing. (This means they stop working on their highest-impact work and likely spend time on lower-impact things).
* A tool that runs for more than 15 minutes will make any engineer have to start deliberate multi-tasking where they are trying to work on two major work items at once.
Also, I wouldn't have read the article or posted this comment if it weren't for the slow CI pipelines at my workplace.
And when - when! - that job fails, you can be pretty sure it racks up some cortisol as one has to interrupt† your second task, pop back to the original context, curse at oneself for forgetting that comma or whatever simple thing, rerun, rinse, and repeat.
† The alternative is to finish (or reach a checkpoint) your other task, but that has cumulative latency effects on the duration of that other task that is supposed to be your main one.
https://www.folklore.org/StoryView.py?story=Saving_Lives.txt
I think of this quote whenever I am waiting for my iPhone to boot. Though I suppose Apple would argue that you don't need to reboot your iPhone every day the way you might have with older computers. There were never a billion Mac users though.
Problem is that Microsoft is trying to kill hibernation (so far they did the first step to hide it, then second step to hide it even better).
Why do the companies not realize that employees coming to office, waiting for computer to start, then opening their programs - is an incredible waste of time and productivity? Why companies dont push microsoft to make hibernation the default? (plus some smart feature for updates)
I can put up with many things, but not this.
The machine already reboots for goodness knows what reason. Probably some update that someone decided was far more critical than my machine being up.
Also why can't updates run on windows without a reboot? We're getting to the point where other than design, windows feels like the volunteer run OS and that's not me saying the linux desktop design is bad by any measure, just that I prefer windows.
Also hitting shutdown on your windows PC does not shut it down, it effectively puts it into hibernation.
The comment above is chasing the wind, just shutdown your PC if you want it off. If you dont then put it to sleep, modern hardware sleep state is effectively off from a power consumption point of view.
TBH It's probably not wrong, I wouldn't know because for some unknown reason my motherboard sits doing nothing for over a minute before starting the POST. Once it's past that, I can be at a linux prompt in 20 seconds, or at the windows login within 40, depending on whether I interrupt rEFInd
In fact even a momentary delay (my macbook now seems to often stutter for 2-3 seconds switching spaces) is an opportunity for your focus to drift (why is this damn thing so slow, I should get a new machine, actually, I should lookup the latest thinkpad, maybe I can tune memory use in the meantime, how do you tune macos memory, can you even?, etc ...).
Also, the time of focus loss grows highly super-linearly with the distracting delay time. One second could be imperceptible, once you get used to it, 15 seconds is enough to get distracted by looking at something else, like checking IM / email and spending 2-3 minutes on returning to the full focus, and 2 minutes is enough to go for a coffee / reddit / YouTube, and a potential loss of an hour of focus time.
I get so angry at this sort of thing. The M1 chips are so fast! When they came out they could open basically any program instantly. But now that they’ve been out for awhile, developers everywhere are (of course) just assuming everyone has an M1 or faster and doing even less optimization on their code. So the net effect is that software doesn’t get any faster. We just collectively spent billions of dollars on new hardware with almost no tangible benefit. (The exceptions being high performance computing - like AI or AAA video games where optimizations still matter).
Computers are fast. Slow software comes from lazy developers who steal your cpu cycles instead of doing their jobs properly.
It’s inexcusable.
It bothers me too. We have astonishing computing power, but outside certain applications we mostly just fritter it away. I would love to use a computer which does everything almost instantly, but instead I have to deal with counting to 2 in my head after pressing WinKey before typing my search term and go-and-make-a-cup-of-tea Gradle build times for pretty trivial projects.
When it comes to Apple though, I think it's somewhat intentional. "Why don't you have an M1/2 yet? Go buy one!"
Spending time improving performance when you "should" be working on "features" is not looked upon fondly by employers.
Companies need to be defining acceptable performance (with metrics) on devices meeting certain specifications at the outset of projects, and failures on those tests need to be treated seriously.
Can it really be achieved? Maybe not.
Wow, mine (M1 MBA) is less than one second. I either use command+tab or the trackpad. I’d be crossed too if it took that long for me.
I hate this type of reasoning. 15 minutes a day is 3% of the day. Multiply that by 230 working days a year and it's 3% of the year. Multiply that by the size of the engineering organization, it's 3%. Your maximum savings here is 3%, no matter how many numbers you multiply it by.
If a person reads this "if you do the math" reasoning and has a different reaction to the same cost depending on how it's presented, then, wasn't it a good thing that the reader was given a variety of ways to think about the cost? (Since, necessarily, the reader's reaction to at least one of the presentations was incorrect.)
Same applies to most companies. Unless they are in an explosive growth phase, or in a catastrophic collapse phase, 3% change in expense / efficiency of the engineering organization is pretty noticeable.
That's not how percentages work! 7% would turn into ~6.8% if you shave 3% from it.
My idea was to show that changing some big value by a few percentage points of that big value, e.g. of the cost of running the engineering organization, may have a serious impact on the overall balance.
Engineering organizations are expensive to run, and their cost in a tech-oriented company may even be the dominant cost. Saving even a small percentage of that cost is pretty noticeable, compared to other expenses of the company.
I’m convinced it’s a percent or two of GDP!
If I want it deployed to the "higher" dev environments I have to watch it for 20 mins so that I can "approve" the override that my base image (that I have no control over) has security risks and I accept them.
If I want to deploy to production, I have to watch and approve the 20 min gatekeeper, them again at 40 mins, and then at 120 mins accept that I want a change ticket.
If I miss any of these then I have to restart the build process. This is an "agile" workplace.
Fuck everyone who claims they agile doesn't work, just stop calling this shit agile.
Now it's "CI tests!"
Interestingly, it may have been beneficial to focus because you had to work the entire day without compiling the code. I suppose that in this situation, fast tests is what you need.
By the time I've managed to sign in to my email to double check an instruction, I've already forgotten what I was looking for...
If you spent 2 minutes peeing, and pee 8 times a day, that's 5840 minutes spent peeing a year! Wow! I bet he'd love that one.
https://www.walmart.com/browse/health/adult-diapers/depend/9...
If you could install an update that made you need to pee 10x less often, wouldn't you jump on that opportunity?
Especially if the urge keeps interrupting you when you're right in the middle of solving something?
It’s a nice reminder to get up and stretch, plus take my eyes off the monitor.
I think it’s a side effect of my ADHD medication : it both makes me focus a lot but also makes me pee way more so every time it’s a fight in my brain.
</my-pee>
Imagine all the oxygen we would save if we all stopped saying "bless you" every time someone sneezes, multiplied by the population of the world, multiplied by an average time per year someone sneezes multipled by an average lifetime multipled by an average amount of people in the room who can hear the sneeze.
Bad code, shitty micromanagement, garbage meetings is the main issues.
The only thing that has helped is to reduce build times from minutes to seconds.
By disabling link-time optimization in pre-production and by throwing out Docker because it doesn't play nice with build tool caches.
I come back with fresh eyes and spot things, get coffee, tidy the desk, make a call, stretch the leg, use the restroom, &c.
But I don't pass myself off as an ur-coder, so possibly I don't count.