m (→Persona #3) |
mNo edit summary |
||
(46 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{admon/ | {{admon/note| This is a living document. | This document can be updated as discussion dictates, etc. Not sure why we have personas? Read the [https://fedoraproject.org/wiki/Server/Personas/FAQ Personas FAQ]. | ||
}} | }} | ||
= Discussion = | |||
Why do we have personas for the server product? [https://fedoraproject.org/wiki/Server/Personas/FAQ Read the personas FAQ]. | |||
* [https://lists.fedoraproject.org/pipermail/server/2013-October/000224.html Discussion of Fedora Server use-cases mailing list thread] | |||
* [https://fedoraserver-wgblog.rhcloud.com/?p=32 November 19 2013 meeting] | |||
* December 10 2013 Meeting | |||
* December 17 2013 Meeting | |||
= Personas = | = Personas = | ||
Line 10: | Line 19: | ||
== Primary Personas == | == Primary Personas == | ||
=== Persona #1 === | === Persona #1: SysAdmin MacGuyver === | ||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 33: | Line 42: | ||
{| | {| | ||
! Profile | ! Profile | ||
| MacGyver | | SysAdmin MacGyver | ||
|- | |- | ||
! Age | ! Age | ||
| | | 36 | ||
|- | |- | ||
! Location | ! Location | ||
Line 77: | Line 86: | ||
< description of a typical work day goes here. > | < description of a typical work day goes here. > | ||
=== Persona #2 === | <hr /> | ||
=== Persona #2: DevOps === | |||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 125: | Line 136: | ||
==== Motivation ==== | ==== Motivation ==== | ||
* Use the latest and best technology to solve interesting problems. | |||
* Produce high-quality applications that excite my clients and build a great reputation for it. | * Produce high-quality applications that excite my clients and build a great reputation for it. | ||
* Grow my business and gain key clients. | * Grow my business and gain key clients. | ||
==== Goals ==== | ==== Goals ==== | ||
* Agility | |||
* Rapid recovery / rebuild of servers when they go down. | |||
* Anticipating outages / becoming aware of outages before they happen or as soon as possible in order to mitigate them. | * Anticipating outages / becoming aware of outages before they happen or as soon as possible in order to mitigate them. | ||
* | * Seamless migrations/upgrades of my applications. | ||
* Deploy projects to PaaS, multiple cloud providers, and even bare-metal | |||
(Perhaps not relevant to Server) | |||
* Balance multiple ongoing development projects at the same time. | * Balance multiple ongoing development projects at the same time. | ||
==== Frustrations ==== | ==== Frustrations ==== | ||
Line 149: | Line 164: | ||
< description of a typical work day goes here. > | < description of a typical work day goes here. > | ||
=== Persona #3 === | <hr /> | ||
=== Persona #3: Traditional App Developer === | |||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 156: | Line 173: | ||
<span style="font-size: 22px; font-weight: bold;"> | <span style="font-size: 22px; font-weight: bold;"> | ||
George Simpson | |||
</span> | </span> | ||
<span style="font-size: 14px;"> | <span style="font-size: 14px;"> | ||
Principal Application Developer, Defense Contractor | |||
</span> | </span> | ||
<span style="font-size: 16px; font-style: italic;"> | <span style="font-size: 16px; font-style: italic;"> | ||
" | "Critical bugs could seriously injure real people, or worse. We have a strict regimen behind our development process to minimize risk." | ||
</span> | </span> | ||
Line 187: | Line 204: | ||
|- | |- | ||
! Primary Tools | ! Primary Tools | ||
| Uses a Thinkpad as his workstation. | | Uses a Thinkpad as his workstation, emacs, gcc and git. | ||
Has a smartcard and various x509 certificates to access critical systems. | |||
|- | |- | ||
! Referrals | ! Referrals | ||
| ACM? IEEE? | | ACM? IEEE? USENIX? LISA? | ||
|} | |} | ||
</div> | </div> | ||
Line 197: | Line 215: | ||
==== Motivation ==== | ==== Motivation ==== | ||
* | * Keep the people interfacing with my software safe. | ||
==== Goals ==== | ==== Goals ==== | ||
* Minimize | * Stability and predictability | ||
* Minimize risk; vet every code change before it gets in and causes potential problems. | |||
==== Frustrations ==== | ==== Frustrations ==== | ||
* | * Bureacracy - although I understand why it's in place, it takes the effort of moving a mountain to move a molehill in this codebase. | ||
* Hardware vendors not supporting hardware for as long as we need to run it in the field. | |||
* Testing matrix requires a lot of infrastructure to perform various tests in a reasonable time frame on as many configurations as possible. | |||
==== Work Description ==== | ==== Work Description ==== | ||
< | * Triage of bugs filed by support/users | ||
* Short daily or weekley status meetings | |||
* Prepares design documents for new futures or bug fixes | |||
* One of the following: | |||
** Writes code/bugfixes | |||
** Writes unit tests | |||
** Writes memos for doc writers or writes documentation directly | |||
<hr /> | |||
=== Persona #4 === | === Persona #4: Junior Enterprise SysAdmin === | ||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 234: | Line 263: | ||
{| | {| | ||
! Profile | ! Profile | ||
| | | Junior Enterprise SysAdmin | ||
|- | |- | ||
! Age | ! Age | ||
| | | 24 | ||
|- | |- | ||
! Location | ! Location | ||
| | | Jersey City, NJ | ||
|- | |- | ||
! Technical Level | ! Technical Level | ||
| | | Apprentice | ||
|- | |- | ||
! Years Experience | ! Years Experience | ||
| | | 2 | ||
|- | |- | ||
! Primary Tools | ! Primary Tools | ||
| | | bash, ssh, mutt, ? | ||
|- | |- | ||
! Referrals | ! Referrals | ||
| | | ? | ||
|} | |} | ||
</div> | </div> | ||
Line 259: | Line 288: | ||
==== Motivation ==== | ==== Motivation ==== | ||
* | * Avoiding screwups - I want to get noticed at my company and build a good reputation. | ||
* Learn and become a better sysadmin. | |||
==== Goals ==== | ==== Goals ==== | ||
* ? | * I manage the email infrastructure; my goal is 95% uptime this year. | ||
* Minimize unplanned outages. | |||
* <ugh what automation goals might he have with mail infra?> | |||
==== Frustrations ==== | ==== Frustrations ==== | ||
* | * Bureacracy - I work at a large company, and it's really hard to make change happen here. | ||
* Spending cycles porting code to an endless array of platforms – it’s time-consuming and uninteresting work | |||
* Spammers - gunking up the works. One of the things that sucks about working on mail infrastructure. | |||
* End-user interaction - it's hard to walk people through tasks on the phone, and we have a heterogeneous environment so I'm not always quite sure what mail client they are using. | |||
==== Work Description ==== | ==== Work Description ==== | ||
Line 272: | Line 308: | ||
< description of a typical work day goes here. > | < description of a typical work day goes here. > | ||
=== Persona # | <hr /> | ||
=== Persona #5: Decision-Maker === | |||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 287: | Line 325: | ||
<span style="font-size: 16px; font-style: italic;"> | <span style="font-size: 16px; font-style: italic;"> | ||
" | "In this competitive startup market, we need to be fast, efficient, and use technologies that attract developers to the company." | ||
</span> | </span> | ||
Line 298: | Line 336: | ||
|- | |- | ||
! Age | ! Age | ||
| | | 31 | ||
|- | |- | ||
! Location | ! Location | ||
| | | San Francisco, California | ||
|- | |- | ||
! Technical Level | ! Technical Level | ||
| | | Advanced | ||
|- | |- | ||
! Years Experience | ! Years Experience | ||
| | | 12 | ||
|- | |- | ||
! Primary Tools | ! Primary Tools | ||
| | | Uses a ThinkPad with Linux or MacBook Air, a tablet for meetings, and supports developers using their choice of hardware and OS | ||
|- | |- | ||
! Referrals | ! Referrals | ||
| - | | TED, Twitter, Google+, Reddit, TechCrunch, GigaOm, Hacker News, Mailing Lists, Strata, Wired, Big Data newsletters, blogs (especially ones from Facebook, Twitter, and similar industry-leading engineering departments), other industry conferences | ||
|} | |} | ||
</div> | </div> | ||
Line 320: | Line 358: | ||
==== Motivation ==== | ==== Motivation ==== | ||
* | * Building a great company around great technology | ||
==== Goals ==== | ==== Goals ==== | ||
* | * Communicate the organization's technology vision to the world | ||
* Interface with upstream projects to see where technology is headed and influence the direction | |||
* Establish good, key metrics to encourage work in the right direction | |||
==== Frustrations ==== | ==== Frustrations ==== | ||
* | * Needing to get a minimum viable product (MVP) shipping | ||
* | * Security models | ||
* Linking services together across machines | |||
* Playing office network admin in addition to CTO | |||
* Tension between choosing respected, traditional choices and things that will give the company an edge. | |||
* Integrating developer tools, QA needs, and production needs | |||
* Cloud versus bare-metal economics and overhead | |||
* Proprietary versus FOSS/in-house service options | |||
==== Work Description ==== | ==== Work Description ==== | ||
* General executive meetings (short daily ones, longer weekly ones, and occasional retreats) | |||
* Coordinating with VP Engineering on weekly- to roadmap-level planning | |||
* Preparing internal communication materials for sales, marketing, support, and the general company presentations | |||
* Blogging, writing articles, and participating in online discussions | |||
* Coding and code reviews | |||
* Planning hackfests to improve FOSS projects, meet external developers for recruitment, and learn about projects | |||
* Attending community meetups | |||
* Vetting candidates and participating in interviewing | |||
* Preparing responses to security questionnaires from potential clients | |||
== Secondary Personas == | == Secondary Personas == | ||
=== Persona # | === Persona #6: Server Role Creator === | ||
<div style="float: left;"> | <div style="float: left;"> | ||
Line 352: | Line 406: | ||
<span style="font-size: 16px; font-style: italic;"> | <span style="font-size: 16px; font-style: italic;"> | ||
" | "The work I do would be helpful to others, so I want to share it." | ||
</span> | </span> | ||
Line 363: | Line 417: | ||
|- | |- | ||
! Age | ! Age | ||
| | | Indeterminate | ||
|- | |- | ||
! Location | ! Location | ||
| | | Silicon Valley | ||
|- | |- | ||
! Technical Level | ! Technical Level | ||
| | | Moderate to high | ||
|- | |- | ||
! Years Experience | ! Years Experience | ||
| | | 5+ | ||
|- | |- | ||
! Primary Tools | ! Primary Tools | ||
| | | Shell scripts, source-control, IRC | ||
|- | |- | ||
! Referrals | ! Referrals | ||
| | | Flock, FUDCon, FOSDEM, LinuxCon, Fedora mailing lists and IRC | ||
|} | |} | ||
</div> | </div> | ||
Line 385: | Line 439: | ||
==== Motivation ==== | ==== Motivation ==== | ||
* | * Enhance the State of the Art | ||
* Minimize effort for deployment | |||
==== Goals ==== | ==== Goals ==== | ||
Line 394: | Line 449: | ||
* New to Fedora community; not sure how to get involved. | * New to Fedora community; not sure how to get involved. | ||
* Documentation is often sparse, out of date or scattered between many sites. | |||
* Guidelines are built around packaging projects, not solutions. | |||
* Hates seeing people solving the same problem over and over. | |||
==== Work Description ==== | ==== Work Description ==== | ||
* Coordination between multiple upstream projects | |||
** Release schedules. | |||
** API stability promises. | |||
* Builds deployment scripts and setup tools. | |||
* Communicates with the Fedora Project and its Server SIG. | |||
* Acts as a liason with one or more companies with a goal to achieve. | |||
* Helps prioritize the high-value roles for construction and maintenance. | |||
* Attends conferences to evangelize and listen to pain points. |
Latest revision as of 16:09, 25 February 2014
Discussion
Why do we have personas for the server product? Read the personas FAQ.
- Discussion of Fedora Server use-cases mailing list thread
- November 19 2013 meeting
- December 10 2013 Meeting
- December 17 2013 Meeting
Personas
- ‘application developer’ could be one right? someone who wants to build server applications
- ‘home/small business’ where they are constrained to one server/limited resources?
- ‘enterprise datacenter’ where they want to roll out many server instances and automate.
- A mid-level Microsoft administrator who does not have time for a steep learning curve.
Primary Personas
Persona #1: SysAdmin MacGuyver
Sandra Summers
Senior System Administrator; New Amsterdam Historical Society
"We're a small organization and we have limited resources... we just can't order new hardware for every new service request we get."
Profile | SysAdmin MacGyver |
---|---|
Age | 36 |
Location | Brooklyn, New York, USA |
Technical Level | Advanced |
Years Experience | 15 |
Primary Tools | ? Not sure. Thinking about things like puppet, nagios, splunk, etc. |
Referrals | Learns about new tech from team members, USENIX mailing lists, blogs |
Motivation
- Keep IT team within budget.
- Minimize late-night phone calls.
Goals
- Clean, secure, and manageable deployment of multiple server applications to a single server.
- Unified management of server resources.
- Ability to understand resource usage across server inventory to identify underutilized resources.
- Ability to easily deploy apps to underutilized resources.
Frustrations
- Home-grown scripts for deploying apps that have been around forever that have mysterious voodoo power. Difficult to reproduce application deployments consistently.
- Proliferation of various management console interfaces to have to manage.
Work Description
< description of a typical work day goes here. >
Persona #2: DevOps
Joe Franklin
Ruby on Rails Freelancer; Joe, Inc.
"I want to build amazing, easy-to-deploy server applications for my clients."
Profile | DevOps |
---|---|
Age | 27 |
Location | San Francisco, California |
Technical Level | Journeyman |
Years Experience | 7 |
Primary Tools | Uses a MacBook Pro as his workstation. Uses Ruby on Rails and Github. |
Referrals | RubyWeekly, Ruby Insider, engadget, lifehacker, ... (?) |
Motivation
- Use the latest and best technology to solve interesting problems.
- Produce high-quality applications that excite my clients and build a great reputation for it.
- Grow my business and gain key clients.
Goals
- Agility
- Rapid recovery / rebuild of servers when they go down.
- Anticipating outages / becoming aware of outages before they happen or as soon as possible in order to mitigate them.
- Seamless migrations/upgrades of my applications.
- Deploy projects to PaaS, multiple cloud providers, and even bare-metal
(Perhaps not relevant to Server)
- Balance multiple ongoing development projects at the same time.
Frustrations
- Platform bugs that casue me to spend cycles porting my code forward. It's time-consuming and uninteresting work.
- Cloud providers that change their APIs in an incompatible way with little notice! Having to develop new connectors for production servers with only a few days' notice is not cool.
- Spending cycles packaging code up for an endless array of platforms - it's time-consuming and uninteresting work.
- Building software on a platform so old it doesn't have the python or ruby library I need and not being able to pull it in from out-of-stream.
- Being forced to build on top of or connect together poorly or undocumented platforms, and/or use weak platform APIs
- Frameworks configured by default to require a lot of customization. I want to start running right away instead of getting bogged down in that kind of detail.
Work Description
< description of a typical work day goes here. >
Persona #3: Traditional App Developer
George Simpson
Principal Application Developer, Defense Contractor
"Critical bugs could seriously injure real people, or worse. We have a strict regimen behind our development process to minimize risk."
Profile | Traditional Developer |
---|---|
Age | 43 |
Location | Washington, DC |
Technical Level | Master |
Years Experience | 22 |
Primary Tools | Uses a Thinkpad as his workstation, emacs, gcc and git.
Has a smartcard and various x509 certificates to access critical systems. |
Referrals | ACM? IEEE? USENIX? LISA? |
Motivation
- Keep the people interfacing with my software safe.
Goals
- Stability and predictability
- Minimize risk; vet every code change before it gets in and causes potential problems.
Frustrations
- Bureacracy - although I understand why it's in place, it takes the effort of moving a mountain to move a molehill in this codebase.
- Hardware vendors not supporting hardware for as long as we need to run it in the field.
- Testing matrix requires a lot of infrastructure to perform various tests in a reasonable time frame on as many configurations as possible.
Work Description
- Triage of bugs filed by support/users
- Short daily or weekley status meetings
- Prepares design documents for new futures or bug fixes
- One of the following:
- Writes code/bugfixes
- Writes unit tests
- Writes memos for doc writers or writes documentation directly
Persona #4: Junior Enterprise SysAdmin
Andy Grant
Junior System Administrator; MegaBank, Inc.
"Automation is critical to managing a rollout to a server environment this large."
Profile | Junior Enterprise SysAdmin |
---|---|
Age | 24 |
Location | Jersey City, NJ |
Technical Level | Apprentice |
Years Experience | 2 |
Primary Tools | bash, ssh, mutt, ? |
Referrals | ? |
Motivation
- Avoiding screwups - I want to get noticed at my company and build a good reputation.
- Learn and become a better sysadmin.
Goals
- I manage the email infrastructure; my goal is 95% uptime this year.
- Minimize unplanned outages.
- <ugh what automation goals might he have with mail infra?>
Frustrations
- Bureacracy - I work at a large company, and it's really hard to make change happen here.
- Spending cycles porting code to an endless array of platforms – it’s time-consuming and uninteresting work
- Spammers - gunking up the works. One of the things that sucks about working on mail infrastructure.
- End-user interaction - it's hard to walk people through tasks on the phone, and we have a heterogeneous environment so I'm not always quite sure what mail client they are using.
Work Description
< description of a typical work day goes here. >
Persona #5: Decision-Maker
Priya Moore
CTO, Cloud Startup
"In this competitive startup market, we need to be fast, efficient, and use technologies that attract developers to the company."
Profile | Decision-Maker |
---|---|
Age | 31 |
Location | San Francisco, California |
Technical Level | Advanced |
Years Experience | 12 |
Primary Tools | Uses a ThinkPad with Linux or MacBook Air, a tablet for meetings, and supports developers using their choice of hardware and OS |
Referrals | TED, Twitter, Google+, Reddit, TechCrunch, GigaOm, Hacker News, Mailing Lists, Strata, Wired, Big Data newsletters, blogs (especially ones from Facebook, Twitter, and similar industry-leading engineering departments), other industry conferences |
Motivation
- Building a great company around great technology
Goals
- Communicate the organization's technology vision to the world
- Interface with upstream projects to see where technology is headed and influence the direction
- Establish good, key metrics to encourage work in the right direction
Frustrations
- Needing to get a minimum viable product (MVP) shipping
- Security models
- Linking services together across machines
- Playing office network admin in addition to CTO
- Tension between choosing respected, traditional choices and things that will give the company an edge.
- Integrating developer tools, QA needs, and production needs
- Cloud versus bare-metal economics and overhead
- Proprietary versus FOSS/in-house service options
Work Description
- General executive meetings (short daily ones, longer weekly ones, and occasional retreats)
- Coordinating with VP Engineering on weekly- to roadmap-level planning
- Preparing internal communication materials for sales, marketing, support, and the general company presentations
- Blogging, writing articles, and participating in online discussions
- Coding and code reviews
- Planning hackfests to improve FOSS projects, meet external developers for recruitment, and learn about projects
- Attending community meetups
- Vetting candidates and participating in interviewing
- Preparing responses to security questionnaires from potential clients
Secondary Personas
Persona #6: Server Role Creator
Edward Bryant
System Administrator
"The work I do would be helpful to others, so I want to share it."
Profile | Fedora Server Contributor |
---|---|
Age | Indeterminate |
Location | Silicon Valley |
Technical Level | Moderate to high |
Years Experience | 5+ |
Primary Tools | Shell scripts, source-control, IRC |
Referrals | Flock, FUDCon, FOSDEM, LinuxCon, Fedora mailing lists and IRC |
Motivation
- Enhance the State of the Art
- Minimize effort for deployment
Goals
- Create a new role for Fedora Server so that he can use Fedora Server for an application that doesn't currently have a role to support it. He would like this application to plug nicely into Fedora.
Frustrations
- New to Fedora community; not sure how to get involved.
- Documentation is often sparse, out of date or scattered between many sites.
- Guidelines are built around packaging projects, not solutions.
- Hates seeing people solving the same problem over and over.
Work Description
- Coordination between multiple upstream projects
- Release schedules.
- API stability promises.
- Builds deployment scripts and setup tools.
- Communicates with the Fedora Project and its Server SIG.
- Acts as a liason with one or more companies with a goal to achieve.
- Helps prioritize the high-value roles for construction and maintenance.
- Attends conferences to evangelize and listen to pain points.