Why aren't we living in Bret Victor's world?
Discovering Bret's principle of immediate connection
This is about one of those videos that creates an involuntary, audible gasp, not just from me, but the audience too. That lovely ramp up of emotions from “oh…oh wow… shit…holy shit”. The video from 2012, shows futuristic ways of building software. Not the Termintor/AI-fueld-I-Robot stuff, but the oh shit this is how we should be building all our stuff.
Back in the late 2010s I was a Frontend software developer — the guy who makes the buttons on websites. And I came across a video by Bret Victor titled “Inventing on principle”.
Bret explores the philosophy of using a principle to guide where you put your focus. Taking software building as his example, he explores how we could immediately see the changes we make to the program. From visualising the pixels as we type out code, to recording and projecting future states, like where Mario would jump if we made is bounciness, more bouncy (yeah, it’s cool). Bret kept pushing on these conecepts…
Once exposed to these ideas, it is hard to be satisfied with less. I started to go down the Bret Victor rabbit hole. Each video has working prototypes of the ideas he was sharing, and his narrative of “what ifs” kept building. Leading to what I believe will be his crescendo, DynamicLand (such a lame name, though). A shared space, where people work with software by manipulating the world around them (using paper and stuff).
I’ve kept his ideas, like exciting little treasures in my mind, as I’ve gone about my day. One principle in particular keeps bubbling up. Immediate connection.
You should be able to get immediate feedback on the creations that you make.
It’s a lens to view the world in. A question that’s fun to ask about the problems in your or my day → Why can’t I change that, how will I know I’ve made a difference?
Let's talk about immediate connection. Or actually, let’s talk about its shitty cousin, indirect feedback.
You’re designing a billboard on a big public road. You’re basically famous, congrats! You sketch out ideas for your burger brand, then diligently work in Photoshop until it’s baked to golden perfection, you can smell it on the screen. A couple hours later the signboard people receive your email with the artwork and begin building. Two weeks later, they begin plastering your creation on the billboard. Waking up extra early, you can’t wait to drive past it. Racing your car that morning, you see it ahead. There it is, and the grey text colour is washed out. Damn. Its so hard to read! Back to Photoshop I guess (you wish).
Working on the computer is not the same as painting the physical sign. It is a proxy for the real thing. A tradeoff is made, where you get to iterate quickly and cheaply on the computer instead of slowly and expensively on the real sign board. But the flip side is that you’ll never be 100% sure about what you’re actually making. You won’t have that connection.
What does ideal look like in this situation? Well, I imagine sitting across the road from the billboard, on a laptop. Every stroke in Photoshop, shows up on the billboard. Immediate connection.
Working in a studio somewhere for a signboard design makes sense, its an okay tradeoff, its comfy in the studio. But for stuff already on my computer?
Like why do I have to push a dozen buttons, then five more buttons to get one thing to work? If I want to see a variation of the website landing page, changing a single word , I have to
create a Jira ticket (need to track the work)
use a half-dozen sentences to describe the change
a developer has to go into GitHub, modify the text, push it as a commit
which goes through a Ci/CD pipeline before eventually…
…updating the servers…
…resulting in my one-word change.
This is the real world I inhabit.
There is a very good reason for each one of these steps in the process, but my God this is not the way it should be. Simple things should be simple and we are far away from the ideal way of interacting with machines. The power is there, the ideas are there but we’ve fallen into the trap of accepting the status quo.
Before the computer mouse, we had terminals and text-based commands. We couldn’t touch the thing right in front of us, we had to type things in to get stuff done. Before screens, we had to wait as the printers hummed, just to see what the output was.
The older established ways of doing things were not terrible. But they’re not the only way.
Today I’m a Product Manager.
And feeling the connection I have to my work is anything but “immediate”.
Writing product requirements, juggling priorities. Waiting for features to be released. Whoever invented the word “sprint” (the Agile folks) must be rolling around laughing, as most companies treat it like a marathon. A former boss coined the grind as “Sprint fatigue”.
But then I realised what it is we do, we make products. And people use them. When I need immediate connection, all I have to do is phone (or realistically, zoom) a customer. And I feel immediately better.
What do you wish you had an immediate connection to? That you haven’t thought about in a while? Tell me, I’d love to know!
Fin.
PS: Here is the Inventing on Principle talk
Technology changes quickly, minds change slowly – Bret Victor.
💡 James Clear (of Atomic Habits) thinks Bret is cool too… https://jamesclear.com/great-speeches/inventing-on-principle-by-bret-victor
Thanks
!