User Models

A user model distills information about the users of your software that is relevant to the design of that software. Create a user model to help validate choices you'll make regarding features, usage characteristics, and general look-and-feel. Validate by referencing the user model when making those choices and asking "Is this a good decision for this kind of user?"
User models help winnow down your choices
We've got a lot of choices to make when creating software: What features should the software have? How will those features hang together? Should usage be fast, or informative, or both? Should look and feel be sexy and slick, simple and minimal, busy and information rich?
It's likely not you or your team who will use this software, so you're making these choices on behalf of someone else. It's likely that not just one person will be using the software, so you're making these choices on behalf of lots of someone elses. What's more, many of those someone elses may have contrasting opinions about the decisions you're making - which leaves you in the position of deciding whose preference to favor.
A user model distills information about your users relevant to all these choices into a tight, useful package - at least when done right. When faced with choices about your software, or when doing routine validation of usage, or look and feel, find the most relevant user or users in your model and ask: "Will this work for this person?"
Avoid Self-Centered Design
You might be saying to yourself "I make those sorts of decisions all the time without a user model - why would I waste time building this thing?" If you're not saying that to yourself, I suspect you know someone who will say it to you. The real truth is that these decisions are made with respect to some understanding of a target user. In the absence of a user model, most of us substitute the user we know best - ourselves.
Have you ever been in a room where two people are arguing about some aspect of the software both saying: "I think the user would prefer it this way"? In the absence of a some shared user model the user they're likely talking about is themselves. Arguments like this often go badly.
Build a user model to avoid self-referential design decisions
Communicate and create empathy
The process of creating software can be long and involve lots of people - lots of people that weren't in the room when choices were discussed, and decisions made with respect to our target users. People like developers, business analysts, technical writers, or testers may not understand where these decisions came from. What's more, they may have more detail level decisions to make on their own.
Creating a user model and displaying it effectively communicates to others the basis for many design decisions.
A user model displayed and referenced by others allows them to gain understanding and empathy for users and make detail decisions with those users in mind.
Different types of user models
Modeling users isn't a new idea. Very little in this book is. Various software analysis and design approaches use different mechanisms to model users. I'm going to generalize models into four types:
Actors
An actor refers to the common name used for a type user of the system. A typical actor name might refer to the job title of a user, or simply "customer" for user of a consumer focused product. Identify actors and annotate them with the goals this type of user would like to fulfill with the system.

Actor is a term used primarily in use case modeling. A use case models the interaction between multiple parties – or actors. An actor can refer to a person, a system, a part of a system, an organization – anything you’d like to model the behavior of using a . For our use we’ll talk about human types of actors.
Typical examples might be
- Cashier
- Customer
- Manager
- Accounts Payable Clerk
An actor typically references a common name for a type of user. Often they take the form of a job title. In most cases the name is common with respect to the organization paying for the software to be built. For instance actor names like "customer" and "manager" are relationships individuals might have with an organization. When you use an actor name within that organization, the people you’re talking with typically know who you’re referring to and will infer characteristics of that type of person from that actor name.
Pair named actors with goals
To make an actor or list of actors more useful, we might pair the actor name with a goal or list of goals with respect to a process or piece of software we’re considering.
For example, let’s say we were building a point of sale system. Given an actor like cashier we might list a few goals like:
- ring up sales for customers quickly
- do customer returns
- look up prices for customers
- keep the cash drawer balanced
When creating an actor or list of actors, pair them with the goals that motivate their use of the system you’re designing.
User Roles
A user role names a type of user engaged in reaching some goals with a system. A user may change roles as they change goals. For example upon finding something interesting in an on-line website a "casual browser" might change to an "impulsive buyer" or a "skeptical comparison shopper." Use the form "thing-doer" to help name roles. For extra credit use the "adjectived-thing-doer" form to capture important characteristics of the user in the role name.

The term "role" is used in a variety of contexts. It refers to the goal relationship someone has with tool or process. Think of a role as a hat a person puts on. Throughout the day, or even moment to moment, a person can change their role as they might change a hat. Their role might change as their goal with respect to the tool or process changes.
Typical roles might be
- Casual browser
- Impatient buyer
- Order taker
- Time tracker
- AP voucher enterer
In these example roles names I’ve used a "thing-doer" form. The role names all refer to some type of work or activity a person is engaging in with tool or process. Someone wearing the hat of a particular role has the objective of completing that work or activity. Reading a role name tells me what the person is engaged in doing – although not necessarily why.
For "extra credit" I’ve used the decorated form of "adjectived-thing-doer" such as "Impatient buyer." The adjective tells me a bit about the state of mind of a person engaged in this activity. I can assume an impatient buyer in a store would like to find what they need quickly and leave.
The form of role I’ll gravitate to here is from Constantine & Lockwood’s Software for Use.
A good role name reflects the goal a user has with respect to the software
For example if I were building a kiosk in a large book store to help people find books I could define roles for the various people who’d use that kiosk. Suppose I have a type of customer who shows up at my book store in a hurry looking to find what they need and get out quickly. I might be tempted to call this kind of person an "impatient buyer." However, the software I’m building doesn’t allow it’s users to buy – only to find the location of books in my large bookstore. A better name for this role might be "impatient location searcher." Such a role name more accurately reflects the goal with respect to the system.
A person may take on many roles

A person changes roles as they change goals
A user may change roles as they change goals. For example upon finding something interesting in an on-line website a "casual browser" might change to an "impulsive buyer" or a "skeptical comparison shopper."
A variety of actors my fulfill the same role

Actors can assume roles
Within an organization we might find an Accounts Payable Clerk. The clerk may report to an Accounts Payable Manager. Within that organization, those job titles may be significant. If we’re writing software to support the Accounts Payable department, that software may support the routine activity of AP voucher entry. That routine activity might be engaged in by both the AP clerk, and the AP manager. A role name like "AP voucher enterer", although it sounds a bit forced, let’s us focus on person engaged in this activity – not a job title which may have little baring on that activity.
User Profiles
Given and actor or user role we can profile that type of user by adding information about a variety of characteristics such as number of users, age ranges, computer expertise, or frequency of use. A user profile helps supply more relevant information from which to base design decisions and to better communicate that information to others who need to understand decisions made or make their own detail decisions. Build a profile from information acquired through research or captured from assumption.

An actor or role may be profiled by adding relevant information about the types of people occupying that actor or role.
Given an actor and goal or a user role we know a little about the user of our system, but likely not enough to run through a subset of design choices and make some decisions. It may help to add some details to our user such as age range, computer expertise, experience with the software they’re using or process they’re engaged in, the place they’re likely using the software… and the list of information relevant to your design could be endless.
When we start to identify characteristics of our user, we begin to build a profile that helps us better understand that user.
Consider profile characteristics relevance to your design
There are a huge number of details we might consider about any type of user. Some of those details are more relevant than others to the design of your software. For example when designing software to support a business process, a characteristic like gender is likely not relevant. I suppose there’s always an exception, but whether our user is male or female may not have much baring on their goals when using the software or how they might use it. However, if we’re designing a consumer product that caters to specific market segments, how we design the product for stay-at-home-moms might be different than how we define it for sports-fanatic-men.
Most characteristics may have some baring on design, but some have more than others. For example frequency of use is a characteristic that is very relevant to an information kiosk in a museum that’s likely used very infrequently by its target users.
For each characteristic you profile, consider it’s relevance to the design choices you need to make.
For characteristics that have big impact, make sure the information you have regarding that characteristic is comprehensive and reliable.
Consider a variety of characteristics
There’s a variety of characteristics you might consider. Here’s a list, not comprehensive, but useful as a starting point.
# of people in this user constituency
How many people occupy this user constituency? This helps us understand the possibly diversity of opinions in the role and the impact of our design choices. Do our choices impact ten people, or then thousand?
General responsibilities or activities
What general responsibilities or activities might this person engage in when using the software? How frequently are some activities done relative to others? This helps us understand what activities the software might support, and which of those activities are more relevant. If you started personifying a user role, you might should find the role implied some activities this person engaged in order to meet the goals indicated by the role.
Computer skills
How skilled is this person using computers and software in general? Knowing this helps us select specific user interactions that will be learnable and usable by this user type and what tradeoffs we can make. For example if one possible interaction is inexpensive to implement but would be hard for beginners to use, knowing the primary user profile is expert allows us to use a cheaper to implement interaction.
Domain or subject matter experience
How much can the software assume this user knows about their business domain or the subject matter the software deals with? Is the software responsible for "teaching" the user and can we freely sprinkle the software with jargon and concepts understood by experienced people? For example "rack rate" is a term used in the hotel industry to refer to the published full price of a hotel room. You likely won’t find that jargon used prominently in your favorite travel site since the site hopefully assumes we’re not hotel industry experts.
Success goals
How does this user evaluate success? What success goals motivate this user to user our software? If we know what our user considers as success, we can evaluate if the software is helping this user achieve success. Software that helps the profile succeed will ultimately make them happy. During interviews I’ll usually ask the interviewee to "tell me about a good day." I’ll usually get a feel for what constitutes success from that answer.
Pain points
What causes this user trouble outside the software? What common trouble does the user hope to avoid by using this software? If we know this about our user we can evaluate whether the software is helping the profile avoid or more quickly resolve issues. During interviews I’ll usually ask the interviewee "tell me about a bad day." I’ll usually get an idea of what’s painful from that answer.
Usage locations
Where will the user likely use this software? Is it a single place, or a variety of places? On what kind of device – desktop computer, notebook, iPhone? What constraints does this location bring to the software? For example travelers won’t have always internet access. Users who spend a lot of time away from their computer won’t have the ability to get on-screen notifications timely.
Software & tool ecosystem
What other hardware or software products does this user consistently use? Knowing this allows us to leverage usage patterns they may already be familiar with. For example if I use Excel all day, if you give me an application that works much like Excel, I may learn it faster than if it were more like something I’m unfamiliar with.
Collaborators
Who does this user work with or speak with on a regular basis? Does this user need to collaborate with someone to achieve their goals with the software? Knowing this we can evaluate how the software could help this routine collaboration.
Expected frequency of use
How frequently do we think this type of user will use the software we’re considering? Given an understanding of the users’ likely frequency of use, we can determine how learnable the application needs to be. Applications used more frequently become familiar and users become proficient faster. Proficient users often need speed-keys or alternative faster was to perform frequent and familiar tasks. Alternatively users with infrequent use may be constantly re-learning the application. This means the software should be learnable and certainly not rely on training or memorization.
Profile characteristics come from research
If you’ve read this incomplete list of user characteristics you may be wondering how you’re going to get all this information. There are a number of ways.
The most sound way is through research.
We might learn more about our users by conducting a series of user interviews and consolidating information across interviews.
Information can also be obtained by observing user during usability tests, conducting focus group discussions, or by learning in context in an apprenticeship style interview with your users.
We can also get information by conducting studies or leveraging studies conducted by others. You might get usage details by examining logs from existing software. You might also conduct surveys of your target users directly asking them questions.
The persona lifecycle lists some sources for research data – find those.
What does the research based usability guidelines say – are there details relevant to profiles – or mostly just interaction and visual design?
All of these approaches, and many I likely haven’t thought of, yield valuable information that can be consolidated, distilled, and placed into relevant profile characteristics.
Profile characteristics come from assumption
Making choices based on assumption is often considered a bad idea. But we do it all the time. In fact our assumptions are often based on our past experience and observation. It’s just that we may not recall the specifics of the observation well enough to label it "sound research." If your company is in the business of writing software for a specific business area or market, there’s likely people in your company that know quite a bit about it. You may be even one of them. Interview these subject matter experts, or talk to yourself if you’re the expert, and collect assumptions about your users to populate your user profiles.
When using assumptions to populate user profiles, make notes about those assumptions and the profile characteristics you’ve used them. For each characteristic, consider how relevant that characteristic is to the design. From here you can make a determination of how risky it is to use an assumption. For an important characteristic, one that might have big impact on your design decisions, you might want to replace assumptions with research.
Leveraging assumptions to create profiles is a quick way to get started. Replacing assumptions with research later helps you reduce the risk of bad design decisions without sacrificing pace too much.
Personas
A persona represents a user constituency with a description of a tangible archetypal user of the system. In addition to specific relevant details, the persona will have a name, picture, and often quotes or stories told in first person by the persona. Create personas based on information gathered to support a user profile. Use personas to more tightly focus design decisions and more concretely communicate to others who your target users are and how your product can satisfy their needs.

Personas become a more tangible design target by selecting characteristic profile data for use in creating a fictional person representative of a class of users.
Actors and roles seem a bit abstract. It’s harder to put a face on them, to understand details about them that may have bearing on the design of a product. Profiling an actor or role begins to add this additional detail. But, an profile can still be somewhat abstract. For instance, a profile may refer to 18-27 year, men or women, with varying computer experience, and varying economic backgrounds. That variance may make it tougher to make design decisions.
Creating a person remedies this by selecting specific details from a profile and using those details to create a archetype of a specific fictitious person that "personifies" the group of users within a user constituency. A profile composed of 18-27 year old mend and women with varying computer experience and economic backgrounds might be personified by:
Jen, is a 23 year old college student from Philidelphia

Jen comes from an upper middle class background, but like many college students needs to be financially conservative since she’s not yet working. Jen’s been using computers since her family purchased its first Apple computer when she was 7. Today she comfortably moves back and forth from Apple to Windows based computers.
Selecting specific details focuses design
It’s difficult to design for a large group. Trying to satisfy everyone is the road to disaster. Using a persona to target your design allows you to focus on satisfying a single individual. The goal is a strong coherent design that subsequently satisfied most people in its primary user constituency. This rather than a design that looks like it’s trying to make allowances for too many types of people.
Select representative details
For a group of users within a category of information, there will be some variance. But, it’s common to see clusters or areas where a higher density of people within in a similar range exist.
Let me be more concrete.
Let’s say we’re designing an application used by largish organizations to process accounts payable. The typical accounts payable clerk’s computer experience may vary wildly from absolute novice to expert. But, if we were to arrange this group on a curve, we might find there are a large number with moderate computers skills, a reasonable number of novices, and very few experts. A curve might look something like this.

Choose representative profile characteristics to use in your persona.
When personifying this group, it makes sense to describe a person with moderate computer skills – someone who’s pretty comfortable using a computer, but not the person you’d call on when you can’t get your laptop to connect to the Starbuck’s WiFi.
Choosing a specific data point from this group of users will focus your design so it doesn’t cater to absolute novices, or proficient experts, and is most likely to work well for the great majority of AP clerks in your target user constituency.
Create personas by making relevant representative information concrete
Create a persona by leveraging profile information and choosing a representative subset of information from each profile characteristic. Connect this representative information together using concise prose. Describe your person in a way that makes them seem concrete.
As you describe your representative person, keep in mind the information needs to be relevant to the design of this product. Including information about the car they drive might be relevant to the design of a handheld product often used in a car, but irrelevant to an accounts payable processing system.
Keep the profile short and easily consumable by its reader.
Make the persona sticky with a name, pictures, quotes, and stories
Give your persona a name. This allows you to refer to him or her in first person. Not only does this help consumers of the persona better identify, but it’ll shorten lots of conversations you’ll be having about this user constituency. Instead of saying business people who travel often, you can say "Duncan." Choose a memorable name – but not too out of the ordinary.
Add a photograph into the persona to give this persona a face. Let your reader look into the personas eyes.
You can select an image from a variety of sources. When I’m building something for internal use, I’ll fall back on a Google image search. But, if I suspect the image might get out of my company, and I’m concerned with potential licensing issues for the photo, I’ll rely on a source for clip-art images. Currently I use iPhoto.
Select a photo that shows more than your persona’s face. Show your persona in context where they’re likely to spend time using the product you’re designing. A photo of a traveling businessman using a laptop in an airport is a more powerful image than a close-up of a man that looks like he could be a businessman.
Attach quotes to your persona delivered in first person by him or her. Select a quote where the persona says something about their goals, pain points, or needs. You might also select a quote that helps illustrate a detail relevant to design.
If we were building time tracking software for Duncan, he might say:
"The half hour wait for the plan Friday afternoon is when I like to get my time and expenses taken care of so I can enjoy the weekend with my family."
If I were building time tracking software for Duncan, I now know he uses it on a laptop, likely in a busy airport, may or may not have internet access, and wants it to be quick enough to use that he can complete it in a few minutes. I may know someone like Duncan. Even if I don’t, I can look into his eyes, hear his voice, and begin to imagine the sort of software that could satisfy him.
I find that if I’ve gathered information by talking to a few Duncans that I’ll have lots of quotes in my notes that I can use. Stitch a couple quotes together that clearly identify user needs in their voice.
Adding in an anecdotal story further makes the persona more tangible and memorable. Use a story told to you by a potential user of your product. As with quotes, you may blend together a couple stories you’ve heard. Choose a story that helps illustrate the need the user has for this product.
When selecting representative profile details, look for details that compel multiple personas
When looking at profile details you may find a wide variance in a certain interesting area. This may be an opportunity to split a profile into multiple personas.
For example, assume we’re building a new service in our college campus website. We’ve profiled students and we see a wide variance in computer experience and skills. Computer skills seem pretty relevant to downstream design choices. I may choose to create two personas. The first may have strong computer skills. The second may be downright computer phobic. We’re then left with the decision of which of these users we consider more critical to the design of this software. You can see also that the value of the persona we create might extend far past the software to give us guidance on how we might publicize or market this new service.
While looking at profile data, look for relevant variances in characteristics as well as interesting correlations. If you’ve helped conduct interviews or gather other research data, you’ll begin to see patterns, or distinctions that make a difference in your design that compel you to create multiple personas for the same type of actor or role.
Leverage your user models
Communicate user models in a short documents, posters, or on-line documents
To be valuable the user models you create must be consumed and referenced. Create them in a way that can be displayed in a public area and readily accessed electronically.
It's quick to create an ad hoc poster of a user model by hand writing details on poster paper. If you're building a persona, fix photographs to the paper with tape. Draw cartoons or pictures to help make the model memorable.
Create electronic documents that include photos or figures. Post those document in a place they can be readily accessed. Follow best practices for electronic documents by including information about who created the document, when, and where a most current electronic version can be found.
During collaborative worksessions keep user models handy.
Less is more, except when it's not enough
You may gather a large amount of information to base user profiles or personas on. That's good. But, when creating profiles, keep them concise and relevant to the design. Unnecessary details are… well… unnecessary. It'll slow you down to consider information not relevant to your design decision.
If a goal of your user model is communication, than extra, unnecessary detail may actually help better communicate who your users are. But, too many of these risks the creation of a wordy profile that won't be read. Inconsequential details are more likely to "turn off" the profiles reader as they struggle to understand how this profile is relevant to the decisions they've observed or those they need to make themselves.
All that said, distill enough detail into your profile to help you make design decisions. The more critical the profile to your design, the more relevant detail warranted.
Don't identify too many users in your model
Just as too much detail on a specific user in your user model makes it difficult to consume the model, too many users have the same effect.
A model containing 3-10 types of users works well.
If you feel you need more users in your model, consider breaking the design process up to focus on large sections or modules of the application where each modules might serve 3-10 types of users. Also consider combining users where there distinctions are likely not to have a significant impact on your design decisions.
If you start modeling users, you're more likely to have too many distinct types. But, it might be possible to have too few. You can tell you have too few when it becomes difficult to make design choices because the diversity within the user constituency results in a large number of good choices. Consider splitting users into different groups to separate out the distinctions that have an impact on your design. If you're not already using a persona, consider personifying diverse users to better focus your design efforts on one type of user.
Identify Focal Users
All users are not equally relevant to the creation to the design of your software. Throughout the design and development process you'll need to make trade-offs where you spend more time and effort to include or scale up some product features more than others. Spend that extra time and effort on users that will have the greatest impact on your software. These are our Focal users.
When prioritizing user constituencies in your model keep a model containing business objectives at hand. The users that are most critical to achieving business objectives will be your focal users. If you're building a consumer product, the focal user in your model may be the one that makes buying decisions. This person may be assessing the product's ability to meet business objectives on behalf of their organization. Sometimes their organization is their own household.
You can collaboratively identify focal users in your model using a collaborative prioritization approach such as voting. Make sure those voting do so in the context of understood business objectives and understood users in the model. As the context-setting question: "which of the users in this model are most critical to meeting our business objectives?"
It's a good guideline to allow as much as a third of your user constituencies to be considered focal. In a model containing 10 types of users, 3 or 4 might be focal. In a model containing three users, just one would be focal.
When a piece of functionality will be used by both focal and non-focal users, your goal when choosing and designing functionality is to best support focal users without making life too difficult for those that aren't focal. This is similar to Cooper Interactive's approach to identifying primary and secondary personas - where the software must satisfy the primary persona, while still supporting secondary personas.
Be model type agnostic
An effective user model can be easily leveraged to identify feature and design alternatives and function as a basis for making good choices. An effective user model communicates a basis for design choices to everyone involved in the design and development process. You'll find that being conforming to a particular model type isn't necessary to be effective.
Blend actors and roles as necessary.
I prefer using roles, but I find in some organizations the common name for a type of user is so common that using a role name to refer to that type of user creates more confusion than clarity. In those cases I mix lists of roles with actors, or common user names.
For focal users, profile or personify.
Identifying a user type as focal implies you'll need to spend a bit more time focusing on the functionality to support that user and that user's experience with your product. To make better decisions, you'll find that you may need to add detail to an actor or role. Start by profiling. Or, carry through to personifying to make this user even more tangible. It's OK to blend a little. Using photos and quotes in a profile for instance. Narrowly personify a user by starting from a user role and focusing only on the aspects relevant to the role - that is a type of user engaged in fulfilling a goal with your product.
In the end you may find that you have a couple personas, a profile or two and a few roles annotated with a couple relevant details. That's fabulous so long as you have the information you need to make decisions and adequately communicate your user model to others.
Buyers, adopters, and users
At times we confuse people making buying decisions about our software with people using it. You may find this especially true if you're relying on sales or marketing for intelligence on your users.
When making a software buying or adoption decision a person will likely look at the product relative to other products or choices that person has. For buyers the number of features relative to competitors is important, as are making sure you have the most sought after features. Esthetics are also important. Buyers may make decisions based on very little or no contact with the software. It's common to make quality judgments based on esthetics.
For some products those in a buying role may never be users. For instance, those making choices to buy enterprise class software will look at features the software has and the expected benefit to their organization. The actual use of the software will occur by others in various roles throughout the company.
In these cases the role of adoption is may also be less significant. The accounts payable clerk may have no choice but to adopt the software purchased by the company's CEO. However, slow grumpy adopters may impact the return on investment the CEO gets from his or her buying decision.
In consumer products where the buyer, adopter, and user may actually be the same person, it's important to be aware of changes in concerns as a person moves through buying, adoption, and day to day use.
The features significant to in making a buying decision my not be important in day-to-day use. For example, I may choose to purchase accounting software partly because of its cool graphing functionality, but then never choose to use it. While adopting the software I may expect it to work like other software I'm accustomed to. I might expect quick access to help or tutorials.
When creating a user model, consider the impacts of buyers, adopters, and users. It may be important to separate out a distinct buyer role so that you can clearly identify why you're making some feature choices in the software. Identifying a focal buying user in your model helps deal with the objection "no one will really use this feature!" They may not be likely to use the feature, but your product may not be purchased or adopted without its inclusion.
Further reading:
comment on this page via email ![]()
Next Topic: create actor goal list >>
<< Previous Topic: Modeling users and their goals

