→ On software quality (and reliability, and frugality)

On Software Quality is a very fine article by Nick Heer I suggest you read. There’s a passage I don’t fully agree with:

There was a time when remaining on an older major version of an operating system or some piece of software meant you traded the excitement of new features for the predictability of stability. That trade-off no longer exists; software-as-a-service means an older version is just old, not necessarily more reliable.

I have several older Macs I still use, some on a daily basis (like my 2017 21.5‑inch 4K iMac and my 2010 17-inch MacBook Pro), some on a frequent-enough basis (like my 2013 11-inch MacBook Air and my 2015 13-inch MacBook Pro), some others just occasionally (like my 2008 13-inch black MacBook or my 2009 15-inch MacBook Pro). The two main factors that contribute to their obsolescence are:

Progressive unavailability of up-to-date Web browsers (and up-to-date digital certificates to guarantee online security).

Cloud services like Dropbox and OneDrive progressively dropping support for older Mac OS versions.

Typically, for how I use all these computers, №1 is more disruptive than №2. I very much enjoy using older Mac OS versions, but not being able to browse the Web properly and securely, not being able to correctly sign in to check a Gmail account, not being able to fetch some RSS feeds because you can’t authenticate securely or establish a secure connection is very frustrating. Not having Dropbox work on my 2009 MacBook Pro running OS X 10.11 El Capitan is a minor annoyance and means I just won’t have access to certain personal files and that I’ll have to sync manually whatever I do on this other machine.

But if I put these two factors aside, there’s nothing about those older Macs, nothing about the older Mac OS versions they run that makes them less reliable. The crystallisation of the operating system they use and the software environment I find on them is exactly what makes them more reliable than the newer stuff. Just because an application has been discontinued by Apple — like Aperture — doesn’t mean it has stopped working or has stopped being reliable. Just because a third-party app has moved on from supporting a Mac OS version (or even a whole Mac architecture) doesn’t mean I can’t keep using the previous version of such application with that older Mac OS version. I’m aware this isn’t exactly what Heer was arguing — I’m just saying that when I use these older Macs with older Mac OS versions, it’s like entering a snowglobe-like environment where everything that still works by current standards or demands, still works reliably and predictably. And what doesn’t work, well… just doesn’t work. It really doesn’t make the Mac or its older Mac OS version less reliable.

Now I’ll admit, one important thing that works to my advantage is that I have been using for years more or less the same bunch of core third-party tools made by Mac developers who:

have released either free software or software that can be purchased upfront without a subscription; or even software that has a usable free tier and requires a subscription only for its more ‘pro’ features (BBEdit is a perfect example of this);

have maintained access to older versions of their software applications, making said versions free to use or unlockable by providing a valid licence for a more up-to-date version of their application.

So yes, I’ve tailored my software experience around predictability and stability for quite a while now, favouring these aspects over ‘needing’ to update just because a piece of software promised some fancy new features. The proliferation of subscription-based software — or software as a service, as Heer says — has clearly made things a bit trickier in recent times. If you, unlike me, heavily rely on subscription-based apps for work and leisure, then yes, remaining on an older major version of an operating system or some piece of software can present an issue and may end up being unwise in the long run. But I wouldn’t frame the issue in terms of ‘reliability’ — more in terms of ‘availability’ or ‘compatibility’.

I think the trade-off of staying on an older major version of an operating system or third-party application to pursue stability instead of buying into an increasingly mindless update cycle still exists. And that while an older software (or system software) version may not necessarily be more reliable than a newer one, it doesn’t mean it is necessarily less reliable or stops being reliable altogether.

Nick Heer concludes:

What I expect out of the software I use is a level of quality I simply do not see. I do not think I have a very high bar. The bugs in the big paragraph above are not preferences or odd use cases. They are problems with the fundamentals of the operating system and first-party apps. I do not have unreasonable expectations for how things should work, only that they ought to work as described and marketed. But complaints of this sort have echoed for over a decade and it seems to me that many core issues remain unaddressed.

People buy hardware, and it shows. People subscribe to services. But people use software. This is not solely an Apple problem. Many of us spend our time fighting with tools that feel unfinished and flawed; it seems to have become the norm. But it is particularly glaring when the same attitude is taken by Apple, a company that ships some of the nicest hardware in the business. I would love to see the same tolerances for what is shown onscreen as Apple has for how the screen is made.

What’s really sad in all this is that many of those “problems with the fundamentals of the operating system and first-party apps” aren’t structural; that is, they’re not derived from historical faults or shortcomings in the fundamentals of the operating system. They often are the result of more recent bugs breaking something that used to work or a solution that had already been found, and said bugs have been allowed to fester thanks to an unsustainable yearly release cycle that forces engineers to work on new features instead of fixing what broke down in previous iterations. This core issue in software’s ‘cardiovascular system’ is equally felt at the major arteries’ level and at the capillary level, which is that ‘fighting with tools that feel unfinished and flawed’ that Heer talks about.

By the way, the ‘software as a service’ model, in this scenario, does nothing but exacerbate these functional issues. The perennial, flawed, beta state of software is maintained at the OS level because this system software — instead of being designed to achieve a final, self-supporting state — is designed to be continually patched, retouched, refined on an asymptotic line (a process that creates a lot of baggage and technical debt). And when it comes to third-party apps, having software that is considered a service and not a product means, once again, that it is not designed to achieve finality, but to remain available in a usable state for an indefinite amount of time. We can debate exceptions, good intentions, and finer points ad nauseam, but I maintain that this progressive departure from viewing and structuring software as a product has been severely detrimental to the nature, quality, and usefulness of software applications for the end user.

It has disincentivised a lot of big and small companies from striving for excellence and releasing truly great products, instead opting for software that is decent enough but always has some room for improvement, a gap that is never really filled because otherwise the updates would stop coming and it wouldn’t make sense to pay a subscription fee anymore. In the best-case scenario you may have developers who genuinely strive for releasing great apps but their work is disrupted by Apple’s update cycles, forcing them to rewrite code and update their apps so that they keep working after a major Mac OS release. This is why I was using the ‘cardiovascular system’ metaphor before: the flow at the operating system level (major artery) affects the flow at the third-party app level (the capillaries). I really hate this kind of entropy because it feels largely avoidable. But reversing the course needs significant efforts, and such efforts have to come from Apple; they theoretically have the resources to shoulder these efforts and lead by example. I’m not holding my breath.

On software frugality

When technology was kinder to its users, and when someone like Steve Jobs was still alive and had Mac users’ interests at heart, keeping my Macs updated was a pleasure. When a new Mac OS X version was presented, I knew Apple had been at work to genuinely improve on the previous version, so for me updating was a matter of when more than if. And up until probably Mac OS X 10.8 Mountain Lion, ‘when’ usually meant ‘as soon as possible’.

But then, the ‘new cool features’ promised by the newer Mac OS version started feeling less important or groundbreaking. More cosmetic. Or more tied to a vision of the ‘Mac experience’ that has progressively felt more detached from the regular user’s reality, concocted by executives from their ivory towers at Apple Park who don’t seem to actually know how people work with their Macs in their day-to-day.

So there was a moment where upgrading to the next version of Mac OS turned into something I did reluctantly, often waiting two or three minor version updates because the .0 releases were getting buggier and broke more things. I even skipped OS X 10.10 Yosemite entirely because the visual changes were just too jarring for me and Neue Helvetica as new system font was really working against my eyesight — and against common sense, from a design/UX standpoint. OS X 10.11 El Capitan felt better in many departments, so I jumped back on the update bandwagon.

Anyway, to make a long story short, over the past 10–15 years my attitude towards Mac OS and software in general has shifted and has become more self-centred. I ask myself more questions. What can this new update do for me? Is there anything that the previous iteration can’t keep doing? No? Then what’s the point of upgrading? Does this app have some groundbreaking feature I was really looking for or missing from my tools that makes it worthwhile to start a subscription and rent software I’d really prefer purchasing? No? Then I don’t need this app.

Today more than ever, technology wants to put you in a river where you flow from update to update unquestioningly; a river where you keep flowing forward because the ‘new’ is always better than the ‘old’. I went along with this until it stopped ringing true. Today more than ever, technology and tech companies feel like entities that don’t work for us and don’t have our interests at heart; they just want us to depend on them utterly and continually. So I have to look out for my needs.

That means making difficult choices sometimes. That means questioning convenience (convenience for whom?) and reintroducing friction. I can’t use the term minimalism with a straight face anymore, that’s why I prefer frugality. I can’t provide a set of ‘rules’ or a list of tips & tricks here. This is the classic situation where your mileage really may vary a lot. What I can do is share an attitude. You should have already gleaned it from the previous paragraphs, but I’ll reiterate.

Put yourself and your needs first. Anything that works against that is not worth your time, energy, money, or obsession over it. A piece of software that is ‘nice to have’ but in exchange keeps you hostage through some form of lock-in or yet another subscription that further erodes your budget (especially if you don’t have money to burn)… is it really nice to have? An operating system that forces you to adjust your habits and workflows on a yearly basis… what does it really have to offer that makes all that hassle worthwhile? That new app that does the same thing as that old app you trusted… do you switch to it because it’s actually better or just because it’s new and ‘looks fresher’? If upgrading to Mac OS 26 means you have to also update a bunch of apps and all these now have worse usability — because Mac OS 26 is the worst usability regression in all Mac OS history — is that upgrade working for you or against you? If you reach a point where the entire software ecosystem you’re using is constantly thwarting you in a big way or even in a myriad of smaller ways, where do you draw the line? Do you even draw a line? Is the constant acceptance of the compromise of convenience, still convenient?

When you think in terms of ‘your needs first’, in terms of ’none of these tech companies is your friend’, and you build your software toolbox around the concept of ‘essential tools’, migrating to another platform isn’t as daunting or traumatic as it feels when you start imagining it. You do a bit of homework to prepare yourself. You ask yourself what kind of applications you need to look for if you change platforms, and evaluate the best candidates. Sometimes you get lucky and you find that the same company that made one of your favourite tools has also made a version of such tool for Windows or Linux. In this case you don’t even have to adjust to the new tool. In other cases, you might have to do additional work to become as productive in the new platform as you were in the old. But if you’ve answered ‘Yes’ to the question ‘Is it time to leave this platform behind because it takes from me more than it gives me?’ then you’re willing to do the additional work of forming new habits.

Where am I now in all this? I’m at a point where I’m not upgrading to Mac OS 26 or any other 26 software release from Apple. If the poor state of Mac OS user interface, user interaction, and usability is not radically addressed in future versions, I will keep using older Mac OS versions until the resulting friction is no longer sustainable. My main Mac is still on Mac OS 13 Ventura, and I’m planning to upgrade to Sonoma very soon. Considering how I use my Mac and my tools, the impact of staying on this older version of Mac OS has been non-existent so far. Everything I need to work still works without issues, and I’m still enjoying the benefit of working with a Mac OS version that — while not as perfect as Snow Leopard, or as stable as El Capitan, High Sierra, and Mojave still feel today — is way, way more legible, usable, and ‘out of the way’ than Mac OS 26 with its Liquid Glass UI.

I’m already using Windows and Linux as secondary platforms on other hardware. I don’t think I’ll ever remove any trace of Mac software and hardware from my daily life. The beauty of not needing ultra-specialised software that has to be constantly kept up-to-date means that I’ll be able to hold on to older, trusted Mac apps for a long time. But if I ever need to move away from the Mac as my main computing platform, switching to Windows or Linux won’t be much of a culture shock as it often felt in the past. And if my day job, as I fear, dictates that I’ll have to keep upgrading to newer, worse Mac OS versions, then I’ll make sure to do that on a dedicated machine where I don’t do anything else but work.