Farai Madzima

From sketches onto screens, I design experiences for humans.

The greatest decision I never made

Coming out of high school I actually planned to study medicine, I didn't even know UX existed. Because I didn't have the grades to get into medicine, I ended up studying MediaLab Arts at the University of Plymouth, where got introduced to HCI.

Bad design can cause misery

And the opposite is also true. Once I learnt about how design affects people's lives, I started seeing bad design everywhere. Handles to pull when the door needs me to push. Battery operated devices that need me to alternate battery orientation. Error messages like "An error occured".

Every time I see something like this, I see an opportunity to improve people's lives (why should doctors have all the fun?).

How do I away from such a compelling proposition?

Iterative design requires testing

Since 2008 I have briefed, designed and conducted user tests on all kinds of software. I've done this in a wide range of contexts: from quick turnaround guerilla tests on prototypes to extensive usability tests with eyetracking on financial software.

I really enjoying evaluating designs and prototypes and sharing results with clients and production teams.Through informed critique and deconstruction of designs we learn how improve designs, and how to design better.

Example User Testing Report

Download Example (PDF - 411KB)

I designed, conducted and compiled the report for this test. I tested an HTML prototype of a website for a UK government body. The site's designers had tried to create a very simple site navigation, and had also come up with a unconventional system for breadcrumbs. They wanted to know if these designs would work across a wide range of people with different computer literacies.

Effective design requires empathy

Project sponsors or even designers and engineers sometimes believe they know what end users really want from a product.

As an advocate for the end user, I use data driven (where resoureces allow) personas and mental models to create a shared, objective understanding of the end user's real goals, motivations and pain points.

Mental Modelling

Download Example (PDF - 90KB)

I modelled and created this mental model for a pharmaceutical client. They needed to create an iPad app that would increase the effectiveness of their sales team.

We spent 32 hours with 4 sales representatives during their normal work days. After observing and interviewing them, we recorded tasks, artifacts and pain points that I fed into the model.

This research ultimately changed the client's brief because it revealed team needs that they had never considered.

Even with their known limitations, I prefer using mental models for communicating user needs because they effectively communicate how these needs evolve over time.


Download Example (PDF - 434KB)

I researched and created these personas for a South African tourism authority. They wanted to create a Trip Planner for their websites that catered to both the local and international audience.

By combining the available (and extensive) data on traveller trends with interviews conducted over the phone and in person I modelled these personas.

The client did not initially receive them well, as typically they focussed on market segments. I had to overcome this challenge by demonstrating how market segmentation models cannot give us the insight into user behaviour that will inform our design.

Shared understanding increases the odds of success

To help teams get a shared understanding of what a project intends I've used a combination of documentation and more recently, prototypes.

I find that prototyping adds immense value because by sketching or using tools like Axure, I can mock up a design quickly and show people how it should work. Better still I can allow them to use it. This allows everyone involved to understand the design with reduced ambiguity.


To quickly communicate and iterate a concept, nothing beats [insert writing implement name here] and [insert surface name here]. Anytime, any place.

It's the cheapest and fastest way to fail in a controlled environment.


Download Example (PDF - 139KB)

For complex systems I draw userflows to understand the logic and permutations of an interaction. Talking through these with developers helps the team to share an understanding of the overall flow without getting into the detail of page layouts.

Clickable HTML Prototypes

View Prototype

While not having worked formally in an Agile setting, more recently I have begun building HTML prototypes in Axure to communicate deign to clients and developers.

This method has reduced the amount of documentation I produce, while increasing the speed of iteration and clarity of communication.

The deliverable shows work that I did while at NATIVE where I led the redesign of a local bank's website.

Spec Level Wireframes

Download Example (PDF - 961KB)

With a colleague at Razorfish, I helped a client to redesign a crucial part of their checkout - "Add Ons". My role was to understand the system contraints stated in the requirements spec and design an improved flow.

The attached deliverable shows the example wireframes I produced to communicate the required changes to the client and the development team.