A 2024 plea for lean software

This post is dedicated to the memory of Niklaus Wirth, a computing pioneer who passed away 1 January 2024. In 1995 he wrote an influential article called “A Plea for Lean Software,” published in Computer, the magazine for members of the IEEE Computer Society, which I read early in my career as an entrepreneur and software developer.

The way we build and ship software these days is mostly ridiculous, leading to apps using millions of lines of code to open a garage door, and other simple programs importing 1,600 external code libraries—dependencies—of unknown provenance. Software security is dire, which is a function both of the quality of the code and the sheer amount of it. Many of us programmers know the current situation is untenable. Many programmers (and their management) sadly haven’t ever experienced anything else. And for the rest of us, we rarely get the time to do a better job.

https://spectrum.ieee.org/lean-software-development

The whole article is worthy of your time to read.

We are likely looking at over 50 million active lines of code to open a garage door….

First of all, bloated software is inherently more difficult to maintain and debug. With millions of lines of code, even the smallest change can have unforeseen consequences, leading to a never-ending cycle of patches and updates.

Secondly, bloated software is often slower and less efficient than its leaner counterparts. This means longer load times, increased resource consumption, and, ultimately, a worse user experience.

But it doesn't have to be this way. There's a growing movement within the software development community that advocates for simplicity and minimalism. Instead of trying to cram as many features as possible into the software and/or using dependencies for everything, these developers focus on doing one thing—and doing it well. By stripping away unnecessary complexity, dialling down on how many dependencies you use, they're able to create software that is faster, more reliable, and easier to use.

#100DaysToOffload 10/100