Solving for f()

Every once in a while a designer writes an article that totally changes the way I think about something.

One example of this is Justin Mezzell’s How I Work with Color [sic]. I was doing a lot of branding and a bit of illustration at the time, so it had a big impact on my process. I owe my ability to create a cohesive colour palette to that post.

Basecamp designer Ryan Singer recently published an article called Products are Functions. Though it details a much different idea, it made me step back and reconsider how I work in the same way Justin’s article did.

Ryan’s concept is pretty straightforward.

Recall the definition of a function: some input gets transformed into an output. You have a function f(). You run x through it and you get f(x) = y.

The user starts in some circumstance x. Whatever product or solution they apply is a function f(). Applying the product to that circumstance f(x) produces a result: y.

He then gives an example of how this function can be applied to user feedback — in his case, a customer request for a calendar feature — to uncover the real problem and desired outcomes.

It’s that anecdote that really drives the analogy home. In fact, I thought it was such a good, simple example that I paraphrased the story to exclude any technical bent and shared it with our support and customer success teams. A lot of requests make it to me phrased like ‘I want a calendar in Basecamp.’ Hopefully this insight will help the wider team better understand why we need to dig deeper.

As for myself, I’ve printed Ryan’s function and taped it to my computer monitor. Now when faced with requirements and requests, I’ll be able to determine my x and y and remember to solve for f().