owned this note
owned this note
Published
Linked with GitHub
# Ansible Community Personas
###### tags: `Documentation`
The goal of this document is to describe the main personas for the people interacting with the Ansible community, with a focus on docs.ansible.com. The end goal would be to ensure we have a smooth journey into and through our documentation for each of these personas (aka reader types).
**note** - This is not a linear journey, nor are these exclusive personas. People will shift based on their background and what they are trying to achieve.
* flesh out the top tasks for each persona
* map out journeys -how a user becomes a contributor, becomes a creator or developer, and path to being on Steering committee, collection maintainer, etc
* Verify all this with community.
# High-level personas
The following lists the main Ansible community personas:
* **user** - Uses content created by someone else or creates playbooks, roles, etc. Does not require python/coding skills. Users can become contributors if they share their content or knowledge with the community (via galaxy/NG etc).
* **contributor** Participates in the Ansible community. Contributes to one or more Ansible projects, including coding and non-coding contributions. Participates in meetups, social media, blogs,forums etc to share their Ansible knowledge
Anyone involved in Ansible can be a potential contributor.
See the [docsite personas](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view) to see how these map into potential entry points on docs.ansible.com.
# Personas in detail
## User (content consumer/content creator)
**Goal** to automate repetative tasks within their organization.
### Docsite personas that map to Users
* [novice](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Ansible-novice--)
* [content creator](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Content-creator--)
* [AWX/GalaxyNG admin](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#AWXGalaxy-operations--)
### Top tasks
* Beginner tasks:
* Installs and/or updates ansible or ansible-core
* Installs or updates individual collections
* Creates and tests playbooks
* Creates inventories
* Tests, publishes, and maintains all of these
* Intermediate tasks:
* Creates roles
* Creates job templates (for AWX users)
* Uses event-driven automation (ansible-rulebook - new)
* Contributes to collections (bugfixes, modules etc)
* Tests, publishes, and maintains all of these
* Advanced:
* Creates collections (reusable plugins, roles, and playbooks)
* Creates execution environments (collections, libraries, and ansible-core version)
* Tests, publishes, and maintains all of these
#### Top tasks for AWX/GalaxyNG operations
* Manages private galaxyNG to store and share collections, roles, and EEs.
* Includes AWX for job templates etc.
* Configure which execution environments to use with an automation job, where to execute it, and manage who can run it.
### Ansible projects of interest to newer users
- Ansible, ansible-core and most all of its commands
- galaxyNG (to install a collection with its playbooks)
- AWX
Playbook troubleshooting tools of interest:
- ansible-navigator
- ansible-xxx (vscode, vim, and emacs) plugins
### Ansible projects of interest for the intermediate/advanced user
* ansible/ansible-core including ansible-test
* ansible-lint
* ansible IDE plugins (vscode, vim, emacs)
* ansible-navigator (for developing and testing collections, playbooks with/wo EEs)
* ansible-builder
* ansible-rulebook
* ansible-sign (signed verification of collections)
* molecule
* event-driven ansible
* wisdom
* https://github.com/ansible/creator-ee
They may use AWX and galaxyNG but are not typically administering those instances.
### Ansible projects of interest to AWX/GalaxyNG operations
* AWX - controls playbooks, EEs, RBAC, projects,and inventories within job templates that content consumers can use. Includes logging and monitoring.
* GalaxyNG - hosts collections and EEs.
## Contributor
**goal** To participate in the Ansible community, including code and non-code participation.
### Docsite personas that map to contributors
* [community member/contributor](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?both#Community-membercontributor--)
* [developer](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Ansible-developer--)
* [collection maintainer](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Collection-ownermaintainer--)
### Top tasks
This persona has overlap with users and developers but includes unique element such as:
* Shares content for public reuse, either in the Ansible package or in Galaxy(NG).
* Provides bugfixes or enhancements to existing Ansible projects and collections.
* Interacts with community, including meetups, working groups, discussions, votes, issues, and PRs (creating or reviewing).
* May be a coder, writer, release infrastructure manager, community manager, etc.
### Ansible projects of interest for contributors
All projects are of interest. What is helpful for a community member or contributor is to have a common process to interact with different or multiple Ansible projects. This may include such items as:
* Common contributor guidelines and ways to interact (e.g. matrix vs slack, irc,, discourse vs mailing lists, etc).
### Developer (subset of contributors)
**Goal** To extend or modify existing Ansible projects or content to support their individual needs. Develops code in the Ansible ecosystem for private use or to share (contributor).
#### Top Tasks
* Extends any Ansible project - bugfixes
* Creates individual plugins or playbooks/roles for a collection
* Maintains one or more collections
* Troubleshoots problems with their plugins/collections
Public collection developers are heavy plugin developers but private collection developers may do more with roles/playbooks wrapped into a collection package.
#### Projects of interest to developers
Same as content creator but with additional needs for:
* CI test setup (no specific ansible project for this)
* Developing content or code (developer and contributor guides that are part of Ansible and ansible-core as well as individual contributor guides for other Ansible projects).
# List of projects
The following lists all projects considered in the development of these personas:
* ansible/ansible-core including ansible-test
* ansible-lint
* ansible IDE plugins (vscode, vim, emacs)
* ansible-navigator (for developing and testing collections, playbooks with/wo EEs)
* ansible-builder
* ansible-rulebook
* ansible-sign (signed verification of collections)
* EDA (event-driven ansible)
* galaxyNG
* AWX
Projects still TBD (do they fit here?):
* ansible-sdk
* molecule
* runner
* pinakes
* receptor
* wisdom
see [this issue](https://github.com/ansible-collections/overview/issues/49) for other notes.