Food and Friction

17 March 2017

I'm staring at my plate. On it are two scoops of a fruit salad, mostly melon and grapes, with a pickle slice next to them.

It's the second day of uWestFest, the North American Umbraco festival.

Despite that pickle staring back at me, so far this event might be the best uWestFest to date from a presentation and interaction with other Umbracians standpoint. Held in the city of Denver with a two-day, two-track format, it has a great blend of technical and non-technical tracks. There's meat for experienced developers, and yet plenty of options for newcomers to the community and "non-technical" individuals in design and communication roles. Scandia, the agency responsible for the event, is outdoing themselves.

I am exhausted and ready to cry.

21 December 2016

"I'd like you to eliminate gluten and dairy from your diet."

I'm sitting on the examination table they make you wait on in a doctor's office. It's a singular experience as an adult. My feet dangle, leaving me kicking at the air and feeling like I'm four years old all over again. It's covered in paper for sanitation reasons, so it crinkles under my butt every time I shift.

I suffered from severe asthma as a young child, so I'm accustomed to visiting the doctor. It's not an overly fearful experience for me, even when I'm dealing with an undiagnosed ailment that brought me in to quell my hypochondria. But it's not a comfortable experience either.

So here I am, trying not to fill the room with crinkling sounds. I've come for a follow-up session regarding stomach pains I've been experiencing off and on for months now. And now my doctor is proclaiming the next phase of handling the issue.

No gluten. No dairy.

In America, a large part of our cuisine contains either dairy or wheat, if not both. I enjoyed craft beer and love visiting the local breweries. I like sandwiches and burgers. Waffles. Imported cuisines like teriyaki and Indian curries like korma.


I sigh.

"You're the doctor."

17 March 2016

In December I knew that such a radical diet change would be challenging. Much of what I ate fit in those categories, so I would have to either get often inferior substitute ingredients or change my pattern of eating altogether. Eating out would require research, but thankfully I live in Bellingham, WA, where hipsters and diet fads come to roost.

What I didn't consider what how exhausting this change would be.

In Denver, at the conference and the surrounding events, I'm in the middle of striking out. And it was culminating in a mostly empty plate dominated by a pickle.

It wasn't this one moment alone, though. This was the crest of a wave of moments, small and large, that had dogged me since arriving in Denver two days earlier. I had been experiencing setbacks and challenges on the simple task of eating for days, points of friction.

Each obstacle, even though eventually surmounted, was slowing me down. This pickle was the final straw. I was ready to stop.

Wednesday night I was with a crew that visited several breweries. Beer is right out for me, and they didn't have any non-beer adult beverages at any of the locations we were at. I'd sip water as my peers got pleasantly buzzed. Friction.

Wednesday dinner at the pre-party we're at a place that has cider. Finally! Except after my first pint they tell me they're out. And there's hours left in the pre-party. Someone buys nachos for the group to share. It's covered in cheese. Friction.

The Thursday lunch at the conference had "options" for me, by which I mean an undressed green salad and some chunks of unadorned meat. Hey, it's food. I'm not starving. But it's not an experience like everyone else is having around me. Friction.

Thursday afternoon, the event's "afternoon snack" contained pretzels, cheese dip, and finger sandwiches. Friction.

Thursday night I ate a hot dog without a bun. It was a good hot dog, but I paid full price at the artisinal hot dog joint for what I could have received from the butcher at a considerable discount (Fellow food allergy or vegan friends can attest to the joys of spending full price for half or less of a menu item due to having to subtract ingredients.) Friction.

But this moment. Friday, lunch, I'm literally staring at two scoops of melon and a pickle. I've finally come to a full stop. I am done. I just want to go. I want to eat without effort or complication. I'm exhausted because not a single meal has been without a challenge, and keeping up with everyone, enjoying the event with them, is becoming harder and harder.

The Value of a Little Extra Effort

Then one of the event's catering staff put this lovely chicken salad down in front of me.

I don't always ask for help when I'm having a food crisis. I've had an uneven success record on getting help from a restaurant's staff. Sometimes I'm offered food but not a meal.

"We can get you some steamed vegetables on rice."

Buddy, I can get that at home. For one tenth of what you'll charge me.

There's sometimes so much friction I experience in just communicating my challenge, and feeling like I'm causing problems for the servers in the process, that I've grown adverse to even speaking up.

But at this meal, I did. I asked, politely, if they had an option for someone with gluten and dairy allergies. A simple green salad, maybe.

I was in luck. The event's caterers are the university's school of hospitality. They're well trained and they immediately ask for details on what I can't eat. They then promise to bring me something in a few minutes.

I expected a simple green salad. Maybe with some shredded carrots. They brought me a meal. Grilled chicken and avocado, a tasty selection of vegetables. A raspberry vinaigrette. It's tasty. It's filling. It gets me going again.

It took them extra effort to make me feel welcome and able to have the same eating experience as everyone else. But it did me wonders, took me out of my emotional tail spin, and rallied me to be focused for the excellent sessions in the final hours of the event.

I've been thinking a lot about that meal in the context of my experience in Denver in the month since.

I learned a lot. At least two of my fellow attendees have spouses with Celiac disease. As uncomfortable as a meal of gluten can make me, it's far worse for them with much higher sensitivity. Although I've been aware that such people are out there, I never really gave much thought to the experiences they have when they risk eating out of their own home.

People like that, or those with other severe allergies, are suddenly far more relevant in my mind. As are vegans or those with major dietary restrictions due to religious reasons. They all want to eat. They all want to enjoy themselves with friends on occasional meals out. And they should all be able to do so without friction.

Yet, for most of them, they know that unless they go to specific places that they may have to compromise, and settle for a limited menu (possibly with even just one token option) and a second class experience. Sometimes they may find that they can't eat at all.

They came for a meal, they have to put in extra effort just to find something to enjoy, and now they're stuck with a pickle.

Then, one day, you'll find a place that can handle your needs with aplomb and grace and tasty food. And it completely changes your experience.

When I'm at a restaurant that has considered the impact of it's menu on certain dietary restrictions, and chosen to highlight alternatives, and educate their staff on how to help guests with such issues, it's like a breath of fresh air. I can enjoy the experience along with everyone else without trying twice as hard for less. And in some cases, it takes so little effort for them to accomplish.

Food is a Metaphor

Most teams in our industry of web development take a great deal of pride in the experiences we create. The word "delight" is often used, but I think more honestly we want a frictionless experience for our client's users. We want as few barriers as possible between them reaching the website and accomplishing their objective, be it booking a holiday, listening to music, or reading about obscure 15th century poets.

And for those of us with experience and maybe a bit of talent, we manage to do that for most of our client's users most of the time. We're professionals, we have pride, and we have skills.

But despite this, I can't help but feel that in some ways most of these same teams are like the mom and pop restaurant where I literally can't eat anything on the menu. They aren't aware of specific challenges and problems that certain assumptions, shortcuts, or design choices in their products might cause certain segments of end users because they have no personal experience with, or even sometimes awareness of, those demographics and the challenges they face.

We want to make a first class experience for everyone, but we're not aware of everyone.

I can say this happens because over the past decade I've inherited projects from other teams that have had a number of issues, some small, some less so, that stood out to me as problematic for some users if left unresolved.

Here's a look at some examples:

Title or Gender Dropdowns

It can be very common for sign up forms to ask for the title of a user. Some forms ask about gender. It is, for me, still common to see choices that render down to "male" or "female", which can present a problem for users that don't fit neatly into either category. This isn't an article about the topic of gender in itself, but the fact is that there is a percentage of the population that for one reason or another isn't going to be able to honestly answer "M" or "F" for you, and when they hit this part of the form they're going to have some extreme discomfort at best.


The first solution that comes to mind is to drop the field. We tend to "over ask" in our registration forms, gathering data that isn't seeing any use other than appending a title in an email when sending out automated responses. But if we do need these fields, this article by Sarah Dopp offers more thoughts (and solutions) on dealing with this issue.

Name Fields

I've seen name fields that don't allow for any punctuation, including apostrophes or dashes. I've seen mandatory middle initial fields. I've seen relatively strict character counts allowing for only names of a certain length.

Now imagine you encounter one of these issues and you're an "O'Doul", or a "García-Carrión", or you have a long name, or you have no middle name, or you have no last name. (Yes, I've encountered that, more than once.)

You enter your name. You get the validation error "Your name is invalid."

Your name is invalid? What do you do? How do you alter your name to fit in the damn form, because apparently your name isn't good enough to fit the form's criteria?


If you're unlucky enough to have to deal with name fields in your forms (we all are), please consider reading Patrick McKenzie's Falsehoods Programmers Believe About Names. It's enlightening.

Strict Email Validation Rules

Email validation assumptions are about as inane and often incorrect as name assumptions. There's assumptions about valid domains. There's assumption that email can only be Latin characters. Both of these assumptions are wrong.

No matter how fancy your regex is, you're going to be blocking somebody from getting their email entered into your form.


So, take a page from David Celis and Stop Validating Email Addresses With Regex. Just look for the "@" and call it good already.

Non-Button Buttons and CSS Stripped :focus Pseudo-classes

I see entirely too many 'buttons' in JS web apps that are actually divs with click handlers attached. I also see the :focus pseudo-class stripped by CSS.

Both of these are going to cause points of friction for users who can't use a mouse or touchscreen to enter data. Whether it's a broken arm, hand mobility issues, or vision challenges, they need assistive tech to interact with your page. And non-interactive elements like divs given click handlers often can't be detected or interacted with. And tabbing to move between links is a lot harder when you can't see which link you're highlighting due to a removed :focus pseudo-class.

Mozilla Developer Network discusses in Using the Button Role the issues to think about when binding events to non-interactive elements, and the solutions. Patrick Rogers discusses the focuse pseudoclass and what to think about when styling (or unstyling) it in Utilizing the Focus Pseudo-Class in CSS.

JavaScript-powered pages with no scriptless fallback, even on relatively simple sign-up forms

Even in the Year of Our Lord 2017 there are users who will have limited to no JavaScript functionality. Often this is due to users with low-powered, low-cost devices with an Opera Mini browser, but it could be for any number of factors. Although there are some interactive experiences that can't be mimicked without the use of JavaScript, it's baffling when a simple one-field signup form is powered by JavaScript. Even if you're using it for some fancy interaction/response from the form, the failure to provide a basic form submission backup without the JavaScript is a curious decision.

I code in JavaScript every day, it's my primary responsibility. I use React and Angular a lot. So it's not always in my best interest to say "Use less JavaScript." I love JavaScript. But more thought on when we do so makes a lot of sense. Jeremy Keith writes critically about JavaScript a lot, his post Less JavaScript discusses the issue well.

The list goes on and on. (Insert Orbital reference here.)

It's easy to reduce a project down to a simple issue of budget. And since we're all interested in paying for mortgages or rent, it's not on the surface an unreasonable motivation to keep our blinders on and focus on getting the product right for "most" users.

After all, there is often a cost with fixing some of these problems. Teasing data into databases without being stricter on name entry. Talking the client into dropping a title field, or being more expansive in allowable fields. Coding a non-JS fallback for interactive features on your site.

Some, like simply using proper buttons when you're interacting with an element with a click, simply require attention and best practices.

But what I can say, from my own limited experiences with trying to eat these past three months, is that there's a human cost to every designed experience that doesn't account for the variations in the human condition. Each obstacle or workaround that a user has to deal with as they engage with a product is a point of friction. If they encounter enough friction, they stop using your product.

As makers of websites, from designers and UX to developers and marketers, we are problem solvers. Those of us with more experience behind us survived the browser wars and having to cope with the terror that was IE6. We have to make websites that run on 4k monitors and mobile touch screens. We have to make a query against a back office with dozens of thousands of nodes of content and make it give a response to the user in a fraction of a second.

We're good at solving problems, if not great. But we have to remember that not every challenge is immediately obvious to one, and isn't always a barrier to us or the users we normally think about.

So how do we improve ourselves as an industry? How do we ensure our customers a tasty chicken salad instead of a lone pickle, and come away happy with their experience?

In part, we need to get better at opening ourselves up to people with other experiences and limitations then our own, and listening to them. We need teams with diverse backgrounds, cultures, and capabilities. People who will see the problems inherent in a given implementation before you even think to ask if there's any shortcomings. We need to consult experts outside our fields and integrate their practices. We may need to charge the clients slightly more, or even accept slightly less profit.

As those involved around Umbraco, we pride ourselves in being part of a community, in being welcoming and helpful. Let's make sure to go the extra mile and ensure that extends to everyone, regardless of their challenges.

It won't just make us feel like better people, it will make us better creators.

18 March 2017

It's the day after uWestFest. Along with a handful of remaining Umbraco friends I've seen dinosaurs, vikings, and tons of sunshine. I've walked miles. A museum cafe setback earlier in the day resulted in me eating a hardboiled egg, sunflower seeds, and spinach as my only meal. The sun, the walking, and the limited meal has left me run down and heading towards empty. I'm ready to be home.

But we've found ourselves at a lovely little brewery in a corner of suburban Denver we'd stumbled onto by accident. A crowd of college kids are playing Cornhole on the side, and the patio is being served by a waitress in a cowboy hat. The sun is setting as we sat down, and I'm afraid to hope, grimacing at the thought of being cornered into another salad.

But two things perk up my attention right away. The first is a gluten-free bun option for their incredibly tasty-looking burgers. The second is a local gluten-free pale ale they had on hand, made with millet and buckwheat. I didn't have to negotiate for a compromise, or end up with another bare-bones salad.

It's easily the best meal of the entire trip. The burger is fantastic, tasty and dripping and rich. The ale soothes my parched throat, just the right amount of bitterness, and cooling after the long walk. All it took for the brewery to provide me with this experience was to invest in keeping some bottles and buns on hand.

We spend hours here, enjoying the atmosphere, the beverages, and the company of Umbracian friends we might not see for another year. And I'm able to participate as deeply and meaningfully as everyone else.

It's the perfect end to my trip.

Which Plate?

We're all craftsmen. There may not be the same visceral thrill of hitting "commit" on a git repo compared to polishing a newly finished chair, but in the end a website is a product that we hope our customers enjoy using.

We need to take more time to think about what that experience will be like for all our customers.

After all. Which plate would you rather be remembered for?

A pickle and some fruit

A pickle and some fruit

Chicken salad

Chicken salad

Kyle Weems

Kyle is a co-founder and editor for Skrift, where he does a good deal of the editing and makes uninformed opinions about which shade of pink to use that the others wisely ignore. He write code as a Lead UI Engineer at Tonic, is the lead keytarist for the band Moosewine (who have no current plans to release any music), tinkers endlessly with machine generation, designs quirky indie tabletop RPGs, and is (technically, if just barely) an award-winning cartoonist and journalist.

He likes his IPAs likes he likes his trees, reminiscent of pine.

comments powered by Disqus