Dogfooding
This is the long-form version of a thread I posted on Twitter on January 2022.
I’ve been thinking a lot recently about dog-fooding, the life cycle of an idea, and how we turn customer feedback into shipping products. And I thought I’d share a story about how a feature we all love and enjoy came to be…
Long time ago, when dinosaurs ruled the Earth, we used ancient tools to perform rituals on our pixels and turn them into digital design. One of those tools was Macromedia Fireworks. And we fucking loved it.
This was 20 years ago. But even then, we liked to spend our time thinking and designing, not repeating shitty tasks time and time and time and time again… And Fireworks was amazing for that.
A sufficiently motivated lazy person could automate repetitive tasks easily in Fireworks, using its History panel to turn a sequence of steps into a batch command, by saving them to a file. But there was more (there’s always more, it turns out…)
If you opened a batch command file with a text editor, there was something there that was more or less readable, and resembled English, but in a weird way. It was… JavaScript…
If you were minimally* proficient in JavaScript, you could tweak the code and bend it until it did what you needed.
- minimally as in “copy code from Google and massage it until it works.”
Over the years, I had accumulated a collection of tools that I used daily. “Daily”, as in “hundreds of times per day”. I was an expert at the craft of reducing repetition and bringing speed to my design process.
Because I can’t keep my mouth shut, I was always telling everyone about my scripts. And some of them were brave enough to use them. Even for production work. Daily.
Making these commands was fun, so I asked people to share their requests with me. We did not have Wordle back then, so this was a pretty good way of exercising the mind.
Then, one day, I got a very stupid request. I do not say this lightly. I’ve had dumb requests over the years, for multiple tools (I am a serial automator). But this was next-level, what-the-actual-fuck, are-you-out-of-your-mind shit.
I don’t have a precise date for this, but it must’ve been around 2007. And I will never forget that afternoon, when @kekoponte came to me, and asked:
“You know what would be cool? RESIZING OBJECTS WITH THE KEYBOARD”
So I thought “well this is stupid. But it’s also A CHALLENGE” So I made a bunch of scripts to do that. And they changed my life.
When you write code to perform an operation, you need to test it to make sure that it does what you expect.
And while testing the code, I got hooked.
One day in, I had to admit this was not that stupid after all.
Two days in, I couldn’t even remember what life was before keyboard resizing.
A week in, I couldn’t even design without those scripts.
Years later, when I started using Sketch, literally the first thing I did was port the resize commands from Fireworks to Sketch. They were so fundamentally useful, that @pieteromvlee made them a native feature the minute I showed him the code.
I like to think that this had something to do with me becoming a Sketch employee a few years later. But I digress. The point is, this was a fucking awesome idea.
It is so awesome, that most decent digital design tools today have a keyboard shortcut to resize layers. You can go thank @kekoponte for the idea.
There are multiple lessons to extract from this story. Here are some of the ones I learnt, which I keep in a safe and warm place in my heart:
- You might be an expert, and still have no clue how great an idea is until you test it.
- Dog-fooding is cool and all. But nothing beats listening.
- Being a genius sounds interesting. But being humble is way, way more useful (and a few orders of magnitude more fun).
That’s all for today. Please remember to drink water, eat your greens, and hug your friends and family. Life’s too short to spend it on arguments about design tools.