DeveloperExperience/Personas

From MozillaWiki
Jump to: navigation, search

User personas (not to be confused with Mozilla Persona) are intended to describe realistic people that represent a market segment that is worth discussing. Using personas helps make discussions concrete and ensure that everything we do is built around real "jobs to be done" for which people will choose Mozilla's offerings.

Ideally, these personas will reflect people who have differing needs and workflows.

These personas will generally be used as starting points with variations appearing in product requirements as needed to properly highlight the requirements.

George (designer)

George is the lead designer at a contract web development firm in New York City. He has a degree in graphic design and divides his time between Photoshop/Illustrator and HTML/CSS. Lately, he has taken to producing mockups in HTML/CSS directly, because he finds that the end result (once the developers have gotten ahold of it) looks much more like what he envisioned.

George works on a Mac exclusively. On his way into the office, he gets coffee from Birch Coffee. When he's forced to get coffee elsewhere, it's always with a drop of cream and a pinch of sugar. The surface of his desk has exactly 4-7 items on it at all times.

Denise (lightweight JavaScripter)

Denise is a freelance web developer who focuses on client side coding. She does do some server side coding in PHP, but she does as little of it as possible, preferring to leave that to other developers. Denise sometimes works with designers, but more often she does all of the work in putting together the frontend for a website.

A few years back, she used to use the Prototype JavaScript library, but has been using jQuery exclusively for the past 3 years. She likes jQuery because of the large number of plugins and tutorials that are available. She finds that she's able to achieve almost any kind of effect or interaction quickly, because someone, somewhere has done it before.

Most of her clients no longer require her to support IE6 and 7 (she'll charge them extra if they do).

Greg (new developer)

Greg is a 21-year-old college student (studying computer science but he thinks he'll go for an MBA if his startup doesn't make it big). He is convinced that he has an idea for the next big thing: video memes. Rather than relying on still cat pictures with pithy sayings, he's planning an app that makes it easy to combine your own cat videos (or other people's) with pithy sayings and matching music and share that with your friends.

Greg sees a great mobile experience as being key to his app's success. He is also torn between iOS and Android, because there are so many users of each. He wonders if maybe the web can help him reach both.

He has no experience building mobile apps, a bit of experience making web sites but not much in terms of mobile web. He has programming experience from his coursework and random projects he has done in C++ and Java (Minecraft mods, for example).

Jimmy (learning frontend technology)

As a five-time PyCon speaker, Jimmy is an experienced developer. He's been doing web development for years, but it's been the kind of web development where the server drives the experience entirely. Now, he's getting into the newfangled HTML5 stuff. He's learning about doing more with JavaScript than just validating form inputs. He's learning about build steps, new tags, CoffeeScript and LESS, new APIs. It's a bit overwhelming, honestly.

Jimmy has been relying heavily on MDN and Stack Overflow as he has been coming up to speed on new projects that require him to build more sophisticated front ends. So far, he's having a good time of it.

Emily (corporate web app developer)

Emily works on a team of 50 that maintains 3 different business process applications used internally at Very Large Company Incorporated. Emily is one of the frontend developers. The team also includes a user experience designer, Java developers, database administrators, a documentation specialist, server administrators and QA.

Her team uses ExtJS to provide a very "Windows application-like" user experience. Everyone on the team uses IT-mandated Windows computers, almost all of which were recently upgraded to Windows 7. Thanks to the recent upgrades, they only need to support IE9. Emily prefers Firefox because of its speed and superior tools, but she moves back and forth between Firefox and IE frequently.

John (small team web developer)

John lives and works in Schaumburg, a suburb of Chicago. He works for a 20 person web development company. A typical project for them involves 3-5 people working on the project and lasts 6-12 months, though they're sometimes called upon to squeeze in a quick (1 month) project and they also have some long term customers for which they are maintaining apps that they've been in the past.

Some of the company's projects have demanded more people than were available and the company has outsourced some of the development. John has had to integrate the outside developers into his day-to-day workflow.

John, like the other developers in his shop, describes himself as a jack-of-all-trades. While working on a project, he'll bounce around from doing a bit of Python on the server, to building out a UI in JavaScript, to keeping track of some stats with Redis. Many of their projects have PHP servers, but they've been gradually shifting to Python.

On past projects, John (and others at his company) have been burned by adopting some promising new technology a bit too early. Since then, John has tended to wait until a new library or tool has proven itself.

On the weekends, John has been working on adding smarts to his model airplanes by programming Arduinos and adding all sorts of sensors. He also likes playing tennis, but he messed up his left elbow last Thursday.

John generally runs Windows, but his servers are all Linux.

Ben (early adopter web app developer)

Ben, who lives in San Francisco, recently started working at a startup for the third time. He is now working on an application that pushes real time location information between groups of users. There are two software developers working on the project. Right now, it is end-to-end CoffeeScript. The node.js-based server uses a combination of Redis and MongoDB to store the user's historical data.

The application uses LESS for stylesheets and Handlebars for templates. They started with Backbone.js, but are considering a move to Angular.js.

Ben uses a Mac.

Alexander (Firefox add-on developer)

Alexander got started modding his browser through Greasemonkey scripts. He loved the ability to change the way sites looked and worked and eventually wanted to go farther in changing the browser. He now has ten add-ons that he maintains on AMO, two of which have a large number of ADUs and yield some income in the form of donations.

Building add-ons is a hobby for Alexander, who is a web developer for a large firm in Finland by day. Alexander primarily runs Linux.

Claire (mobile web developer, well-capitalized)

Claire works on the mobile version of SuperTodoer.com, a popular and powerful task manager application built by a VC-backed Silicon Valley company. She has been working on desktop and mobile web apps for 5 years and works alongside a visual designer, Greg. Greg and Claire design the user experience together. Claire and Greg both use Macs.

Claire does not know Portuguese, but SuperTodoer is planning to hire a contractor to localize their app for Brazil.

Management at SuperTodoer is trying to grow usage of their application outside of the US and they see Firefox OS as an opportunity to break into the Brazilian market. The company is willing to buy Claire a device to work with.

Pamela (super-scale web app developer)

Pamela is an unsung hero who, over the past 5 years, has helped several areas in SuperHighTrafficSite.com grow to be among the busiest web properties. Her company is relentlessly devoted to performance, wanting to keep application responsiveness down to 60ms for any interaction and letting new content scroll into view super quickly.

To the untrained observer, SuperHighTrafficSite seems fairly straightforward, but the reality is that they're constantly pushing the bounds of what webapps can do, taking advantage of new capabilities like WebRTC as soon as possible for access to camera and microphone, or using Web Sockets for real time information display or Web Workers to speed things up.

Pamela is a front end engineer. SuperHighTrafficSite has separate teams for the front end and back end, because they're both complicated.

As an early employee, Pamela made enough money on the company's stock that she really doesn't need to work any more. She loves it too much, though, and can't help herself.

Rick (ad agency designer/developer)

Rick works for Cranblotz and Fitch, a "digital agency" that creates ad campaigns and other creative work for businesses of many sizes. Cranblotz and Fitch campaigns are often built on tight schedules and require a tight combination of programming and design.

Rick considers himself a designer first and foremost, but he has taught himself to use HTML, SVG, CSS and JavaScript effectively to create compelling animations and learned many tricks to get his animations to show up as smoothly as possible on as many devices as possible. He makes use of libraries where he can and has even contributed some code back, but he often resorts to coding to the "bare web" when the animation is just not smooth enough.

Secretly, Rick doesn't mind it when people call him a hipster.

João (indie game/freelance web developer in Brazil)

João has spent the past 7 years building web sites and applications for companies in Brazil. Recently, he has experimented with PhoneGap to package up one of his customer’s applications for iOS and Android. João heard about Firefox OS and has high hopes for it, as he is a big fan of open source software. He prefers to use Linux on his desktop machine, but also runs Windows so that he can test his sites with Internet Explorer. João does not know English.

João sometimes works with outside designers, but generally does all of the work himself.

João has decided to build a game for Firefox OS on his own time as a way to learn something new and have some fun at the same time. Who knows? Maybe he’ll make a little money on the side!

Given that this is a side project for fun, João wants to keep his costs low.

Duke (big game developer)

Duke works at a large scale game developer known for a variety of games (some massively multiplayer, others that push the boundaries of graphics power, still others that push the boundaries of good taste). Duke has been with the company for a decade and has proven himself to be a coder that gets the job done.

Normally, Duke does not get involved in porting projects, but he's making an exception because this new project offers some new challenges: he's helping to port one of their big projects to the web. Duke is leading the way in evaluating the options they have, including a complete rewrite of the engine in JavaScript.

Duke's favorite food is spaghetti. He claims that eating the spaghetti helps ensure that his code is well-organized.

Sharon (mobile app developer)

Sharon started developing for iOS soon after the App Store was introduced. She has worked with a couple of different companies and helped to create a handful of reasonably successful apps.

Lately, she has been watching the rise of Android and the company she works for now is trying to figure out their best strategy going forward. For games, Sharon has seen cross-platform toolkits that seem fine. But her company produces business apps. She's trying to figure out if they should embrace the web, use a cross-platform tool like Titanium or just dig in and build native apps for both iOS and Android.

For now, they are just building for iOS but everyone at Sharon's company knows they can't continue that way for the kinds of apps they build.

For Sharon, it's important that she is able to continue building apps:

  • quickly
  • that take advantage of the device features
  • that can be monetized well (they rely on in-app purchases)
  • that are responsive to the user input
  • that work on phones and tablets

Gabriel (content site creator)

Gabriel runs the most popular site for São Paulo’s music scene and nightlife. If there’s music playing anywhere in São Paulo, Gabriel’s site has got the scoop. It has an events calendar, photo galleries, videos and a blog with articles and interviews.

Gabriel uses a Windows computer exclusively.

Through the years of running his site, Gabriel has learned how to bend WordPress to do what he wants. He has had outside help with the graphic design, but he has done everything else himself, relying heavily on WordPress and jQuery plugins to get the desired effect.

Gabriel’s site already has a mobile presentation, but he knows that many people rely on mobile apps rather than the browser. He would like to have an app that lets people submit photos, can receive push notifications about big events and can have a snappier, more responsive feel than his mobile website.

Amanda (Firefox browser hacker)

Amanda first started hacking the browser three years ago, initially with add-ons and she had her first browser patch land two years back. Now, she works for Mozilla, primarily building browser features in JavaScript, though she has landed a handful of C++ patches in Gecko as well.

Amanda lives in Toronto.

Reggie (code installed at customer site)

Reggie's company builds an enterprise product that is installed behind company firewalls (ServerThingBox). ServerThingBox has a browser-based user interface, the development of which is very similar to the development of any web app (you could imagine Reggie being like other personas above). Companies that use ServerThingBox upgrade infrequently and have different support needs from the "software as a service" model that is popular today.