Personas: imaginary friends for software developers

In the beginning there were user stories.

Well, actually in the beginning there were requirements, but that was too easy, so it came to pass that everything had to be phrased using the following snowclone:

"As an X, I want to Y."

where X was some kind of user and Y was something you could sell. This was easy enough to subvert:

"As Dave, the IT guy, I want customers to stop yelling at me about our terrible software."

But somewhere along the line, some daydreamer sprouted a thought bubble in which the following words appeared: "What about the users of these so-called 'user stories'?"

Now, instead of having a simple requirement or even a user story, you create an entire fake human being, with their own thoughts and dreams and needs. In fact, you create several such humans, and attach the user stories to them directly. Next, you give these imaginary people names, and talk about them as if they are real.

So: you just boiled down the vast, multidimensional phase space of everything that your software could possibly ever need to be, and everything that a human being could realistically ask for, into - say - six discrete points. (Or four, if you run out of runway.) You'd better hope that all of your requirements were attached to at least one of these fake people. And that any new requirements which arrive can be easily attached to one of them. Unless you want to create a whole new persona to accommodate that one requirement, or modify an existing persona a little bit.

And also: all of your requirements are now smothered beneath an extra, unnecessary layer of abstraction.

"Jeff wants to be able to download and install our thing and deploy his first working widget within 60 minutes."

A previously clear requirement is now like the final line of some obscure Aesop's fable. Who's Jeff? Jeff doesn't exist. Why does Jeff want this? Again, Jeff does not exist. Why don't Martin, Sandra or Cornelius also want this? Why 60 minutes, not 45? Did any of the real people upon whom Jeff was presumably based actually say this thing? Who are those people? What did they actually say? What was the point of this obfuscation step - which, in case it wasn't clear, consumes real development time?

Inventing and naming imaginary people as if they were real is insane. It's a real form of insanity. To an adult, it is exactly as disconcerting a notion as the idea of having imaginary friends.

Meanwhile, there are real potential customers. These people have explicit needs, and these needs can't afford to be diluted or transmogrified. These people have money.

Or maybe not. Maybe Jeff's a metaphor for someone who doesn't exist. In which case, maybe don't make the software at all?

Take this to its logical conclusion. Give Jeff a hair colour, a wife, a bachelor's degree. Develop a potted history of his bespoke artisanal toothpaste startup. Develop a scenario in which Jeff hasn't got more than 60 minutes because it's his turn to collect the kids from school. Hypothesise a The Office-style documentary exploring his channel-switchingly boring and awkard professional relationships.

Maybe a point comes where the fictitious universe you've created is so detailed and wonderful that it might as well be real. At that point, you might as well be gathering requirements from reality. What an idea!

Or maybe a point comes where the personas are such detailed AIs that they cease to be useful. "Get lost," Jeff tells us when we approach him for more information, "we have toothpaste to ship. I'm too busy to talk to you. Your software is terrible, there's a laundry list of stuff you'd need to fix or add before we'd even consider using it. No, we won't tell you the list. Most of it's pretty obvious. You're the developers, work it out."

Oh no! Our imaginary friends don't even like us anymore. We built them too real.

"In fact," Jeff adds, "don't bother calling back. We went with your competitors. They got to market quicker."

What? Competitors?

Sandra and Cornelius and three other personas formed a competing company?

And made a superior offering in less time! Ack!

Back to Blog
Back to Things Of Interest

Discussion (18)

2013-12-31 11:03:51 by Rick:

Is ... Is this a thing that happens? Tell me this isn't a real thing that really happens.

2013-12-31 11:24:00 by P:

Andrew only had the attention span to read half of this and is now going back to drinking tea and eating chocolate orange. How will your blog cater to his more basic needs for food and water before you attempt to tell him anything? How can you expect him to focus with dangerously low blood sugar levels?

2013-12-31 11:25:56 by qntm:

In the end, there is only one user story: "As a human being, I wish to breathe, drink, eat, procreate and accomplish other, more abstract tasks of my own choosing."

2013-12-31 11:44:12 by Rafe:


2013-12-31 16:48:12 by VSim:


I write about your post at

about the possible time travel models; I would have commented there but I found no way to do it.
Specifically, about this part:

Equally, it could be that the original timeline simply ceases to exist when the time travellers depart backwards in time. In this case, it is more as if the time travellers are "unwinding" the universe back to some earlier state and then resuming normal movement through space afterwards -- again, as if the multiple timelines are running sequentially.

You got this idea from me in january 2011, I wrote you a mail about it. To which you actually responded and thanked me for it. In private. It would have been nice of you to also mention it publicly, maybe even give a link to my site at

V. Sim.

2013-12-31 17:17:29 by aliceOmeta:

why, this sounds reminiscent of tulpas! .

a completely sane thing.

our modern society is just memetically uncomfortable with this idea for stupid reasons, not unlike the reasons they're uncomfortable with transpeople

- gmail: alice0meta

p.s. "names can consist only of letters" :c i want to use my name alice0meta ...

2013-12-31 17:56:16 by Xae:

A completely sane thing? That's not normally how people describe hallucinations.

2014-01-01 01:27:39 by Jymbob:

Depends if you're speccing or developing.

If you're speccing, you probably don't have a huge amount of data on what actual real users might want, but you can definitely think up some scenarios 'average' users will find themselves in. It's easier for readers to latch onto Mike, Bob, Sandra and Phil than Person A (Computer Expert), Person B (Computer Novice), Person C (User of Competitor's Product), so for ease of design, we place imaginary people in scenarios that we can refer back to.

If you're developing an existing product, then hopefully you've got some real people giving you real data about their needs. If that works for you, then that's enough. If not, make up some people *based on the real ones*, or possibly in addition to them to fulfil additional parts of the proposed spec.

As it says on the book above my desk: Spolsky knows his stuff!

2014-01-01 11:31:24 by Solus:

@aliceOmeta holy crap - thanks for the link. I've had one of those for years and never knew they had a name, or were so common. This is the best kind of Christmas present - the kind you didn't know you wanted.
Even if it is a little late. ;P

2014-01-02 02:27:46 by isaac:

alice0meta, please don't compare tulpas to trans people.

2014-01-02 19:21:03 by Aegeus:

The personas are (or should be) shorthand for a customer segment you've already identified. You use "Dave" because "IT Guys who are fed up with customer complaints" is too long.

Magic: The Gathering internally uses these in design. They have Timmy, who likes flashy cards with big effects, Johnny, who likes designing decks and finding clever combos, and Spike, who plays to win. They do that because those are the markets they're trying to appeal to. They can say "This is a card for Timmy, not Spike," as a way of saying "This card is probably not going to see tournament play, but it's so cool that everyone will want it for kitchen-table games."

2014-01-02 22:49:57 by Toph:

Aegeus: So you identify your market segments first, gather requirements from them, and only give them names so that you can rope the social-interaction part of your brain into helping the abstract-thought part do software design?

Fair enough, but then four personas seems too many. Can you really make all of them happy all the time? (Serious question, I'm not much of a designer.) Have you ever considered making four different versions of your product instead - perhaps TreeFighter Lite, TreeFighter Home, TreeFighter Business, and TreeFighter Mobile? Is it easy to make something that appeals to everyone?

And Sam, I'm surprised that you seem to disapprove of creating fictitious personalities. I mean, nobody expects Laura Ferno to be a useful metaphor for software development, but there's nothing wrong with making people up...

2014-01-03 17:43:02 by qntm:

> And Sam, I'm surprised that you seem to disapprove of creating fictitious personalities. I mean, nobody expects Laura Ferno to be a useful metaphor for software development, but there's nothing wrong with making people up...

I disapprove of creating fictitious personalities for the purposes of software development. I could not have made this more clear.

2014-01-04 11:53:10 by P:

Maybe they could be useful to help you focus the rage derived from ridiculous feature requests towards a fictional person rather than an actual customer. Also, you may need to consider writing your blog for users who will fail to understand the point of your blog.

2014-01-04 12:13:56 by MichaelGrosberg:

Personas are not a solution to every problem in software design but they can be helpful. Obviously performance issues is not an aspect in which you'd want to use personas, but they are very helpful in the field of interaction design and UI. Developers sometime lack understanding of what users actually do with the software and how they use it and this helps them visualize users who are unlike themselves. And personas should drive requirements, not vice-versa. If you already have a requirement there's not point in attaching it to a persona. Personas are there to help you come up with requirements you'd never had thought of in the first place. Also, they're a good way of communicating user's needs. If you need to convince someone a feature is necessary it's helpful if you have some concrete user in mind.

2014-01-04 20:33:57 by Toph:

Oh, I see. Your point is clear, I was just having trouble following the "imaginary friends are a mental sickness" argument.

2014-01-05 19:48:24 by VSim:

Looks like it won't happen.
I thought it might have been an honest mistake but it looks like it's intentional.

2014-01-09 16:15:16 by JJJhS:

Just because personas are not useful for *you*, does not mean they are not useful for *anyone*. As other commenters have more capably than I laid out, there are specific situations where personas can be useful. The problem comes when someone tries to apply personas (or any other specifc technique) to all situations.