Posted on 2024-10-23
Tech companies are always chasing something. Usually they're chasing trends, trying to cash in on whatever the latest fad is to prove to their investors (who I can only assume have the attention span of toddlers) that they're keeping up with market trends and definitely deserve more money. This has led to some truly embarrassing and costly outcomes. The full-throated support of blockchain and NFTs long after they were proven to be scams and the current trend of trying to force generative AI into every single product on earth are two such outcomes.
One thing that strikes me as strange is that nobody seems to be focused on the much more achievable and much more useful goal of improving efficiency. I don't just mean process efficiency, I mean power efficiency. I mean a company moving its datacenters to infrastructure that is entirely powered by renewables, or moving away from computationally heavy software such as Jira and Slack to lighter alternatives that have a lower impact on the environment. Why isn't this something companies want to push for? Why isn't it the thing that, at the current stage of climate collapse, is going to be best for the company's image?
I don't have answers to these questions, in all honesty. I know that this is something I think about a lot in my day job. I am always trying to introduce tooling and processes that make use of less resource-hungry platforms and apps, but ultimately it doesn't come to anything because we're too deeply invested in the ridiculous setup we currently have. There is no reason at all that a company should use Confluence as a plain text wiki, it's far too heavy and inefficient. But when the company bought Jira (another fundamentally bad idea) it came bundled so now we just use it. Ho hum.
If I were running a business, one of the first things I would look at in business partners is whether or not their solutions purchasing track record indicates that they give a damn about efficiency. In this day and age, with everything we know and all the options we have, I think it should be a dire warning when a company's tooling is splayed to the four winds and makes use of the most power-hungry and resource-intensive solutions for no reason.
I used to work for a small company of about 50 people. We had the whole suite of bad solutions: Jira, Confluence, Bitbucket, Slack, Zendesk, a whole bunch of CRM solutions for sales, Travis CI for something to fix every week. If it was a bad solution, we probably used it. Every single web page I had to interact with took multiple seconds to load. Granted, our internet connection wasn't world beating. However, I firmly believe that none of these products warranted such excess. They didn't do anything so special that I should have to wait that long. There was no long-running computation (or at least, there shouldn't have been) that could have led to such a sluggish response from the server, and nor should the page itself have contained so much garbage that my MacBook Air would hang when trying to load a help center article.
I know I bellyache about tooling a lot, so let's change focus. It isn't just the solutions a tech company uses that matters, it's also what the company builds. I truly believe that software developers and designers and everyone who works on software projects want to make the most efficient software possible. As a developer myself, I know that finding small efficiency saves is a joy and something that I truly want to do every time I interact with code. Obviously, reality gets in the way of this a bit. A company has a responsibility to its shareholders as well as an existential need to get something out to market so they can sustain development, which often leads to efficiency being a secondary consideration. You won't be criticized for writing an endpoint a little less efficiently if it works and can be shipped now, you can go back and fix it later.
Except later rarely comes.
There is such pressure for new stuff from consumers of tech, both software and hardware, that companies feel the need to keep pumping out new stuff without ever truly completing the stuff they pushed out before. Sure, it may work. But the efficiency saves, the improved tests, the better pipeline, the refactoring... all of these get left to the wayside if a new thing is demanded. This leads to rot, and these small things build up into a huge problem.
I, for one, would be more excited to hear that a supplier or a company whose products I use has introduced absolutely no new features this month, but has instead improved the energy efficiency of a service. Maybe the company dedicates time to porting a solution from a less efficient language to a more efficient one, or maybe they just spend a period of a few months going through all the TODOs in their codebase. This sort of thing gives me far more confidence in the company and its commitment to the products it creates than an announcement that they've jammed #newthing into their product where it wasn't necessary. I use so many tools now that all have useless GenAI products foisted upon them in the most baffling places. I spend half my time trying to dismiss annoying popups and tooltips telling me how great GenAI would be for me if I would just use it. Please use it. Please, God, my bonus is riding on this!
But I don't use it, and I won't. I'm too busy being annoyed that it took me over 5 seconds of loading to get to the page in question. I'm too annoyed that even when I got there, lazy loading elements caused a layout shift that made me click on the wrong thing and now I'm being directed away. I'm too annoyed that Jira's godawfully slow lookups mean I just assigned a ticket to the wrong person because it took so long to look up what I typed in and now the ticket is in the wrong swimlane. My afternoon is gone and I've done nothing. GenAI isn't going to help me with that, it's just going to try and summarize something for me. I don't need summaries, I need details.
If Atlassian came out with an update to Jira that cut page loading speeds by 20%, or that reduced lookup times significantly, I would hail it as the greatest update in history. Such would be the impact on my daily working life that I would save huge amounts of time. If Vercel found a way to make their pipelines run in a more energy-efficient manner, I would be jumping for joy. I just want the tools I use to be as efficient as possible.
I don't know of many other industries where this inefficiency through poor focus is such an issue. If a company produced hammers, and the hammers had a defect in the handle that made holding it for long periods uncomfortable, nobody would buy the hammer. Why do we settle for less with software?
You can have both good UX and good performance. I know this is possible. I think a lot of the issues come from a kind of magical thinking that people have about software. A person has a problem to be solved and they find a solution, which is great. Then they have another problem, and given that they're already invested in the first solution they ask if it can be used to solve the second problem. This goes on and on until the solution itself is the problem to be solved.