What film photography taught me about being intentional

My mum gifted an old 1970s Yashica film camera. When I got it, it was all mouldy and I had to get it serviced, but after that the first roll of photos genuinely surprised me.

With a roll of only 36 shots, and a manual focus, every shot mattered. There was no preview, no delete, no room for mistakes. Every photo I took required me to slow down, become more intentional, and decide whether I should press the shutter (and many times, I didn’t)

When writing software was harder, we had to think deeply before we wrote code. Architecture mattered. User workflows mattered. Every screen, every interaction, every database table existed because someone had thought through it.

I remember the days of text-based user interfaces (TUI). Users navigated applications almost entirely with the keyboard, jumping between fields with TAB and F1-10 keys and other shortcuts. Experienced operators could enter data at astonishing speeds — it’s hard to describe and you’ll need to see it to believe it. The screens were designed with great intention because if the inherent limitations of the TUI.

Then graphical interfaces (GUIs) arrived. GUIs unlocked entirely new possibilities, but it also arguably made some software harder to use. “It’ll take time to adapt” people said, but after years, I have never seen anyone enter data that quickly, ever.

Now, the cost of adding another button, another dialog, another menu, another setting is almost zero. As software became easier to build, it also became easier to make it more complicated. Today, AI is accelerating this trend even further.

Generating code is becoming almost effortless. Creating mockups takes minutes instead of days. Entire applications can be scaffolded in an afternoon.
These are incredible advances, no doubt, but when creation becomes almost free, there’s a subtle danger: we stop asking whether something should exist, because we’re focused on how quickly we can build it.

It’s easy to generate another feature.

It’s much harder to decide that a feature shouldn’t exist at all.

The same applies to user interfaces. Every additional button, every extra menu, every configuration option adds a tiny amount of cognitive load. Individually they’re insignificant. Collectively they become the reason software feels bloated.

The constraint isn’t writing code anymore.

It is the lack of intention.

Film photography taught me that limitations can improve quality because they force intention. Perhaps the future of software isn’t about who can generate the most code, but about who can exercise the most restraint.