Teams & Organisational structure
Christian wrote a blog post on developing skills with gnome back in 2017 that I feel is somewhat relevant to the People of GNOME initiative.
Maybe this is the correct place to flesh this all out so that individuals who have competencies not covered in the traditional team structures understand that GNOME is very much interested in their contributions and involvement.
Some roles mentioned in the blog are:
Programmers are responsible for the maintenance of the code-base and implementing new features. All of us familiar with this role in GNOME because it’s what a large number of our contributors do.
Designers are responsible for thinking through the current and planned features to find improved ways for users to solve their problems.
Graphic Designers can often overlap with Design, but not necessarily. They’re responsible for creating the artwork used in the given project.
Quality Assurance ensures that you don’t ship a product that is broken. You don’t wait until the freezes to do this, but do it as features are developed so that the code is fresh in the programmers minds while addressing the issues. The sooner you catch issues, the less likely a code or design failure reaches users.
User Support is your front-line defense to triage incoming issues by your users. Without users your project is meaningless. Finding good people for this role can have a huge impact on keeping your users happy and your developers less stressed. If your bug tracker is also your user support, you might want to ask yourself if you really have user support. When you have a separate support system and bug-tracker, user support is responsible for converting user issues into detailed bug reports.
Security Engineers look for trust, privacy, and other safety issues in products and infrastructure. They take responsibility to ensure issues are fixed in a timely manner and work with others when planning features to help prevent issues in the first place.
User and Developer Advocates are liaisons between your team and the people using (or developing third-party tools with) your product. They amplify the voices of those speaking important truths.
User Testing is responsible for putting your product in-front of users and seeing how well they can perform the given tasks. Designers use this information to refine and alter designs.
Tech writers are responsible for writing technical documentation and help guides. They also help refine programmer authored API documentation. This role often fulfills the editor role to ensure a unified voice to your project’s written word.
Build engineers ensure that your product can be packaged, built reliably, and distributed to users.
Operations and “DevOps” ensure that your product is working day-to-day. They provide and facilitate the tooling that these roles need to do their jobs well.
Internationalization and localization ensure that your software is available to a group of users who might otherwise not be able to use your software. It enables your software to have global impact.
Release management is your final check-point for determining when and what you release based on the goals of the project. They don’t necessarily determine road-maps, but they do keep you honest.
Product managers are responsible for taking information and feedback from all these roles and converting that into a coherent project direction and forward looking vision. They analyze common issues, bug velocity, and features to ensure reasonable milestones that keeps the product functional as it transforms into it’s more ideal state. Most importantly, this role is leadership.
The current iteration of People of GNOME lists the following roles/teams:
Designers They design our components, apps, our guidelines and ensure GNOME look and feel high standards.
Developers They deliver the pieces of code behind GNOME. They ship our apps and the GNOME desktop.
Translators They ensure GNOME is more understandable and usable to all people around the world.
Documenter They document and create guides of everything GNOME. From our GTK APIs to Newcomer guides.
Engagement They manage our Communities, Conferences, Marketing and Events. They are the frontier of GNOME.
Moderators They ensure that our communities are healthy and secure and play a vital role in establishing the tenor of a forum.
Mentors They manage and supervise student programmes like Google Summer of Code, Google Season of Docs and Outreachy.
Staff They handle the internals of the GNOME Foundation and ensure Operations run smoothly.
Staff seems to have the following sub roles:
Infrastructure Managers Ensures everything related to infrastructure works as smoothly as possible, focusing on monitoring and continuous integration systems.
Program Managers Manage conferences, internships and any other activities that are held by the GNOME Foundation, like the GNOME Community Challenge.
Brand Managers Ensure the Design and Marketing Assets standards are high. Manages the branding and design of the GNOME brand.
Operation Managers Ensure the operations through the GNOME Foundation are fulfilled and act as a history-keeper of the GNOME Project.
Then on the getting involved page there are these "areas":
Coding GNOME has every kind of coding task, and there are guides to help you get started.
Develop Apps Get all the info you need to start developing apps for GNOME from our brand new developer center.
Documentation Help to maintain GNOME’s user and developer documentation.
Join GNOME Circle Are you already working on an app or library for GNOME? Join GNOME Circle to get more support!
Engagement The Engagement Team works on marketing, user outreach, events organization, and websites.
Translations GNOME is translated into over 80 languages, all thanks to our volunteers. Help to translate it into your language!
With a link to more teams at the bottom that brings you to a wiki page:
Accessibility - works to make GNOME accessible to anyone, irrespective of their physical abilities.
Accounts - manages access to GNOME development systems.
Design - GNOME user interface and UX design.
Documentation - writes and maintains GNOME user and developer documentation.
Engagement - GNOME websites, blogging, press, marketing & promotion activities.
Foundation Board
Membership & Elections Committee - organizes the annual GNOME Foundation elections.
Maintainers Team - for App or Project maintainers
Moderators - stewards of the GNOME mailing lists.
Outreach - GNOME Outreach
QA - GNOME QA team
Bugsquad - helps triage bug reports and feature requests in the GNOME issue tracker.
Release Team - organizes and manages GNOME development.
Safety - User safety and privacy working group.
Sysadmin - maintain and develop GNOME's infrastructure.
Web Development
Translation - translates GNOME user interfaces and documentation into different languages.
User Groups - Regional GNOME user groups.
Should working groups & committees be treated differently to teams?
Then on gitlab itself under groups and then teams you have:
Documentation
Releng
Translation
Engagement
Design
Should probably list the irc/matrix channels and discourse tags too but this is getting quite long already and I think you get the point.
This issue is about standardising roles/teams to reflect how GNOME is built today and take stock of what the project is doing well and what it needs help with tomorrow.