Personas

In this post I will outline what personas are, how they can be created and the advantages using personas in requirements engineering and software testing offers.

Personas are representatives of users, each representing a certain user group. The interesting thing is that these can be used in requirement engineering and testing alike. Each persona has a name, some character traits and some kind of background that might influence its’ behavior. And these should be noted as a basis for a shared understanding. And no, just putting a name to a user role which is an alliteration is not a persona, though strangely enough most end up with a name a like that. I heard rumors that those names are easier to remember…

A (short) persona could look like this:

 

Peter Poweruser

  • computer literate

  • deep domain and software knowledge

  • has been involved with project from the beginning

  • head of working unit

This would be a simplistic description, which could of course be expanded to a full-fledged curriculum vitae, which I suggest you actually do. If you have some emails accounts to spare, you could also create an about.me page for each one.

How to define a persona

There are two ways: research or creation.

Back when I was an industrial anthropologist we would check how things could be used by humans. On aspect could for example be the dimension of a handgrip. So we would measure the grip first. And then we would compare the grip size with the hand size. We had that data available either from anatomic data pools or research we conducted our selves. Regardless of the source, we had statistically reliable data at hand (oh, what a pun). We would then define certain ranges or percentiles, e.g. 20% and 80%. If the grip was between those, the check would be alright.

Now at software development things are a bit different, since you don’t have measures at hand (well, you have, but probably none that would be helpful), but behavior is of more interest. In case you don’t have any reliable data on that, which I suppose is more often than not the case, you will have to create personas yourself. Katrina Clokie has a great blog post on generic personas, which I recommend you to read (right now, actually). In addition to those there are two additional methods I would like to present here, although I only recommend the first one: abstraction and role modelling.

Abstraction in this case means thinking of different users and the behavior you might expect from them in the context of using your software. Now put down these behaviors and character traits in a feature list and see which ones can be feasibly be grouped. Now decide for one prototypical persona which represents each group or at least the most important features of each group.

Another method to create a persona is to model it after a real-life person. I don’t really recommend this approach as it has one major setback in my opinion. You would have to know that person, which can be quite hard sometimes, if you are in a contracting position and don’t really have any contact with actual users. And there is of course no way how this could be possible when your software project is starting from scratch. But if you choose to take this approach, alienate at least the name in case the modelled user should ever see a user story/test/whatever with his name on. That could be kind of awkward. I have seen this method being used in testing, though. But I’d go for research or abstraction anytime!

Okay, so I do have this great persona, now how does it help me?

For me, the biggest bargain is focus. I tend to stay a lot more focused when writing user stories with “As Peter Poweruser I want…” instead of the simple, ever repeating “As a user I want”. On the requirement engineering side it helps me clarify things, especially in terms of usability and accessibility. On the testing side, user stories with a persona make me think more about Gherkin scenarios and explicitly state information that might be helpful for others, which I would probably sometimes just imply when it is just “as a user” way. It also helps me to changes perspectives when testing because personas give you a point of view into which you can immerse more easily.