On Writing Interfaces Well
Designers need to be good writers.
(on Signal vs. Noise)
Designers need to be good writers.
(on Signal vs. Noise)
This article was originally published at netmagazine.com. With their site in flux, I’m republishing here for posterity.
For the past several months at 37signals, I’ve been working on a new app called Know Your Company. At the beginning of the project, we had a lot of ideas, but we weren’t sure if they would gel into a cohesive product or not.
To find out, we built a functional prototype. During this phase, I stayed mindful of how I approach design problems. I wanted to forget my past tricks, build things better and faster, and try crazy stuff outside of our comfort zone. Here are a few tips I picked up along the way.
When you’re first starting out, the sky’s the limit, which is both exhilarating and overwhelming. Narrow down by identifying the core of your idea. What’s the one thing that’s so important, the project couldn’t exist without it? That’s what you should work on first. Start exploring and see if it even has legs. If not, regroup and start anew.
Conceiving ideas is hard and fiddling is easy, so you might lose your mojo by working on unimportant details too soon. Be disciplined, focus on capability and avoid distractions that slow down your progress.
We fell into this trap. We accumulated too much styling in an early version, and started wasting time debating it. Realizing our folly, we switched the entire UI to plain black and white to ensure we were working on the real problems.
Once you have distractions under control, play it fast and loose. Try your wildest ideas first. You can always fall back to something more conservative if they don’t work out.
We always like to experiment with weird elements — interesting shapes, animations, colors, or layouts. Forget what’s been done before and do something different. Look for real world inspiration.
Ideas build on themselves. One idea leads to another, and suddenly you have a diverse pool of things to try.
Often these evolved ideas are stronger than your first ones, so don’t be afraid to change course for a few days. You might end up with a final set of features that’s entirely different than your original vision.
Many early explorations are junk. That’s healthy. At one point we trashed thousands of lines of code. Don’t get attached to what you already built - be critical, let it prove its worth, and relentlessly cut anything that isn’t working.
When you’re working on a production app, optimization and the Don’t Repeat Yourself principle are important. But for a prototype, some duplication can be beneficial.
But maybe next week we’ll decide that messages should look or work much differently than notes. Or we might axe the messages feature altogether. Then all that optimization work was pointless.
Keep things decoupled until you’re certain they’re sticking around.
A prototype should be as real as you can make it, but don’t go nuts. If something is too hard to build, stub in examples and get things as close to real as possible. (My early measure of “too hard” was anything that took more than an hour or two to figure out.)
As an example, at first we didn’t build authentication into the prototype, we just pretended there was a logged-in user.
Working on new stuff is fun, but there’s also no obvious deadline for when you’re done. So keep hustling and cover as much ground as you can. If you hit a lull, get out of it quickly by reconvening and deciding what’s next.
I also stayed motivated by watching my daily commits. I like to see a lot of progress every day, and Github’s profile page is great inspiration for keeping the streak going.
When you’re moving fast, trying ideas, cutting features, and stubbing in examples, things can get messy in a hurry. Take occasional chances to weed the garden.
We like to keep a “Chowder” list in Basecamp for minor problems that need attention. It’s the perfect list to tackle when your creative juices are tapped out, or if you’re waiting for someone else to finish some work before you can move on.
At some point, the prototype needs to get real. This time we waited a little too long and had polished too much before calling in a programmer. This made it overwhelming for him to jump in cold. A good lesson learned – prove the concepts as fast as you can. If you’re confident the idea is strong, then get to work building with a real production crew.
So that’s what I’ve learned this time around, but the creative process remains a mysterious beast. What tips do you have for taming it?
My grandmother died 17 years ago, due to complications after heart surgery. I was 16 then.
A few days ago, my mom gave me a letter that grandma wrote to me before her surgery. I didn’t know this letter existed until now. Receiving it almost 2 decades later, as a grown adult with his own family, somehow made it even sweeter and more impactful — a shot directly to the heart. It’s the best letter I’ve ever received, and some of the best advice. Though it’s a private note, I wanted to share her wisdom with you too.
That last letter you wrote to me was so wonderful. But then, you have always been wonderful and dear to me. I know that you know this -
I wish for all 3 of you happy years ahead, and compassion and caring and faith in others and yourself. Love and be a caring and dear son as you have always been. For your closest family will be the strongest and most loving part of your life, including your wife and kids to come. Peers come and then go. Though it seems they will always hang around, somehow this isn’t the case, and within a fairly short time they are scattered here and there. So it is your family who will always be in your corner.
And so will I, from some far off star!
I love you
Love - Gramma
My daughter is an intense person. She’s curious and imaginative, introverted but outwardly compassionate, wise but silly, and deeply emotional. In her four short years, she has taught me more about my own life and character than I will likely ever teach her about hers.
But all those wonderful traits don’t come without a cost. Her sensitivity leads to frequent bouts of worrying. We don’t live a particularly stressful or troubling life — as careful guardians of her well-being, we’re purposeful about limiting her exposure to grown up problems.
So her worries are largely focused on simple matters. When she was younger and lost a toy, she jumped to absurd conclusions: “Is it under the house? Under the fridge? Is it in a tiny corner? In a vent? In the wall?” She worries that her mother has left the house without her knowing. She worries that her betta fish has died when it’s not moving. She worries that the stuffed animal she wants will be sold out. She cares about everything, even the flaked-off bits of polish from her painted fingernails, so she must carefully save them from an uncertain fate. And the list goes on and on.
These issues aren’t uncommon. She’s learning to manage her feelings and her level of control over her environment. These are healthy steps that will help her cope with bigger problems later.
But helping her through this phase has made me reconsider what we think of as “grown up problems,” and how we handle those problems. Trivial worries don’t go away with age, they just multiply. Adults worry about a tremendous number of things, many of them far more insignificant than the lost toy that’s theoretically stuck under the refrigerator.
Think of all the things, big and small, that probably concerned you today:
…and THAT list goes on and on, and on…
How do we deal with these worries? Some, we internalize. Others, we act on. And some, we need help solving. But regardless of our ability to manage them, why do we allow this crap to consume and distract us every day?
As pompous adults, we assume that our age and experience has granted us a righteous view of the true world. We’re eager to instruct our kids to get over their childish nonsense and join our reality. And then we teach them how to be agitated about unkempt lawns, baseball scores, physical appearances, and cell phones.
This is bad. Child worldviews are open ended and full of ideas and wonder. Adult worldviews are cynical and full of pointless bullshit.
For now, I’m going to be critical about what worries me and occupies my mental attention. I’m sure the kid will teach me a thing or two about what really matters and how I should feel about it. In the meantime, I’ll be right there with her in child world, for as long as she’ll allow me to visit.
Once in a while I’ll empty out my Pocket and share some things you might like.
A guy named j.viewz plays Massive Attack’s Teardrop with vegetables.
Artist Michael Guidetti shows you what the guts of the Internet would probably look like if you cut it open. Hit Refresh a couple of times. yyyyyyy.info
The New York Times explains why you eat shitty food.
A 5-year-old might be Jackson Pollock or just equally good at making nice looking paint splotches. Hard to say.
Squishy CSS toggle buttons make you want to push on your monitor.
Racket reminds me of the good old days of the web, when Surfstation was king and people made kickass dystopian space collages.
How programming sets you free.
(on Signal vs. Noise)
Morning is a dreadful sight
My groggy brain be stale
Afternoon could be alright
But still to no avail
I try to write at dinner time
After dinner no such luck
The child’s making sounds
Evening time is plenty fine
I’m feeling so much fitter
Regretfully I realize
I wasted time on Twitter
At last I’ve time to grab a pen
And sort out all my thoughts
Too bad it’s after midnight now
The words are mostly blots.
I finally finished a new website, and launched this here blog you’re reading.
I made my last site in 2010. Back then I was freelancing, building a portfolio, and obsessing about tracking my various Internet detritus. My site was always my best outlet to fiddle with some tech and design ideas.
Since then, I found my dream job and I’m now quite satisfied with my tech and design fiddling. My 2010 self was no longer doing a good job of representing my 2013 self.
So when I set out to do this new site, I made a list of Lesses and Mores. Here they are.
I don’t need or want a portfolio of past work, so it’s all gone (mostly.) I picked the last two things I liked and featured those.
My former love was Symphony. I still think it’s wonderful for big projects, but I don’t want to be fussed with content management anymore. To that end I switched to Statamic, which is pleasant and made by some swell dudes. No database. Posting any changes instantly via Git. Easier.
I killed my old separate domains (sorry, rocketfoo.com) and brought everything under one roof.
The site had to be bold, colorful, and fun, or I wasn’t going to stay interested in finishing it.
I took out everything extraneous. No logos. No navigation. No fancyzoom. It doesn’t even have my last name. It’s one page. The URL is really short. Just read the one page and move on. It’ll take you two minutes, or maybe five if you’re a masochist and you click on everything. If you enjoy it, follow me on Twitter. That’s it.
You will notice the same focus here. These posts have no date, no categories, no bullshit. Just posts.
I toyed with making the blog the main site, but I don’t have a good track record of keeping up blogs, and that’s why this is a separate site. But I have a lot of ideas for writing, and I’m excited to have my own place to share them.
Sometimes I might cross-link my SvN posts here too.
So there you have it! Welcome, and please come back again some time soon.