I’ve been using software every day for almost 20 years. I use it to do my work, create things in my spare time, socialize, relax, and so much more. And if you’ve met me or been reading this site for a while, you know I have very strong opinions about how it should be designed and crafted. But by far, my strongest belief about software is that almost no one pays enough attention to the paper cuts. In the field of interaction design, a paper cut bug is “a trivially fixable usability bug”. The term comes from the Ubuntu team, which decided in 2009 to prioritize fixing lots of these niggling issues. GitHub followed suit in 2018.
Running up against a paper cut bug feels a little bit like getting a physical one: not the end of the world, but certainly unpleasant. These types of tiny annoyances accrete over time, especially when no one is paying attention to them. In a single day of using my phone, I encounter dozens of these minor bugs that each annoy me just a little bit, making the task I’m trying to accomplish just a little bit more complicated.
For example, I might notice a button that’s enabled even though it can’t do anything, or a form field that has a scroll bar even though there’s no scrolling content. The result is that I trust the software I use less. When software isn’t polished, when it’s full of things that feel like paper cuts, it becomes less joyful and more frustrating. It sucks all the opportunity for delight out of the room.
The more insidious thing about these bugs is that they’re rarely reported by users or caught by automated testing tools because they’re too small to complain about or too obscure to write tests for. Great QA testers can find and file these types of bugs, but they usually flounder at the end of a long backlog of new features. This means that if you’re an engineer on a piece of software, you’re the person who’s best able to notice and fix these bugs. Yes, you might have to convince your boss or your product manager to set aside some time every so often to do so, but I promise your users will be grateful, and your product will improve in meaningful ways if you do.
What kinds of things should you be looking for? How can we notice paper cuts when they’re such a part of our daily reality in every app we use? Here’s a list of some of the most frequent paper cuts I see. I hope it helps in your quest to smooth out the edges of your software—to paint the back of the fence.
Common Paper Cuts
Logouts: When I open the app, sometimes I’m randomly logged out for no good reason.
Inconsistent Copy: The text switches randomly between straight quotes and smart quotes or title case and sentence cases.
No Undo: I change something, the UI updates instantly, but there’s no way to undo the change, so now I’m out of luck if I don’t remember what I did.
Scroll Hitches: Scrolling lists cause the app to freeze up or drop frames.
Missing Options: The app is missing an option for my gender/pronouns or forces me to fill out a required field that doesn’t apply to me.
Lacking Accessibility. Some elements are missing labels for screen readers; the visuals have poor contrast, etc. (I gave a whole talk about this.)
Unlocalized: The copy and date/time formatting doesn’t match my language or region settings.
Typography: An element is improperly typeset, leading to inconsistent margins, cut-off descenders, or illegibility.
Strict Validation: Overly strict form validation prevents me from using the name I want to or including an emoji.
Flashes & Blinks: When things load from the network or disk, they flash or blink into place, or the content of the screen jumps around to accommodate them.
Loading?: Something is taking a while, but there’s no spinner progress bar to keep me informed.
No Empty View: A list becomes empty, and I’m staring into the void rather than at a nicely designed empty view so I know what I can fill it with.
Wayfinding: I can’t easily find Settings, Terms of Service, Privacy Policy, third-party code licenses, etc.
No Primary Action: The primary action on each screen isn’t differentiated or highlighted, so it’s hard to know what I’m supposed to do.
Dead Ends: There’s no way out of a screen or flow. Or there’s no way to cancel or delete my account.
Missing States: Buttons and list items don’t look any different when they’re touched, hovered over, or disabled, so it’s hard to know what state they’re in.
Where Was I?: The app forgets where I was when I reopen it or clears my selection when I go to the background.
Missing Animation: Rather than smoothly animating to a new state, the UI blinks and updates, like an unfortunate smash cut.
No Errors or Retry: When I try to do something, the operation fails without any error message or way to retry.
I challenge you to use your own app with fresh eyes on Monday morning. After an hour, are you pained by proverbial paper cuts? What are the bugs you’ve hit so many times in the software that you forgot they were bugs? You know you can fix those, right? Well, get to it.
Filed to:
Tech
•
Tagged:
#bugs,
#engineering,
#list,
#software
This is a list of things you’re allowed to do that you thought you couldn’t, or didn’t even know you could.
I haven’t tried everything on this list, mainly due to cost. But you’d be surprised how cheap most of the things on this list are (especially the free ones).
I love this list from Milan Cvitkovic reminding us of the things we’re allowed to do but that we often forget are options. Some favorites that I’ve actually done include: hire a tutor, buy goods/services from your friends, get couples therapy, hire a coach, cold contact people, and fly to people for in-person meetings.
Filed to:
Culture
•
Tagged:
#advice,
#list,
#money,
#time
I’m a completionist by nature. I love checking everything off my to-do list for the day. When I discover a blog, podcast, or webcomic I love, my curiosity pulls me toward consuming its entire backlog. I spend hours spelunking the archives, finishing every last morsel of media.
Growing up, I attended Catholic school and was taught by nuns to finish my lunch because there were children starving halfway across the world. I was taught to complete one book before starting the next. Taught to give equal attention to every station of the cross.
This type of perseverance can be a valuable tool in one’s toolbelt. There are moments in life that call for grit, when it’s crucial to push through discomfort and disinterest. But fetishizing finishing isn’t nearly as helpful as it feels. Just the act of completing something isn’t virtuous by itself—the context matters.
We are living in a time of ceaseless information overload and ever-expanding choice. Thousands of photos are posted to Instagram every second, 500 hours of video are uploaded to YouTube every minute, and millions of books are published every year. You can’t consume all that “content” even if you want to. Your time and attention are limited resources. In this context, a better skill than finishing is knowing when to finish something and when to abandon it.
I’ve gotten better at this over the years. I’ve become more attuned to what my body and brain are telling me about the future value of what I’m currently doing. These are the questions I ask myself when deciding whether to stick with something or bail:
Am I enjoying it?
Is it feeding my mind or my heart?
Will it help me accomplish something or solve a problem?
Will it matter in a year? Five? Ten?
Is there something I’d rather be doing?
Have I had enough?
Might it be better to set it down now and pick it up again later?
What’s the worst thing that would happen if I give up?
These questions help pressure-test the idea of continuing to follow my current trajectory. And sometimes their answers reveal that I should have pulled off the highway a few exits ago. But no matter how close to the end I am, it’s never too late to stop.
I want to give you permission to quit the thing you’re trying to finish that’s not working for you anymore. It could be a New Year’s resolution you regret making, a book that all your heroes recommended but you keep bouncing off, or even a side project that doesn’t bring you joy anymore but that you keep maintaining out of a sense of duty. Whatever it is, you’ll know it, because just the psychic weight of it being unfinished is stressing you out.
You don’t have to complete everything. You don’t need to be in it for the long haul. Quitting something doesn’t make you a quitter. Instead, it makes you someone who knows their worth and knows what they want. Letting go of one thing can give you space to start something new that will serve you better. And if you regret your decision, it’ll still be there when you’re ready to pick it up again.
Filed to:
Culture
•
Tagged:
#advice,
#life,
#media,
#wisdom
In May 2010, I was offered a job at the Apple Store at the King of Prussia Mall, one of the biggest shopping destinations in the United States. It was my first and only retail job, and in my three months working there, I became the top-selling salesperson (or as Apple called it, “Specialist”) on the sales floor (or as Apple called it, “The Red Zone”). I did this by sharing my passion, knowledge, and care with every customer. But I also did it by Googling a lot, by installing lots of apps for customers to check that they’d work, and by getting a little better every day.
My training for the job involved being clapped at a lot while donning the signature blue T-shirt in a room full of folks learning how to sell iPhones and iPads and create Apple “customers for life”. Our teacher was a blond-haired, blue-eyed surfer-turned-computer salesman named JB who wore white earbuds as a necklace. As he taught from the printed material and screened Apple videos for the class, he kept harping on one point that’s stuck with me in the decades since.
I don’t know, let’s find out
JB taught us that there was no way we could know everything there is to know about every Apple product, let alone every app that runs on them, and every way they can fail. He taught us that rather than making up an answer, guessing, or shrugging our shoulders, we should instead say, “I don’t know, let’s find out”. Admitting that we didn’t know was the first step. Then, we were to find out together with the customer by walking over to a Mac and looking up the answer or pulling in another employee who might know the answer.
This one sentence from a retail training manual contains many insights that I’ve relied on every day since in my personal and professional life:
It’s okay not to know because we can’t know everything, and we shouldn’t expect that of ourselves.
It’s better to admit our ignorance than get things wrong.
Even if we think we might know, it’s okay to double-check because getting it right matters.
People trust us more when we admit our shortcomings.
Learning is better together.
People love to see and share in the process of discovery.
People trust information more when we share the way we found it.
Memorizing isn’t as important as knowing how and where to look things up.
Fuck around and find out
This is another similar phrase that’s become popular since 2020, especially sarcastically in leftist circles. But it’s legitimately valuable advice because sometimes, no amount of Googling or reading about a topic will get you to the answer. Sometimes, trial and error is the only way to learn. By experimenting or fucking around, we learn together by playing together. We do a little science and discover something new about the world that we can share.
Many of the answers to life’s daily questions can be uncovered using these thought technologies. Are you faced with a tricky question in an interview for a new job? Try being honest with the interviewer that you don’t know the answer and explain how you’d research it in detail. Not sure what your gender is? As Mattie Lubchansky suggested on a recent live episode of the Gender Reveal podcast, “fuck around and find out”. Try on makeup, a new set of pronouns, or a binder, and see how it feels!
Let’s make better mistakes tomorrow
Just because you don’t know something today doesn’t mean you won’t know it tomorrow. If you cultivate an attitude that faces the unknown with curiosity, sharing, and experimentation, rather than blame, fear, and stubbornness, you may get a bit smarter every day. You’ll learn much more by remaining open to new discoveries and sharing that journey with the people around you, at work and in the rest of your life. And that continuous improvement, or kaizen, will accumulate like compound interest. It will, in the words of Mike Monteiro, let us “make better mistakes tomorrow”.
What don’t you know right now? What do you want to find out? Let’s do it together.
Filed to:
Culture
•
Tagged:
#advice,
#apple,
#knowledge,
#learning
For decades, email apps like Gmail, Outlook, and Apple Mail have all included a button to mark a message or thread as “unread”. But why? The software knows the message has been read; why is it allowing the user to override that truth and rewrite history?
There’s a simple answer: it’s useful! The unread state of messages in an email app controls things like the number next to the current folder, the application’s badge, and the status indicator next to a message reminding you to look at it. A simple button to say “Oh yep, I know I clicked into it, but I didn’t actually read it or fully process it yet” is a great affordance for users to manage their communications that has stood the test of time. While some argue that flags should be used instead for this kind of message management, they miss the point that flags cannot and do not convey, to either the user or the software, the same meaning as a message being unread.
“Mark as Unread” has been so successful and well-loved in email that it’s been copied by many messaging apps like Facebook Messenger, WhatsApp, and Instagram. And its utility in a casual messaging context is much the same in the slightly more formal email context.
Let’s say you’re riding the bus and you open a message from a friend, maybe asking you about your plans for the weekend. You have to respond to that but maybe it’s your stop already or you don’t know yet. But if you don’t say anything now, you might forget to respond and then you’ll look like a bad friend. Not to mention you might miss out on some weekend fun.
Messages routinely get forgotten and go unanswered. The missing “Mark Unread” button has no doubt caused countless accidental ghostings, avoidable arguments, and missed opportunities. And its lack has likely made life more difficult for users with conditions that affect memory or follow-through, like ADHD and depression, who may not be able to respond in the moment and have no easy way to record their intention to do so.
So why hasn’t Apple added this feature? If I put on my Product Manager hat, I can think of only one argument that’s likely been made internally to keep this wildly popular feature out of the app. It goes like this: “If we add a button that says mark as unread, wouldn’t users expect that it would unsend their read receipts?”
This is a compelling argument that I was initially sympathetic to, but looking deeper, this just isn’t a problem in the real world. Outlook, which supports both read receipts and Mark as Unread, seems to cause no significant user confusion in this regard. The read receipt exists for the sender, and the local unread status is for the recipient. Simple as that.
Even if this slight ambiguity is too much for Apple to handle, they could instead incorporate another feature from Mail instead: flagging. Allow users to flag a conversation (or an individual message) and then see all their flags in one place, when they’re ready to respond.
Whether Apple chooses to implement this feature as “Mark as Unread”, flagging, or something else entirely, they should implement it, and soon. As more of our communication, both personal and professional, moves online, it’s never been more important that we keep our commitments to each other, that we respond when we say we will, and that we keep dialogue flowing. We’ve long had a great tool for doing exactly that; now that took just needs to meet users where they are.
This article has also been filed as feedback for Apple at FB9838778.
Update: After posting this article, a friend at Apple reminded me that one of the first things he did when he got to the company was try to file a radar for this missing feature. Except he didn’t have to because he found an open bug from yours truly filed in 2009. I’ve been asking for this feature for 12 years and I don’t plan to stop any time soon! Maybe I should try this approach next.
Filed to:
Tech
•
Tagged:
#apple,
#design,
#feature,
#feedback,
#imessage