Cassandra at the Keyboard: Whistleblowing and Working

I originally gave this talk at Open Source Bridge 2015. I then almost completely rewrote it and gave it at Write/Speak/Code Chicago in 2016.

Content notes

This essay will contain references to the following topics. If that’s something you prefer not to read about, I totally understand:

  • Discussion of sexual harrassment
  • Discussion of sexual violence
  • Discussion of intimate partner/domestic violence
  • Discussion of online stalking/abuse
  • Adult language


If you’re here to learn about the database, I’m sorry. This is the other one.

I named it after a mythological character who was cruelly cursed to provide perfectly accurate prophecies AND NEVER BE BELIEVED.

I think Cassandra is the patron of whistleblowing because no one decides to upend their life for a lie. Whistleblowing is a painful and dangerous process, much like telling ancient Greek kings news they don’t want to hear.

Whistleblowing: A definition

For something to be whistleblowing, it needs to have all of these qualities.

  • True
  • Actionable
  • Expensive or painful to solve

If something is true and actionable, you are asking for a reasonable improvement, there’s no problem.
If something is true and painful, but not actionable, there’s nothing anyone can do to fix it.
If you are reporting something you know is untrue, your organization is not what needs repair.

When I say painful, I mean that the problem is going to be hard to fix, because it’s expensive, or because it damages a person or company’s self-image, or because it will require behavior changes from a large number of people.

Reducing carbon footprints, admitting doping in sports, and recalling cars are all examples of painful actions.

Also, when I say whistleblowing, there is an implied power differential – this is not a thing that happens in mutual relationships, but from a less powerful person to a more powerful person or organization.

Whistleblowing is not reporting something because it affects you, but because it will affect other people. Vengeful reporting may be justified, but it’s not always the same thing as whistleblowing.


So you have noticed something is very wrong.

You are sure it is happening.

There are actions that could fix it, if someone had the will to take the actions. You are not sure anyone will choose the right thing to do over the status quo, because the action will be very difficult.

What can you do?

from Google Books

Exit, Voice, and Loyalty, a book about choices by Albert O. Hirschman

In 1970, Albert O. Hirschman wrote that when a person sees a decline in quality from their organization, they can either choose voice (complaint) or exit, but that loyalty affects that binary choice to make it a three-way decision. Your loyalty affects how you choose to exit or speak up.

For example, have you ever been attached to a brand and disappointed when they screw up, like when Lands End took two belt loops off the back of their plus size jeans? You can either write them and complain, or you can silently take your business to Eddie Bauer. But if you have a lot of loyalty to Lands End, you’re more likely to give them a chance to fix their mistake by telling them about it.

These balancing decisions frequently occur in combination in whistleblowing cases. A person can see a problem, voice it, and then remain loyally silent if it is not repaired. Eventually, they may feel that they need to leave. Voice, Loyalty, and Exit are not a one-time decision, but an ongoing tension in our decision-making.

Let’s make this less abstract. Here are three examples from my life.


Do not plagiarize the American Medical Association. This seems like an obvious rule for living, but I was put in a situation where my manager directly told me to “file the serial numbers off” some documentation from the AMA. I felt…unhappy about this and asked if we could get permission. He said no.

Rather than repeat my protests to my manager, or just go ahead and do it, I went to the CFO and explained why this was a violation of my professional ethics and could get me, personally, sued, as well as the company. The CFO took my report seriously, and I ended up in a call with a terrifying lawyer from New York who probably billed by the second.

The CEO got my manager to back off, and it was mostly ok. But even though that is a best-case scenario of how to handle whistleblowing, this guy was still my manager, still didn’t believe he’d done anything ACTUALLY wrong. I left as soon as I could, because it was so awkward working as his direct report.


Have you ever wanted to stand up at a wedding and say, “For the love of God, don’t do it”? I have.

I spent the week before my brother’s wedding trying to deny to myself that I was worried about his choice. I thought that maybe I was being overprotective of my little brother, that I just needed to let the bride find her feet in my family. I chose loyalty over voice, over saying something.

As it turns out, it was the wrong choice, and she was the wrong fit, and maybe it would have saved everyone some court costs and time and heartache if any of his loving and loyal family had said, “Yo, you know you don’t have to get married, even if we have the dress right here, don’t you?”


Anyone wanting to see which way I incline in this system has only to look at my LinkedIn history.

I leave. I see problems, and I say something, or I don’t say anything, but I leave. I leave as well as I can in the circumstances I have, but I get out of Dodge. This may seem like cowardice. It may BE cowardice, but I don’t have the energy to stay and fight it out every time. There is an enormous mental and emotional cost to convincing an organization they have a problem.

Most recently, I fired a client because I believed they were selling something as a security solution, when it was in fact only an access control solution. I tried voice, but when that failed, I left instead of staying for what I felt was the inevitable crisis when someone was breached.

Bigger examples

My examples are relatively small-scale. I’m lucky that way. Let’s touch on some other people who have made the voice/loyalty/exit choice on a larger scale.


Whistleblowers can be women who stand up to abusive rudeness, like Sarah Sharp.

Sarah Sharp

Sarah Sharp, Open Source Hardware Developer, General Badass

Sarah was a Linux kernel developer when she decided to request more collegial interactions on the Linux Kernel Mailing List, which could have upwards of a thousand messages a day.

Linus Torvalds said,

“I’d like to be a nice person and curse less and encourage people to grow rather than telling them they are idiots. I’m sorry – I tried, it’s just not in me.”

Network World said,

Sharp has publicly locked horns with senior Linux kernel developers including Torvalds in the past over issues of civility and professionalism, and has, arguably, been more responsible than anyone else for pressing the community to consider those issues more critically in recent years.”

There are people like this, who have chosen to take their whistleblowing public, and are suffering very real consequences for it, but who are also moving the conversation by their very presence, their stubborn refusal to shut up about it already.

We don’t all have to be that someone. We don’t have to admire all of whistleblowers on a personal level. We don’t even have to like them. But we can see that this is what voice looks like, if that’s a path we ever feel we need to follow ourselves.


When I was thinking of examples for this section, I was struck by how many of them were masculine.

Oh, I thought. The culture of military and sports bonding promotes loyalty over speaking out.

  • The NFL’s coverup on traumatic brain injuries.
  • Lance Armstrong’s US Postal cycling team full of doping.
  • The Charge of the Light Brigade.

Then I realized which women were engaging in loyalty and silence — women in abusive and unsafe relationships.

Frequently, by the time a woman starts thinking of leaving to save herself, she is tied to the abuser by loyalty, by children, by financial dependence, by emotional abuse. It’s too easy to say that people in abusive relationships should just leave. We have a strong human urge to team up with people we love, who say they love us.


There are a lot of people who have left, and for the most part, they have chosen not to be famous about it.

They decided to spend more time with their families. They went into a second career. They found another job. I don’t think it’s right for me to use most of them as examples, but the one really core to me is Kathy Sierra.

She was viciously abused and threatened, and because of that, she gave up her online presence, and much of her speaking and teaching career for five years. She stopped teaching people Java and user empathy and spend healing time with her Icelandic horses, who have never been known to dox anyone.

Photo by Kathy Sierra

Kathy Sierra takes heartbreakingly good pictures of her horses

Her exit was public, clear, and painful for a lot of us to watch.

Real Talk

Let’s talk about what’s going to happen if you choose to exercise voice.

You’re likely to get fired

Not for reporting harassment, but because you’re not a good fit, or a bad team player, or just not fitting in. The worst part is that the people telling you this will actually believe it’s true.

There are federal whistleblower protections, but once you’ve been fired for reporting someone, you are probably not excited about working with them anymore, and invoking the protections involves getting a lawyer, and and and. So there’s that.

You’ll take a reputation hit

Depending on how big a splash you make, or who you are pissing off, you may come under online or offline attack, you may suffer professional damage, you may get a reputation as someone who is in it for the drama, or a tattle. Just as women in an industry talk to each other about unpleasant men they deal with, men gossip about who is difficult for them to deal with. It will feel like everyone is calling you a bitch.

One of the first responses a lot of people have to a report of harassment is to tell the victim to toughen up. You remember that Medium post where the woman said, sure, guys had tried to kiss her at conferences, but it wasn’t a big deal, she just talked more about her husband and her kids and made sure to leave parties before midnight? Yeah. It’s not just men that will come down on women who report harassment. It’s also women who have had their own run-in and have chosen loyalty, for their own reasons. Choosing otherwise challenges them in really uncomfortable ways.

You won’t feel vindicated

Even once you speak up, you are not necessarily going to get the outcome you want. That’s frequently outside your control.

People can report rapes, but they can’t jail rapists by themselves. They can report embezzlement, but they cannot get the money restored. They can report harassment, but they cannot change a company’s culture.

If you are going to be crushed if nothing changes, you may want to consider Exit more heavily.

Why speak up?

That is all pretty dire, isn’t it? This is not the same talk I would give to people with less experience, but I’m guessing that very little of this is news to you. [Note: I was giving this talk to a room of senior/experienced women]

So let’s talk about why people make the choices they do about whistleblowing.


Either the whistleblower loves the system so much that they can’t bear to see this grit in the gears of something good…

….or they are so bothered by the apparatus of the system that they want to throw a wrench in the works — the original sabotage.

In any case, this kind of motivation is usually about a long-term problem.


The problem you see matters to other people – people like you or people you care about.

Think of LeAnne Walters, who went to the Flint City Council and then the EPA about the water in her house. It’s not just that she had a problem, it’s that if she had a problem, then other people would too. Environmental concerns are probably the easiest for us to generalize as being for the sake of humanity in general.

Something is going wrong and people are being hurt, and our whistleblower can’t stand that. The whistleblowing invokes the power of someone who has more capacity to stop bad things from happening to people.

Ideals and rules

Say something because your ideals are being violated. Ideals can include things like patriotism and faith, or even the image of ourselves as “good people”. Chelsea Manning leaked documents because she felt that the world needed to know what the US was doing, because it conflicted with her understanding of what it meant to be American/patriotic to keep quiet.

Say something because you are following an ethical or legal structure that requires it. This is why we have mandated reporting for people who work with children. You are given the support of legally not being able to keep questionable things to yourself if you are a mandated reporter. You have to tell someone.

Know your reasons for speaking up. It makes it easier to be clear about the outcomes you hope for.

Why keep quiet?

This is not an idealistic talk. I am aware there are lots of reasons a person would choose not to be a whistleblower. Let’s talk about some of the common reasons people decide that the risk is too much.


Sometimes, your truth is not worth as much as the ability to live indoors and eat food.

Sometimes you need to weigh the benefit others will get from your speech with the harm you may experience. Lots of us are sole wage earners, or we don’t have the ability to walk away for some other reason.

In my family, we say, “Mommy can’t go to the beach with you. Someone has to earn the money to buy the yogurt.” This example is grimmer by the day as my kids turn into teens!


Maybe it’s important to your self- concept to keep a secret.

For example, Chelsea Manning’s co-workers did not reveal classified data, even if it conflicted with their personal ethics, because they had sworn an oath to keep it secret.


The most important reason not to tell your story is because you don’t owe it to anyone. You are not required to live out your pain for other people to see. You are not required to report a rape if it doesn’t serve your needs. You are not obligated to speak up at detriment to yourself.

No employer is as important as you are, your whole self. If it would serve your organization and harm you, you don’t have to say anything.

Exit, your other option

Odds are, at some point you’re going to have to leave. Either your organization won’t change, or they will push you out, or you don’t feel that you can stay any longer without saying something.

What are you going to do about it?

Go quietly

There are two ways to leave. The first is to leave quietly, to take the exit interview and say you’re moving for a better opportunity, to bite your tongue, to get out as cleanly as you can.

This is a perfectly valid, reasonable, and respectable decision.

Burn it all

The other way to leave is like an action movie hero walking away from an explosion.

You go in to the exit interview and lay out the whole truth. You email the details to the paper of record. You embrace your identity as a troublemaker and you make sure everyone knows why you are making trouble. You (gasp) tell the truth on Glassdoor.

You’ll burn some bridges. It’ll be awkward to get references, or maybe even your next job. But you can pick voice and exit simultaneously.

Practical advice

Do what you can with what you have. Know your reasons and your (probable) consequences.
Whatever your reasons, you should identify them and make sure that your plan takes them into account, so you meet your actual goals. Why are you doing this? Systems? Empathy? Ideals?

There are always consequences for invoking power. It’s a little like summoning a demon. You are never the most powerful person in the relationship, by definition. So before you say anything, you have to try to establish what the likely consequences are, and whether they change your opinion of what you want to do.

Depending on the level of what you want to say:
Talk to a friend
Talk to a lawyer
Talk to people who will be affected

Are you ready to go? Do you have a box under your desk, do you have your computer all cleaned up, do you have your parachute packed? Exit is what you do on your own terms, but depending on how serious the thing you are speaking up about is, you may get asked to leave anyway.

Audience matters

You want to invoke some external power, but you need to figure out how the most appropriate person is. Telling the wrong person could be worse than silence.

Power: They need to have power — the power to change something, or to bump the problem up the ladder. You need them to be someone who can do something about your problem that you’re reporting.

Authority is the external trapping of power, but it is also the way that your actions will be legitimized. When I refused to plagiarize the AMA, I went to the CFO to report my boss. Although the CFO had the power to tell me I had done the right thing, and to connect me with the expensive lawyer, it was only when he told the CEO that my boss was reprimanded. I had chosen someone with power, but not the right kind of authority.

Sympathy: Choose someone with sympathy. They don’t have to be sympathetic to you as a human, although that’s nice. They need to be sympathetic to your reason for telling. Are they systems people? Are they empathy people? Whatever it is that drives them needs to be something you address when you tell them.

Go in with a solution

Choose someone who can act on your report. Choose someone as a partner for change, with the power and the psychological profile of being a ‘fixer’.”

Especially in workplace situations, if you go in and complain, you are a problem. If you go in with a solution, you are an asset. People may not take your suggestion, but that’s ok, at least you have offered a way that they can think about solutions.

The worst thing about getting a reputation as a complainer is that it’s easier to think of YOU as the problem, and if they get rid of you, then they don’t have a problem anymore, right?

It’s all about the money

Choose someone who understands how this change will contribute to the financial health of the company.

The great thing about whistleblowing at a company is that it is almost always true that your disclosure will save them money in the long run. You just have to get them to understand that scope. Are you going to save their product from being delayed by programmer communication issues? Will this action keep them from being sued? Could the company avoid a superfund site-level of expense? Will a change improve the productivity of a team that is no longer dealing with the mental expense of micro aggressions?

Businesses have a hierarchy of needs, just like we do. They want to stay alive. So part of successfully disclosing is convincing the organization that it’s a matter of life and death.

Protect yourself

With any form of whistleblowing, you run a risk, but here are my suggestions for making it as safe as possible.

Build a “Fed-Up Fund”

How you fill it is your business, and I will tell you it is wickedly hard to do this after you have kids, so I really suggest doing it before.

You should have 3 months of expenses saved up. That gives you time to emotionally recover and find a new job. 6 months is better, but 3 months will probably do.

I can’t tell you the number of women I know who have taken on stressful or unpleasant high-paying jobs to save enough money to have “just walking out” as an option.

Build your team

Make sure you can get ahold of the people you care about without going through your company, your church, or your ex. Make these connections before you do anything drastic, because afterwards, it will feel awkward to reach out to people you are no longer seeing every day.

Find support. It’s emotionally exhausting to be the nail that sticks up. You’re going to need support from your peers, your family, your friends. Make sure Team You is activated and consulted as appropriate before you do anything.

Keep offsite backups

Don’t depend on having crucial information that you are trying to distribute or keep to protect yourself in just one place. Give a copy to a friend, file it with your lawyer. Especially do not count on corporate email to prove your case. They are in charge of the server, not you.

Document everything

I have a friend who worked for a non-profit. She was having real trouble with a person in leadership, and she felt that her job was threatened. When I asked her if she had documentation, she said that she did, but it was all in an account tied to her employment there.

That’s a terrible idea. I am not a lawyer, but in my experience, there’s nothing saying you can’t BCC yourself on emails as long as they don’t have PID or classified information in them. Those cranky emails from your boss? Totally legit to keep for your records, as well as the ones where she told you to do the exact opposite a week ago. If you are whistleblowing about something at your company, or in your volunteer organization, or ANYTHING ELSE, keep your own copy of the documents in question. Keep it secret, keep it safe. You may need it later.

NOTE: There are several circumstances in which you can get sued or prosecuted for removing proprietary information. Talk to a lawyer.

Go into security lockdown

Before you do anything dramatic, pre-emptively go into security lockdown.

Turn on your two-factor authentication, decrease your public social media profile, don’t leave a lot of hooks for people to attack you instead of the problem you’re pointing out.

You may feel silly and paranoid later for doing this, but it’s not going to be something you regret doing.

tl;rt – Too long; read Twitter

I can’t tell you what you should do when you see something going wrong. It’s not as straightforward as George Washington and his mythical cherry tree. I can give you some questions to ask yourself.

Is it true?
Can anything be solved?
Who is against me speaking? Who will be hurt?
Am I willing to pay a price to say this?

Choose. Choose again and again. If it’s true, it will not be less true in the future. You can choose exit then voice, loyalty then exit, exit and voice. But by having noticed something, you are forced to make a decision. Not doing anything is a decision.

People generally make better decisions when they know more about the problem space. That’s why I’m giving this talk

It is a service to tell your company something they don’t know. That doesn’t mean it will always end the way you expect. The stress of keeping secrets is really high. The stress of acting against your beliefs is astronomical. Either you break or your beliefs bend around to encompass horrible things you don’t want to support. At the risk of bringing up morals in a technical talk, you need to be able to live with yourself in the end.

Jobs are transitory, volunteer positions, money, fame, they come and go. But you only have yourself in the end.

Original slides

Pastrybox had a great take on Voice, Loyalty, and Exit.

Lady Speaker Clothes Crisis

There are about a jillionty articles on how it is difficult to dress as a woman while maintaining standards of professionalism, temperature control*, comfort, pockets, and compliance with the male gaze.  This is a post on one specific form of dressing: Dressing to be speaking on stage.

Personal style

If it’s not something that you would willingly wear in any other context, don’t wear it on stage. You’ll feel distracted and look a little miserable. If you are a jeans and a polo shirt kinda person, rock out with that polo shirt. If you have an affection for crinolines, rock that out, too, as long as it feels like clothing to you, and not a costume. You want to be able to forget it once you get on stage.

I am currently feeling really inspired by this post on Toddler Grandma Style, by Cynara Geissler. It’s all about dressing for joy and not “attractiveness”.

I have spent the last year speaking in clothes that I made myself. My sewing skills are now sufficient that as long as you don’t look at the inside of my seams, you don’t think “homemade”. Making my own clothes means that they’re distinctive, they fit properly, and they remind me that I am competent in more than one area.

I think it’s really useful, if you are even slightly outgoing, to have something remarkable about your appearance. That helps people find you after your talk, even a couple days later, and pay you the NICEST compliments.


This hairstyle is both awesome and easy to find in a crowd.

I’m almost 6 feet tall, and I have a bright-colored mohawk. I get all the compliments people are willing to offer, because they can find me.

The exception to only wearing what you’re comfortable in is makeup. Even if you don’t usually wear makeup, you may want to consider some if you are going to be on a lit stage and/or you are a white lady, because stage lights will wash you out something fierce.

speaker photo

Heidi Waterhouse speaking at The Lead Developer
Photo credit: © Katura Jensen 2016

In this picture, I’m wearing lipstick and mascara, and I feel like that helps my face indicate my emotions better. (also, that’s a Washington Dress, by Cashmerette. Turned out fabulous.)

NOTE: Always, always take your badge lanyard off before you speak. It’s amazingly visually distracting, it brushes against the mic wire, and it draws attention away from your face.

The Microphone Problem

This is the bane of my existence. You may notice in the picture above that there is no way a lapel mic clipped to the neckline is going to pick up my voice appropriately. I have had this problem before, and I deliberately wore a short, rubber-corded necklace that we could clip the mic to. Also, in another advantage of sewing your own clothes, I added pockets large enough to put the mic pack in.

Here’s what you need for each type of mic. If you don’t have a belt or pockets, your sound tech is going to look both sad and awkward as they try to figure out where exactly you can store the mic pack.

Headset, or Brittany mic

  • No dangly earrings, at least on the headset side.
  • Someplace to put the mic pack.
  • A hairstyle that allows you to mess with the hair around your ears a bit

Lapel mic

  • Someplace to put the mic pack.
  • A neckline or necklace within about 6 inches of your mouth.

Hand mic

  • No clothes problems, but you may literally have your hands full and be unable to gesture.

Podium mic

  • No-one’s favorite. Make sure it is adjusted for your height.
  • If your A/V setup allows, close your laptop lid. It blocks a lot of the body language of shorter speakers.

The angle is weird

If you are on an elevated stage, which will happen at some point, remember that people are going to be looking at you from a totally weird, slightly upward angle. Skirts that are a fine-to-flirty length at ground level will feel horribly up-skirty when there is someone staring up at you. They’re not trying to make you feel weird, you’re not trying to make them feel weird, but it happens. I have seen other women have success with pants, skirts at least knee-length, or opaque leggings.

And if you’re going to be seated at a panel table and you like wearing skirts: contact your organizers to find out if they are going to have table skirts or modesty panels. No one wants to spend an entire amazingly thoughtful discussion remembering to keep their ankles crossed. If the organizer can’t tell you, play it safe and pack some options.


Pockets are amazing. You know that. Pockets are good in and of themselves, for sticking your hands in. But you can also use pockets to store business cards, microphone packs, your cell phone, your clicker, your lipstick….well, we’re getting carried away there.

Even the best dresses-with-pockets do not have the same structure that supports our jeans pockets. If you put too much crap in your skirt pockets, you will look like you are saving food against the coming winter AND there won’t be room to shove your hands in.  When you’re speaking, take out all your pocket stuff except the mic pack and your clicker. Set it next to your laptop, or better yet, in your laptop bag. No one will sneak up on stage to rifle through it.

Misogynist haters

There is a sadly good chance that someone will comment negatively on how you choose to present yourself. It’s like Global Thermonuclear Annhilation – the only way to win is not to play.

So when someone tells you meanly that you’re too fat to wear something, or kindly that you’re a little too old for that, or whatever crappy thing they come up with, remember that you’re the one that wrote the talk, and pitched it, and got on stage and gave it, and they’re the ones who can’t think of anything to say about the topic and are reduced to talking about your style. Whatever. Haters gonna hate.

I’ll usually say something devestatingly neutral like, “Thank you for sharing your opinion”. If I’m feeling really feisty, it’s more like, “I just talked about software design antipatterns for 45 minutes and you’re worried about my love handles?”.

As always, if you feel like this is weird or creepy in any way, contact the conference’s CoC team. You are not responsible for saving people from their lack of tact.

Also, shoes

You will walk miles at any reasonably large conference. If you want to wear kitten heels, or heel-heels on stage, go ahead (I would fall off and dieeeee). But bring along a pair of actually comfortable flats, not the completely unpadded ballet flats that fold up like socks. Conference center floors are concrete. My current favorites are Skechers Mary Janes. They’re super cushy, dressy enough to wear with a dress, casual enough to wear with pants, flat enough that it doesn’t throw my skirt hems off.

(I should not have looked at Zappos, I should not have looked at Zappos…)


I like wrap dresses in general, but they are a little exhausting to wear on days you’re going to be sitting in conference chairs all day. Even wearing slip-shorts (a must) and a cami, I felt like I was one inattentive moment away from really distracting a speaker.

* I blame the Patriarchal Thermostat Hegemony. I’m going to be in Las Vegas. In August. I expect I’ll be the one in a hoodie and handwarmers because of air conditioning.

What about you? Do you have any particular tips or tricks to share about how you dress to be on stage?

The Seven Righteous Fights: Now What?

This is the conclusion to my series The Seven Righteous Fights. For an introduction, see The Seven Righteous Fights: Overview.

Hopefully I have convinced you that these fights are worth having, worth putting some of your capital and effort into. But now how do you do that?

You can’t fight alone and win. You’ll burn yourself out trying. So take the parts of this talk you find useful back to work and see where you can fit them in.


I’ve given you some strategy, the big goals for making your products more usable, extensible, beautiful, and well-designed. Here are some tactics.

  • Write a coding style guide and follow it
  • Host brown bag lunches
  • Pair programming for best practices
  • Add tests for accessibility and usability
  • Cultivate diversity and representation on your team
  • Ask questions

Cash is King


Money is the root of all business decisions

Money is the root of all business decisions.

Companies don’t usually (ever) change their behavior because of a desire to be more ethical, inclusive, or even more efficient. They change because it makes financial sense. If there’s one thing I’ve learned about fighting the righteous fight, it’s that money is a ridiculously effective argument.

If it won’t cost much and will save a lot, that’s your lever to move the weight of the whole company’s behavior and culture.

So what do the seven righteous fights help with? Mostly making users lives better, but also making building and maintaining the product significantly cheaper.


This was a long set of essays, I know. You may just be reading the last one to see if I sum up. Here it is:

Don’t build in compounding technical debt that your could trivially avoid.


Be productively lazy.

To be productively lazy is to be lazy over the long term. It’s automating tests and teaching your kids to do chores. It’s investing a tiny bit upfront to save yourself late nights and expensive reworks.

I’m begging you. Be lazier. Teach your teams to prize efficiency over instant results. Make future-you happy, or at least less angry.

This blog post is the final installment of my Seven Fights series. You can hear me give this talk at SpringOne Platform (August 1-4) or Abstractions (August 18-20).

The Seven Righteous Fights: Accessibility

This is the seventh fight in my series The Seven Righteous Fights. For an introduction, see The Seven Righteous Fights: Overview.

We all use computers different ways. Does your software allow that?

Here are some ways you can add accessibility with relatively little effort.

Take your glasses off. Can you see any of the interaction elements on the screen? I just started wearing reading glasses this year, and I’m so surprised by how easy it is to, y’know. See things that are small or close to my face.

If you have uncorrected vision, borrow a co-worker’s glasses – gently. It’s a medical device.

Can you still see where you are supposed to be interacting with the product?

I blame Steve Jobs

Have you ever noticed that even in a Windows shop, the designers get shiny Macs with giant Retina monitors? It’s because layout and design tools are slanted to the Mac ecosystem, so it’s self-perpetuating.

The thing is, our users mostly don’t have giant Retina monitors. Or even giant Dell monitors. Or even giant hand-crushing phones. You have to assume that there are users out there who are looking at this on old, crappy monitors and old, crappy phones. We live in this wonderland of technology, but that’s not what it’s like in the rest of the world.

Have you looked at your product on a mediocre laptop? Have you looked at it on a phone? I know we all have CSS that’s supposed to reflow based on available screen size and resolution, but have you actually looked at it, yourself, not in an emulator?


8% of men are red/green colorblind. That’s not even counting the ones who have rarer expressions of colorblindness. Strangely, very few of the men who are colorblind go into design or UX work.

You can tell, because software products CONTINUE to have red/yellow/green status indicators that are the same shape. Guess what? That’s hard on people who can’t tell red from green. A product I worked on recently had nine colors of little dots to indicate the crucial status of monitored items. Only on a beautiful monitor with perfect vision can I tell the difference between a little orange dot and a little red dot.

There are a bunch of online colorblindness emulators that you can use to take a look at your product.

Color Oracle

And I’d like to acknowledge my current addictive game habit, Blendoku, which has some really excellent color-blindness accomodation that just happens to help the rest of us, too. Hurrah for Universal Design!

We are judging your link text and tabbing

Descriptive links take an extra 30 seconds to write, but they keep a screen reader from returning nothing but a sea of identical links which all say “Click here for more information”. It also reassures people that they are actually going to a legitimate site if someone has taken the time to describe the destination.

Consider your navigation in a keyboard/screen reader sense. To test this, unplug your mouse and hide it in a desk drawer for a week. How’s that working out for you? As an example, I tried to tab-navigate this WordPress composition page. I’m pretty grateful I can still use a pointing device, because there are a lot of menu items, they are all at the same level, the tab order is confusing, and I’m not sure I actually got back to the composition page. 

You would be surprised by the number of people who prefer not to use a mouse, or can’t. Who have moved from mouse to trackball to trackpad and are still actively experiencing pain from trying to use a pointing device. I know of at least three senior-level technologists who are using a Wacom tab and stylus as their menu navigation device because keyboard navigation is that bad.

Fix this by setting up a reasonable tab order, allowing people to collapse long menus from the keyboard, and bringing back keystroke shortcuts.

The internet is not of uniform density

Not everyone has high-speed broadband

Not everyone has high-speed broadband

This may shock you, but not everyone has broadband, and not everyone has employer subsidies for their cell phone data, and sending people video that starts without their action is RUDE. There are lots of other reasons people don’t have infinite data or access to the internet. They may not live in a tech city in a developed country. They may not be able to afford that much data on their phone. If you require people have access to always-on data, you are shutting out a huge percentage of the world.

I worked on the Microsoft Server team for a while, and I fought and lost a righteous fight there. Lots of the Windows documentation was moving to an on-demand model which allowed us to update and tune the documentation after the software was released.

That is a pretty cool idea, but there are exceptions. The most important one is that there are lots of servers that should not be connected directly to the internet and need a firewall with pretty ferocious security rules to keep out web traffic. People who run server rooms are not excited about reading web pages from in there. Letting your server touch the internet is like letting it lick a dirty toilet seat.

But because we as a team had always-on internet and no particular firewall restrictions, none of us were feeling the problem of not having the ability to download documents on the fly, so the documents we put on the distribution were sadly minimal and server administrators had to switch to another computer to try and get the help for their problem. But the other computer wasn’t licensed as a server instance. You see the problem.

Because we had access, we assumed everyone did, and because of that, there were a lot of angry server admins who could not get to help that we had actually written.

There are also people who live in rural areas of this country who don’t have cell phone service, let alone any data fast enough to stream. There are people in other countries who are charged the equivalent of multiple days pay for data. We are, to put it mildly, not very polite about this. Maciej Cegłowski wrote a great talk/post called The Website Obesity Crisis. You should read it.

TAB: Temporarily Able-Bodied

We are all only temporarily able-bodied. Eventually, we will pass into the realm of accident, age, or disease. Some of already have and are sitting next to you in the room. We swear under our breath at grey-on-grey websites with grey buttons, or bottomless scroll that makes it impossible to get to the links at the bottom of your page with tab controls.

Aren’t they worth fighting for? Aren’t you worth fighting for?


Accessibility isn’t just about users with impaired vision, and it isn’t about Other People. Accessibility is about building something that people can use without pain or distress.

This blog post is part 7 of my Seven Fights series. You can hear me give this talk at SpringOne Platform (August 1-4) or Abstractions (August 18-20).

The Seven Righteous Fights: Acceptance

This is the sixth fight in my series The Seven Righteous Fights. For an introduction, see The Seven Righteous Fights: Overview.

Have you shown this product to any actual humans who are like the users?

Acceptance is the act of testing your vision against the user’s needs. It’s not about whether the software works, or whether it’s usable, it’s about whether the user thinks it will help them get their work done.

The people you need to get to test it are users. This is not the same as people who you are selling the product to, and it may not be the same as the people you meet at trade shows. These are the people who sit down at their cubicle, or in their fire truck, or whatever they use, and count on their software to help them do their job. Find one of those people. Find five of those people. You don’t need statistical significance for this early stage test, you just need to hear something from outside the echo chamber.

Lego jobs

Not everyone works at a desk

Running an acceptance test

Show them the product. You can use a mockup if you need to, but don’t ask them how they work. Ask them what they are trying to do, and if you already know that, give all of them the same user script for consistency.

Shut up and watch. No, shut up. Don’t help them. Don’t explain how you meant it to work. Just ask them to perform a task and see how it goes. Take notes. It’s lovely to have a big expensive testing center like Microsoft and Intel have, with two way mirrors and cameras, but you can learn enough to be useful with a Webex and some listening skills.

You will come out of this test (probably) feeling ruffled and angry and frustrated with the users. Why would they want to even DO that? Why couldn’t they see the logic of the workflow? I feel like this when I get critiques on documents I have written. I sometimes feel like the feedback is wrong.

The user is not wrong.

The user is trying to tell you what you need to know to delight them, or at least satisfy them, and that is really important to your health as a company.

If you can’t hire an expert, become a student

If you can’t get people to agree to hiring UX, learn how to do it yourself. It’s really difficult to get people on a tight budget to pay for someone expensive to ask users about their feels about the software. It just is. You can talk them into hiring a user interface/front end person, but user experience? Nah.

So you’re going to have to do it yourself. You’re going to have to be the advocate for designing in not just utility, but usability. This is an amazing career-builder, but it probably won’t pay off at your current company. Maybe later.

To teach yourself the fundamentals of user experience, I suggest starting with Kathy Sierra’s excellent book, Badass: Making Users Awesome. Do buy it in paperback — the layout is unique.


There are lots of websites, books, talks, and skywritten messages on specific ways to do user experience, but it all comes back to the same question: am I helping the user do the thing they want?

Other suggested books:

Microinteractions by Dan Saffer

The Design of Everyday Things by Don Norman

Don’t Make Me Think by Steve Krug

The User’s Journey: Storymapping Products That People Love by Donna Lichaw and Eva Lotta-Lamm

This blog post is part 6 of my Seven Fights series. You can hear me give this talk at SpringOne Platform (August 1-4) or Abstractions (August 18-20).

The Seven Righteous Fights: Affordance

This is the fifth fight in my series The Seven Righteous Fights. For an introduction, see The Seven Righteous Fights: Overview.

Affordance is what the interface makes easy and obvious. Affordances tell us all sorts of things about the tiny interactions we have with the world, and with software.

Most people talk about the affordances of hardware, which way your USB plug goes, things like that. But software interfaces also offer us affordances, with a big green yes button and a small grey more information button.

Affordance is making the world encourage the behavior you want

This picture is where I crossed the street to go to work. As you can see, the place that the sidewalk goes does not correspond to either the crosswalk button or the crosswalk itself. This is bad for the grass, bad for the mobility impaired, and a nightmare when the snow gets plowed off the sidewalk and in front of the button. I live in Minneapolis, we measure our snow in feet. In the winter, the crossing button can be literally covered by a plow drift.

This is a bad affordance, but sometimes you are doing this with software design, where you are putting the sidewalk “where it belongs” and not where users need it.

The righteous fight in affordance is to figure out how to make it easier to do the right thing than the wrong thing. Sometimes the wrong thing is depositing your check to the wrong account because the app has tiny buttons on your phone. Sometimes the wrong thing is that it’s easy to harass other users without consequence.  Whatever your intentions for the thing you’re building, users will see it a different way.


One of the things that I classify as affordance is the privilege level it takes to do something. To test this, perform one of your user’s daily tasks.

Now step your permissions down to the level of ordinary mortals. Oh, is that less fun? Are there more hoops and confirmations and things you need to do? Can you even do the job without advanced permissions? Setting excessive security or blocking on ordinary tasks is an affordance and security anti-pattern. It means that people demand elevated access, and makes them and your organization more vulnerable to accidents and malice.

Task frequency

This is a homunculus. It is a weirdly shaped human because the size of the body parts represents nerve density and sensation, instead of physical appearance.

As developers, we often look at things in terms of the architecture, or where the data is. But the user has a really different idea of what is important, what gets used most. Our software needs to reflect what they are actually doing, not what is most logical to us.


Affordance is our opportunity to nudge users into patterns that they will find useful, rewarding, and not hideously irritating. We can only take advantage of that opportunity if we are thinking about their needs as well as our own.

This blog post is part 5 of my Seven Fights series. You can hear me give this talk at SpringOne Platform (August 1-4) or Abstractions (August 18-20).

The Seven Righteous Fights: Documentation

This is the fourth fight in my series The Seven Righteous Fights. For an introduction, see The Seven Righteous Fights: Overview.

I’m a technical writer, so you knew I’d get here.

Documentation is not state secrets / Documentation is subtle self-promotion

by @davebould

Documentation is not a secret!

I often deal with product and business people who want to put the documentation behind a login. They want to know who’s reading, they want to harvest sales contacts, that information is valuable to them.

But from the user point of view, having to log in is an extra step, one that not everyone requires. If a sysadmin is looking for information on your product, and they can’t get it without signing up to be pestered by sales calls, they may look at another product first.

On the other hand, if your documentation is clear and helpful and easy to get at, then they are half persuaded right away.

User documents are not the problem

A lot of user docs are actually straightforward to retrofit. That’s what I do for a living.

I come in and create all the first set of documents for a product, and the structure to sustain it.

What’s not easy is:

Developer onboarding

Imagine if you had a tax that took 10 developer hours a week for a month.

I’m here to tell you do, you just aren’t aware you’re paying it. It’s absolutely vital for you to add developers as fast as you can, but it’s also pretty darn important that you not bog down the existing developers who are running as fast as they can.

Taking the time to write a development onboarding document is going to save you a lot of wasted coaching time, and means that when your new devs do have questions, they’re interesting and relevant, not repetitive.

Production and build scripts

This is probably not anything you’d use a tech writer for, but you should think about storing that information somewhere safe. It is pretty devastating for a company’s ability to produce builds consistently if the only person who knows how to do it is gone or sick or has taken a new job.

When you hire a build or production engineer, be sure you get some writing samples from them of how they have made it possible to work without their physical presence.

This is the worst place in the company to keep someone cagey and secretive.

Release Notes

If sysadmins and installers and application owners read nothing else, they read the release notes. It’s vital to know if you are going to install something incompatible, or if a release fixes your problems.

People care deeply about release notes and shoving them into an unloved readme is no way to treat the people actually touching your product and setting it up for others.


Documentation, it’s not just for professionals to write, and it’s not just for end-users to read. Build in that assumption from the start.

This blog post is part 4 of my Seven Fights series. You can hear me give this talk at SpringOne Platform (August 1-4) or Abstractions (August 18-20).