Slow Software

The “slow food” movement encourages people to take the time to cook and savor meals made with love. It emphasizes care rather than the efficiency and utilitarianism of “fast food”.

What does the software version of that look like?

The typical software application is a product of a business trying to maximize profit and efficiency. There is a constant push to release new features and upgrades as quickly as possible, at the lowest cost possible. “Quality” is defined as the minimum possible bar that is still acceptable to paying customers. It is designed with the same priorities as “fast food”.

Of course, “slow” in the software world usually refers to annoyingly unresponsive user experiences. But here I mean “slow” in the sense that the software itself was designed and built slowly and with care, the same way that a meal can be prepared and eaten slowly and with care. Such software is likely to actually be more responsive because its architecture has been more carefully honed.

Part of my design process involves doing a lot of research and prototyping and then… doing nothing for a while. I call this the “percolation” phase of design. The ideas percolate in my head, mostly subconsciously, as I go about my life. And surprisingly often, a much better solution than any I’ve previously thought of will randomly pop into my head days, weeks, or even years later!

If you’re on a treadmill of designing and building as fast as possible, there is simply not time to arrive at these better solutions.