It’s easy to manipulate CSV files with basic command line tools until you need to do a join. When your data is spread over two different files, like two tables in a normalized database, joining the files is more difficult unless the two files have the same keys in the same order. Fortunately, the xsv utility is just the tool for the job. Among other useful features, xsv supports database-like joins.

Suppose you want to look at weights broken down by sex, but weights are in one file and sex is in another. The weight file alone doesn’t tell you whether the weights belong to men or women.

Suppose a file weight.csv has the following rows:


and a file person.csv has the following:


Note that the two files have different ID values: 123 and 789 are in both files, 999 is only in weight.csv and 456 is only in person.csv. We want to join the two tables together, analogous to the JOIN command in SQL.

The command

    xsv join ID person.csv ID weight.csv

does just this, producing


by joining the two tables on their ID columns.

The command includes ID twice, once for the field called ID in person.csv and once for the field called ID in weight.csv. The fields could have different names. For example, if the first column of person.csv were renamed Key, then the command

    xsv join Key person.csv ID weight.csv

would produce


We’re not interested in the ID columns per se; we only want to use them to join the two files. We could suppress them in the output by asking xsv to select the second and fourth columns of the output

    xsv join Key person.csv ID weight.csv | xsv select 2,4

which would return


We can do other kinds of joins by passing a modifier to join. For example, if we do a left join, we will include all rows in the left file, person.csv, even if there isn’t a match in the right file, weight.csv. The weight will be missing for such records, and so

    $ xsv join --left Key person.csv ID weight.csv



Right joins are analogous, including every record from the second file, and so

    xsv join --right Key person.csv ID weight.csv



You can also do a full join, with

    xsv join --full Key person.csv ID weight.csv



Related posts


About The Author

Suzanne Scacca is a former WordPress implementer, trainer and agency manager who now works as a freelance copywriter. She specializes in crafting marketing, web …
More about

Have you ever looked at the design techniques and elements you use to build mobile apps and evaluated whether or not they’re still useful or relevant? If you haven’t done this in a while (or ever), stop what you’re doing and read this. We’re going to look at the 5 things mobile app designers should stop doing so they can create more streamlined and positive user experiences.

I move to a new state every two to three years, so it’s important for me to live “light”. Every time I prepare to move, I go through the “Do I really need to keep this?” exercise. Although I’ve been doing this for almost 20 years, it never gets any easier. I wonder things like:

What if I sell my bed and never have a comfortable night’s sleep again?

What if I get rid of the fancy dress I wore once but might need for some hypothetical future event?

What if I decide to start baking cupcakes again and don’t have my cupcake tin anymore?

It’s easy to get attached to things when they served you well at one time or another. But if you take a closer look at the “stuff” you’ve accumulated, you’ll realize that a lot of it has lost its usefulness along the way.

I think it’s important to run through a similar type of decluttering exercise in the work you do as a designer. That way, the apps you build always look fresh and modern instead of weighed down by antiquated features or functionality that at one time had a purpose.

Before you start charging ahead into the new year, take a moment to reflect on how you approach mobile app design. If you’re still holding onto components or functionality that no longer serve any purpose or, worse, intrude on the user experience, it’s time for a change.

Want some help? I’m going to run through some elements you can afford to scrap from mobile app builds in 2020 and beyond.

Related Reading on SmashingMag:

1. Harmful FOMO Elements

You know why marketers, influencers, and designers use FOMO (i.e. it can be really effective in boosting sales). However, you also know how damaging it can be for users’ mindsets (not to mention the distrust they feel towards brands as a result).

You could avoid FOMO altogether, but it’s a tricky thing, isn’t it?

You know that (when left to their own devices) mobile app users may forget that your app even exists on their phones without something to pull them back in. But it’s too easy to go overboard with FOMO-inducing components.

For example, this is ToonBlast:

ToonBlast home screen countdown timers
The ToonBlast gaming app has numerous modules and countdown timers to induce constant FOMO. (Image source: ToonBlast) (Large preview)

The home screen is incredibly overwhelming. More than that, those ticking clocks (there are four of them) are a nightmare for users who can’t help but click on things they feel they’re going to miss out on by not doing so. And for users who can ignore the timers, they won’t be completely unaffected by them either. The game displays pop-up reminders for each of the countdowns. It’s impossible to ignore them.

This is FOMO at its absolute worst.

Even if reminders for each of the countdowns were sent as push notifications instead of disruptive pop-ups, it still would be bad for the user experience. There are just too many things competing for the user’s attention and each of the clocks is like a ticking time bomb.

I know it might seem like giving app users more reasons to engage is a good idea, especially if you’re struggling to attract and retain users. But if that’s really an issue, then you need to work on improving the core product first and foremost.

Going forward, I think we’d all do well to move away from harmful FOMO elements and embrace more simplified and stronger core products.

If you’re not sure what that looks like, I’d recommend turning your attention to Instagram:

Instagram FOMO-free
Instagram is working on removing FOMO from its app. (Image source: Instagram) (Large preview)

Instagram is a simple and straightforward product. Users turn their news feeds into personal curations of people and accounts they want to follow while sharing their own content with the world.

Now, Instagram isn’t completely FOMO-free as you can see from the Stories bar at the top of the page. However, there’s nothing really urgent about the way these stories are displayed. They don’t take up much space in the app (unlike the way Facebook handles it, for instance) nor are there any screaming alarms that say, “Hey! So-and-so’s story is about to expire! Watch it now!”

That said, Instagram is working to remove the harmful effects of FOMO in its app by doing away with like counters and cracking down on influencers and companies that don’t mark ads as such. If you want to create a strong yet simple product that keeps harmful FOMO elements out of the picture, keep this one on your radar.

2. Out-of-Context Access Requests

Unlike mobile websites and PWAs, mobile apps have the ability to get in front of 100% of users who activate push notifications. But that’s the catch. Your users have to be willing to press “OK” or “Allow” when you display that push notification (or phone access) request pop-up.

So, how do you get more of them to do that without constantly shoving those requests down their throats?

Some brands haven’t figured this out yet, to be honest. Take Snapchat, for example.

Snapchat push notification request
Snapchat doesn’t like when users disable notifications and phone access. (Image source: Snapchat) (Large preview)

This is one of those apps that just goes way overboard when it comes to requesting access to users’ devices. It wants to:

  • Send push notifications.
  • Use the camera.
  • Use the microphone.
  • Access saved photos.
  • Enable location tracking.
  • And so on.

Rather than ask for access when it’s relevant, it often sends a deluge of requests first thing when users sign into the app. That’s the wrong way to create a welcoming environment for your users.

A better way to go about asking for access or permissions would be to place it in the context of the app — and only when it makes sense. I’ll show you a couple of examples.

This is the app for ParkWhiz:

ParkWhiz location tracking request
ParkWhiz reminds users about the benefits of enabling location tracking. (Image source: ParkWhiz) (Large preview)

Look at the section called “Help Us Find You” toward the bottom.

Not only does ParkWhiz gently remind users to enable location tracking on their devices, but it does so by explaining the reasons why it would benefit them to do so. Notice also that this isn’t displayed in an intrusive pop-up at the point of entry. Instead, it’s in a spot in the app where, when enabled, it can help streamline the search experience.

YouTube is another app that does this well.

YouTube push notification tooltip
YouTube displays a small tooltip to remind users to turn on notifications. (Image source: YouTube) (Large preview)

In this example, YouTube quickly displays a tooltip over the disabled notification icon. The notice reads:

“You’re missing out on subscriptions! Tap the bell to turn on notifications.”

They’re right. I’m subscribed to this channel and, yet, I haven’t received notifications (push or email) about new videos for a while. I hadn’t realized this until I saw this reminder.

The way this is handled is nice. It makes users stop and think about what they’re missing out on instead of rushing to close out another request pop-up. It also doesn’t force them to turn on push for everything. They can customize which notifications they receive.

Push notifications are supposed to be helpful. And access to your users’ phones is supposed to enhance their experience. That’s why it’s important to ask for their cooperation in enabling these features within the right context. Rather than bombard them with request after request at the outset of installing or opening an app, deliver them within the experience as in-line elements.

3. Unnecessary Icon Labels

Note that this point is called unnecessary icon labels and not just a sweeping generalization of all of them. That’s because there are certain parts of an app where icon labels still work well. Like the navigation bar.

However, I’ve noticed an alarming trend lately whereby apps pair every page or tab name with a matching icon. There are a number of reasons why this is an issue and I’m going to use the GEICO app to demonstrate them.

GEICO mobile app home page
The GEICO mobile app home page comes with a list of services and modules paired with icons. (Image source: GEICO) (Large preview)

This home page makes it easy for users to take advantage of their auto insurance and related services on the go. Let’s focus on the “Vehicle Trouble” section though.

There are four tabs:

  • Emergency Roadside Service represented by a tow truck icon,
  • Start a New Claim represented by a car with what looks like a crash symbol,
  • Report Glass Damage represented by a car with a crack on the windshield,
  • View Recent Claims represented by a clipboard with the letter “C” on it.

The icons aren’t all that easy to decipher (except the tow truck) and I’m just not sure they add any value here. Really, if you can’t think of anything better than putting a letter “C” on a clipboard to represent claims, maybe icons aren’t needed after all?

Next, let’s take a look at the GEICO app’s list of settings:

GEICO app navigation
The GEICO app’s navigation pairs each page with an icon. (Image source: GEICO) (Large preview)

There are a lot of settings pages here. Not only that, they’re not the kinds of pages you’d typically see in other mobile apps, so the designer has had to get creative in pairing them with icons.

If this navigation didn’t have icons, I think it would be much easier to read through the options. The same goes for the home page. Without the icons, the font size could be increased so the focus could strictly be on the page names and insured users could get to the information they need more quickly. As it stands now, the icons are just wasted space.

Let’s look at another example.

Rover is an app that pet owners can use to book pet sitting and walking services. Icons are used sparingly through the app to distinguish services from one another as well as to label the navigation pages.

Rover mobile app with icons
The Rover mobile app includes icons to label its navigation and services. (Image source: Rover) (Large preview)

I don’t think the icons on this page are necessary in terms of expediting user selection (e.g. “I need overnight house sitting so I’m going to choose the moon-over-the-house icon.”). That said, I don’t think the icons detract from the button text since each option is clearly labeled with big, bold font. What’s more, the icons do a nice job of bringing balance to the buttons so there aren’t huge white gaps in the middle.

Now, let’s look at what the designer has chosen to do under the “More” tab:

Rover app settings
Rover’s list of “More” settings don’t include icons like the rest of the app. (Image source: Rover) (Large preview)

This is similar to GEICO’s slide-out navigation menu. But notice how Rover’s is text only. Considering how common these settings are from app to app, it would’ve been easy enough to add icons to each, but the designer chose to leave them off and I think that was a good decision.

There’s a time and place when icons serve a purpose. As far as labeling a secondary navigation menu in your app, it’s time to do away with that. I’d also express caution over labeling pages with icons if it’s a struggle to find a match. That should be a sign to you that they’re not needed to begin with.

4. Excessively Long Home Pages

In web design, we’re seeing much shorter home pages than in years past, thanks to the need for more efficient mobile experiences. So, why isn’t this something we’re doing in mobile app design?

There are some apps where this isn’t an issue. Namely, ones where there’s no scrolling at all (e.g. dating apps, gaming apps, etc.). And there are some cases where endless scrolling on the home page is fine (e.g. news and social media apps).

But what about other apps?

Listings apps (like for real estate or travel) sometimes have a hard time with this. For example, this is the top of the Airbnb mobile app:

Airbnb app home page
Airbnb app home page with search bar and categories. (Image source: Airbnb) (Large preview)

This part of the page is well done and includes everything users need to find what they’re looking for:

  • A search bar,
  • A list of travel categories to swipe through,
  • Quick links to recent search queries.

But for some reason, Airbnb has designed this home page to go on and on and on with sections for:

  • Top-rated experiences,
  • Airbnb Plus places to stay,
  • Introducing Airbnb Adventures,
  • Places to stay around the world,
  • Featured Airbnb Plus destinations,
  • Stay with a superhost,
  • Unique places to stay for your next trip,
  • Explore New York City,
  • And on and on it goes.
Airbnb promotional content
Airbnb includes over a dozen sections of content on the home page of its app. (Image source: Airbnb) (Large preview)

I’m not sure what the logic was here. While I understand wanting to help your users by providing them with useful recommendations, this goes way overboard. It’s not even as though this is personalized content based on the user’s profile or recent searches. It’s just a smattering of categories that, if anything, are going to overload and overwhelm users with options.

If the app you’re building or have built runs into a similar problem, check out for inspiration: Discovery page in app
The app provides users with a search bar and recently viewed hotels upon entering the app. (Image source: (Large preview)

Unlike Airbnb,’s home “Discover” page is short. All it takes is three swipes to get to the bottom of the page. Users see sections for:

  • Recent searches,
  • A city guide (based on a recent query),
  • Last-minute deals,
  • Current bookings,
  • Rewards standings (if relevant).

For the most part, the content is 100% relevant to the user and not just meant to promote every possible service or feature of the app.

If you really feel like users would benefit from seeing every possible feature, create a secondary navigation for it. That way, they can quickly scan through the options and pick the one(s) they’re most interested in. When you give them an endless home page to scroll through and too many listings and buttons to click, you’re only going to make it harder for them to take action.

5. Dark Patterns in Ads

You have to monetize a mobile app if you’re going to make the original investment worth your while. It’s as simple as that.

But I’ve recently encountered some very scary dark patterns in mobile app monetization — specifically, with the way ads are designed. And it’s got me wondering if third-party ad networks are really the smartest way to monetize if they’re going to compromise everything you’ve done to create an awesome in-app experience otherwise.

Now, I understand that app designers usually don’t have any role in designing the ads that appear. That said, do you really think your users know anything about ad networks and how those ad placements get inside your app? Of course not!

So, when one of your users has a bad experience with an ad, what do you think is going to happen? They’re not going to think:

“Oh, that advertiser is terrible for doing that.”

Instead, they’re going to think:

“If I see one more ad like this, I’m uninstalling this app.”

Let me show you some examples of ads that will push the limits of your users’ patience.

This is Wordscapes, a gaming app I’m quite fond of:

A cutoff banner ad in Wordscapes app
A banner ad at the bottom of the Wordscapes app is cut off. (Image source: Wordscapes) (Large preview)

I’ve been playing Wordscapes for a long time and when I first started, it was great. The banner ads were there, but they never really got in the way. And the interstitial video ads only appeared every few rounds or so. They were always easy to dismiss, too.

Over the past year or so, however, the quality of ads has majorly deteriorated. Take the banner ad above. That’s actually a video ad that doesn’t fit in the allotted space.

Then, you have this badly designed banner ad for Jynarque:

Dark banner ad for Jynarque
A banner ad that’s too dark appears at the bottom of Wordscape (Image source: Wordscapes) (Large preview)

Neither of these banner ads are really dark patterns. However, they do suggest there’s something not quite right about where Wordscapes is sourcing their ad content from.

Now, I’m going to show you some of the more deceptive ads I’ve come across.

This is an ad from Showtime to promote the TV show Shameless:

Wordscapes interstitial ad for Showtime
Wordscapes shows an interstitial video ad for Showtime’s Shameless. (Image source: Wordscapes) (Large preview)

See the number “5” in the top-right corner? That’s a countdown timer, which should tell users how long they have to wait until they can dismiss the ad. However, when the timer is up, this icon appears:

Showtime ad without an exit
A Showtime ad provides users with an untraditional escape after the timer runs out. (Image source: Wordscapes) (Large preview)

The timer gets to “0” and is replaced by this button. It’s not the traditional “X” that app users are accustomed to when it comes to watching ads, so they might not realize this will take them back into the game. In fact, they might misinterpret this “Next” symbol as a “Play” button and watch the ad in full. While it’s nice that Showtime gives users an exit, it would be better if the iconography were consistent with other video ads.

Then, there’s this interstitial ad for DoorDash:

DoorDash ad with no exit
A DoorDash ad includes two fake “X” buttons. (Image source: Wordscapes) (Large preview)

This is what the ad looks like the second it appears on the screen, which is actually encouraging.

“An ad that’s going to let us exit out of it right away! Woohoo!”

But that’s not the case at all. Notice how there are two X’s in the top-right corner. One of them looks fake (the plain “X” symbol) while the other looks like an “X” you’d use to dismiss an ad.

The first time I saw this, I clicked on the good “X”, hoping my finger would be small enough to miss the fake target. Yet, this is where I ended up:

DoorDash ad to app store exit
An ad for DoorDash tries to take Wordscapes visitors to the app store (Image source: Wordscapes) (Large preview)

The click takes users out of the Wordscapes app and tries to move them to the app store. After hitting “Cancel” and sitting through five more seconds of the DoorDash ad, this new “X” appears in the top-right corner:

DoorDash deceptive mobile ad
DoorDash finally displays the real exit button for its mobile ad. (Image source: Wordscapes) (Large preview)

At this point, I can’t imagine users are very happy with DoorDash or Wordscapes for this experience.

These examples of bad ads and dark patterns in monetization are just the tip of the iceberg, too. There are ads that:

  • Provide no timer or indication of when the ad will end.
  • Switch the placement of the “X” so users unintentionally click the ad instead of leave it.
  • Auto-play sound even when the device’s sound is turned off.

I know I’m picking on Wordscapes because I spend the most time inside the app, but it’s not the only one whose reputation is being hurt by third-party ad content.

Again, I recognize that you have no say in the design or execution of ads that come from ad networks. That said, I’d really urge you to talk to your clients about being more discerning about where they source their ads from. If mobile ads continue to be this bad, it might be worth sourcing your own ad content from partners and sponsors you trust instead of random companies that use deceptive advertising tactics.

Wrapping Up

There are a ton of reasons to declutter your mobile app designs. But if these examples have demonstrated anything, the most important reason to clean up is to get rid of useless and sometimes harmful design elements or techniques.

And if you’re having a hard time getting rid of the excess, I’d encourage you to reevaluate the core product. If it’s not strong enough to stand on its own, in its simplest of forms, then it’s time to go back to the drawing board because no amount of distractions you fill it with will make it a worthwhile download for your users.

Smashing Editorial(ra, il)


Hint: it’s totally worth it.

I.Black Design

For those who don’t know — which may well be you, as you’re reading this article — Design Research is a field of research focussed on learning about the people we’re designing for. It aims to expose patterns of behaviour, through iterative hypothesis and experimentation. If you’re a product designer, UX designer, Unicorn, Screen Jedi, or really any type of designer, here’s why it should be part of your process.

You are not your guest.

If you’re a designer, you probably want to solve problems. Sometimes for yourself. But mostly for the users of some other businesses. Whoever happens to be paying you this month. Right? Hmm.

When did customers become “users”?

This language degrades people to lifeless statistics. When you walk into Disneyland, do they think of you as a user? Absolutely not. You are their esteemed guest.

When you walk into your favourite clothing store, are you a user? No, you are a treasured customer.

Once you realise the people engaging with your product are just that — people — you’ll also realise they are individuals. They think, act, and feel in unique ways.

To design for someone else, you should aspire to get inside their head.

Understand their deepest (darkest) desires.

You’re won’t get far sitting behind your [insert design tool of choice] artboard adjusting drop shadow opacities.

Be our guest?

Assumption is the mother of all f*** ups

You know this old saying. It’s true. Yet every day you make wild guesses at what people want and need. It’s time you started replacing assumption with insight.

Meg Ryan was able to hear the thoughts of women in the mediocre-hit comedy What Women Want. You can’t do that*. So, instead, you’re going to have to do some research.

[*Can you?]

It’s one of the best ways to figure out how to help your guests.

Research provides a basis for decision making. It allows you to walk into your stakeholder design presentation and say:

“we observed this huge problem, and we’ve got a way to fix it.

Start changing the nature of your conversations from fiction to fact. From “I think” to “I observed”.

Meg. So in tune with his audience.

Exploration of the irrational

Human behaviour is irrational. Don’t believe me? Ask Dan Ariely. He wrote a whole book about it.

Data will tell you a lot about what people do. But it won’t tell you why they do it. You have to ask the people themselves. Watch, listen, study, learn. Dig deep. Then a little bit deeper still.

Exploring irrational behaviour is hard to do through simple research techniques like market research. It demands introspection. Or insightful observation and analysis. People often fail to explain their own irrationality. You have to observe it first hand for yourself and share what you see with the world.

A great book — give it a read!

It’s wonderful!

There is nothing like the Ah-ha! moment of observing irrational humans attempt to do rational things. Once you get into it, you’ll never want to stop.

It’s not always easy, but it’s rewarding.

So stop throwing sloppy ideas at the wall. Start studying real behaviour. Start design something that really sticks with your guests.

It’s a wonderful life.

Good typography is an art that shouldn’t be messed with too much. Letterforms flow together to form words and phrases that are readable and have subtle visual meaning.

But if you aren’t careful, it’s easy to ruin typographic beauty in an instant.

If you have slipped into any of these design traps, this is the time to stop doing anything on this list to type and clean up your design pieces. (Your portfolio will thank you.)

Adding Drop Shadows


Most fonts are perfect just the way they are. (I am dead serious.)

If the letters don’t work for your design, maybe you should consider another type choice. Don’t take the lazy option and add a way-too-obvious drop shadow or outline to the text.

…the best shadows go completely unnoticed

There’s this general rule about drop shadows that more people should follow — the best shadows go completely unnoticed. If you can see the shadow on a text element, then it is probably too big, too dark, and will get in the way of readability.

Honestly, using these effects is a fairly lazy way of trying to make text work. (You commonly see shadows and outlines on text that should have more contrast against the background.)

On the other hand, you can create some cool art-type text elements with shadows and outlines. But it is a technique that you’ll probably only ever use a couple of times in your design career.

Using Too Many Fonts


It should go without saying. But it requires repeating.

Using too many fonts ruins all of the typography in a design. Using fonts that don’t pair well with each other (or the content for that matter) can ruin the design.

Pick a typography palette for projects. Set a type hierarchy and work from there. Obey the type style rules that you set for the project and chances are that it will turn out ok.

Not sure how to pair fonts? Learn more.

Ignoring Contrast


Contrast is the thing that makes every bit of the type in your design readable. This is true of print materials, websites, and even tactile items like shirts or billboards.

Not having enough contrast between the background and typography — or not accounting for changes to contrast due to backlighting or environmental elements — is a common mistake. And it can kill the effectiveness of every word in the design.

…highly readable typography with strong contrast is a positive in terms of website accessibility as well.

You only have a few seconds to capture someone’s attention with a design. Don’t waste that precious time as users struggle to understand the words you want them to read.

To ensure readability, you want to put light text on a dark background (or vice versa) and not use similarly saturated colors against one another. As a rule of thumb, using black (or dark gray) and white text is the best option, when you have doubts about color combinations.

A tool such as the WebAIM Color Contrast Checker can help you determine contrast for text elements. As a bonus, highly readable typography with strong contrast is a positive in terms of website accessibility as well.

Using Caps, Bold, and Italics Too Much


Did you know that lots of type styles can cause concerns when it comes to accessibility?

Using too many type variations – all caps, bold, italics, and underlining – can cause text to appear much more compressed and squeezed in than it really is. That’s a problem when it comes to readability.

If you are using these text effects for accents or to make a point, stop and ask yourself if there is a better way. All of these things are ok when used sparingly, but shouldn’t be throughout the overall design.

Double Spacing


Stop putting two spaces between periods (and other punctuation) at the ends of sentences and the start of the next sentence. It only leaves an odd gap. This gap can get even more awkward at the ends of lines and result in spaces at the beginning of a sentence on a new line.

Modern digital typesetting is designed to take care of spacing between sentences for you. While you may occasionally need some manual adjustment, two spaces are seldom necessary (unless you are creating design elements on a typewriter).

Forgetting Device/Screen Size


Don’t forget about mobile users when setting font sizes for website design, emails, or even social media images that will be displayed on small screens (and contain text).

The space between lines is just as important as the size of the text itself.

While this isn’t something that you do to typography per se, size has a great impact on whether people can understand the message. Some typefaces are also made for smaller sizes and render well, whereas other type families are much better suited for large display.

When it comes to thinking about font adjustments consider the size and leading. The space between lines is just as important as the size of the text itself.

Think about use and pick fonts accordingly. (Even if you have to adjust for different screen sizes, and you likely will.)

Using Hyphens in Display


It’s not that big of a concern typically for web designers, but it’s a big deal for everyone else: Don’t hyphenate words in display type.

It’s just ugly. And hard to read.

Don’t do it.

Going On and On and On…


It’s time to stop thinking that you can just go on and on and on with type because it is on the web. No one is reading all of that no matter how beautiful the lettering is.

Stick to words that matter. It’ll make better use of your type choice so that people actually read it.

The more text you have in the design, the more important typography becomes.

When it comes to text that goes on and on, think about the length of text blocks. Are paragraphs short and digestible? Do you use lists and formatting that makes it easier to scan?

Think about the number of characters per line – this helps dictate font size – and aim for 40 to 60 characters per line (somewhat less for the smallest screens). This can help you figure out if blocks of text are too chunky or awkward to read.

Stick to standard alignment for everything except headlines. Long blocks of centered text are incredibly hard to read. People don’t like or expect it – outside of poetry – and it causes a lot of eyestrain. Justified blocks of text are equally difficult to read if they are long and can cause awkward spacing issues that are a challenge to resolve in responsive frameworks.

The more text you have in the design, the more important typography becomes. Use a clear and easy to read font without difficult formatting in long blocks to facilitate readability.


Poor typography can ruin a project faster than almost any other design issue. For a design to be effective, people must be able to read and understand it. Most commonly, that’s in the form of typography.

Too much decoration, improper contrast or scale, and over-doing text elements are the most common issues you’ll find when it comes to typography. Remember to let letters stand on their own, provide plenty of contrast for optimum readability, and use fonts with words that have shared meaning and context.


(This post has been sitting in draft for a few months. Today I was tagged in a discussion about researching with vulnerable/distressed people and I just pressed publish. The post started out as an email I sent to the UK GDS User Research mailing list on the topic of doing user research with vulnerable people.)


In 2017-2018 I worked on a web service for compulsive gamblers created by a non-profit organisation (funded by the gambling industry) at the request of the UK Gambling Commission.

(NB: Many participants would disagree with this “compulsive gambler” label, but according prior research they were).

The service “epic user story” was for:

a compulsive gambler to be able to ban themselves from accessing online gambling websites and smartphone gambling apps

What follows below is a mixture of learnings I had about my professional work and how to conduct research with vulnerable users, and also advice to others who may need to do the same

Seek professional help!

I was reasonably comfortable with my approach in terms of ethics, and consent. However I still felt I needed expert psychological review of my approach to the work.

I made contact via a project stakeholder (who was also a trained clinical psychologist and addiction therapist) with a chartered psychologist and academic researcher also connected to the project.

This was because the project was going into a difficult psychological area which I was not trained in. I am not a professional psychologist. I’m a user centred design professional.

The purpose was to review my intial approach to the project, review my consent documentation, and “after research” support and care information.

They also provided me with some academic research papers to understand more. I used these papers to carry out a short literature review.

This lit. review helped me enormously to understand the psychological states my participants were in, their rational for their behaviour. It gave me a better understanding of the language they would use.

Remote / in person research

Initially I expected to carry out this research in person. In person research allows for more emotionally rich research – you can see the non-verbal communications we all make.

When it became difficult to carry out in-person research I switched to telephone and Skype calls.

This proved to be very successful. People seemed to open up and speak frankly. I can’t say why – if it was the distance, speaking to a “disembodied voice?

This was totally unexpected, but made for better quality research. The learning for me was challenge your expectations of research methods.

For the participants

Frame research clearly

In the pre-research session communications I made it very clear that I was not a gambling support therapist – I was not capable of discussing effects of gambling on the persons life. I was designing software.

While this may have an effect on limiting discussions about the reasons your participant has been become vulnerable, it should also limit cathartic but difficult conversations which you are not trained to deal with. This is to protect both the participant and youself.

Anonymity by default

Due to the potentially massively negative effects (financially, professionally, psychologically) on their lives of their gambling activities, I mandated this research would be anonymous.

The only person who would know the participants real identity was myself and my colleague who was present for the session.

When transcribing I removed all references to specific names, cities – I replaced them with geographic regions (e.g. north east/south west), companies, actual ages – I replaced them with ranges (e.g. 20-25 years old).

The transcriptions were available to my project team members but not the originals.

Clear scope, explicit consent

I made the research scope clear – I am researching how the participant needs to carry out this goal of banning themselves from gambling using the system we are building.

I explained I am not a trained counsellor and so cannot legally, give advice or support about gambling activity. I made sure:

  • I got clear written informed consent
  • that they understood they were free to stop the research session at any moment
  • that they understood they could refuse to answer any question

The purpose of consent is to put the participant in the position of power – not to have them “exert” this power, but to show them they can trust you. You will do no harm.

During my interviews, I asked personal questions. The purpose was to understand how they would react if they were asked a similar quesiton during the registeration process.

To my surprise, participants were very willing to answer them – they knew this service would help them deal with their current situation.

The “value” proposition was clear to them.

Be patient

Like doing research with participans who have access needs, you also need to be more patient with participants.

Some may want to go off the research topics, and you need to be more patient and empathetic with them than in a less emotive situation.

When they cried we took a break.

Be silent

Your job is being the user researcher. Listening to the participant.

When dealing with difficult topics, this can often mean a lot of silence. You’re job is to be comfortable with awkward situations. That often means being uncomfortable (within reason) so that the participant is not.

Be comfortable with silence.

Address research sessions confusions (and iterate)

After doing 2 pilot studies on the project I found some participants seemed confused – they seemed to think *I* was doing psychology research into compulsive gambling.

I adapted my research interview preamble to make this explicit – going to the point of saying it was against the law for me to ask about the psychological effect of their activity.

I listened and then tried to bring the conversation back on topic – the topic I was researching was what compulsive gamblers needed from the website we were developing.

Provide aftercare

Once the “research”part of the session finished, I gave the person some time to gather their thoughts, and reflect. This was often just 4-5 minutes of silence where nobody spoke.

Once finished, I then provided them with signposting to gambling support signposting in their community.

Some people may not deal well with the realisation they were a compulsive gambler. Some were genuinely not aware of the support available.

So you need to provide them with signposting to professionals who can help.

The purpose of this support is to shorten the gap between the decision and action to get the support – don’t just provide a national resource.

I gave participant a small flier with information about support they could access local to them – a telephone number, a local support office.

This was not judgemental, it was to assist them in the event they made the decision to follow it.

Respect, don’t patronise or sympathise

The participants I spoke with, even though their lives were in terrible situations, didn’t to want my pity.

They were very interested in helping as they waned to help others in similar situations.

I tried to keep my distance in terms of sympathy. Give them a tissue, not a hug. When they cried we stopped for a while.

If you feel you are beyond your capabilities reassess. Don’t be afraid of asking more experienced colleagues for help.

For the researcher

It is very easy to forget about the impact of research on the researcher.

Normally we are researching light-hearted topics. They don’t effect us much.

This was not one of those cases. After a solid week of interviews, hearing about the effects of the participants gambling activity started to have an effect on me.

I expected to hear some difficult stories but I wasn’t prepared for the sheer number of them.

On reflection the input of the chartered psychologist professional minimised this.

Do no harm (to the researcher)

I was not a professional psychologist and so needed support too. The psychologist who advised me on how to insure my research minimised any effects on the participants also had a lot of good advice most practical being – expect to be effected by the research.

I was planning a large portion of my research to be qualititative interviews, with formative and summative usability testing.

The chartered psychologist reminded me of some good supports to put in place for myself and the participants:

  • designate a colleague(s) to speak to about it when the research effects you. Speak with them regularly
  • it is acceptable to talk to this colleague about your feelings or reactions to the data you find
  • it is not acceptable to identify participants in any way or talk about the person individually, or their individual circumstances

(Personally, I was lucky that I had someone at home to talk about how the research affected me. This was very helpful.)

It was helpful to have a colleague with me at times (acting as “note-taker”). Post-research session we spoke about what we’d just heard, and we’d deal with the situation

Final thoughts

While this may sound like a terrible experience, it was anything but that. It stretched my user-centred design research skills greatly, but led to good, actionable, ethical research which was used to build a service that had a positive impact on it’s users.

Looking back, I don’t think I’d have done anything differently, except maybe taken more breaks between interviews.