forked from mattermost/mattermost-handbook
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add organization secton to R&D for describing overall structure layout (
mattermost#859) * Add organization secton to R&D for describing overall structure layout * Add to LHS * Update operations/research-and-development/organization/channels.md Co-authored-by: Katie Wiersgalla <[email protected]> * Update operations/research-and-development/organization/README.md Co-authored-by: Justine Geffen <[email protected]> * Update operations/research-and-development/organization/channels.md Co-authored-by: Justine Geffen <[email protected]> * Update operations/research-and-development/organization/channels.md Co-authored-by: Justine Geffen <[email protected]> * Update operations/research-and-development/organization/channels.md Co-authored-by: Justine Geffen <[email protected]> * Update operations/research-and-development/organization/channels.md Co-authored-by: Justine Geffen <[email protected]> * Add areas of expertise for web/server platform * Updates per feedback Co-authored-by: Katie Wiersgalla <[email protected]> Co-authored-by: Justine Geffen <[email protected]>
- Loading branch information
1 parent
628c219
commit a992ce7
Showing
3 changed files
with
111 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
operations/research-and-development/organization/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# R&D Organization | ||
|
||
The source of truth for the R&D org structure and team membership is [this spreadsheet](https://docs.google.com/spreadsheets/d/1lH8QIjQGEoGospDUdVs_LQ_i2b82I1ce6W7z18vhPTQ/edit#gid=1820415931). | ||
|
||
R&D is split into five different divisions: Products, Cloud, Platform, Security, and Community. | ||
|
||
## Products | ||
|
||
The Products division is split into a number of different verticals, each responsible for a single product. The current product verticals are: | ||
|
||
* [Channels](/operations/research-and-development/organization/channels) | ||
* Boards | ||
* Playbooks | ||
|
||
## Cloud | ||
|
||
The Cloud division is responsible for delivery of the Mattermost products as a SaaS product, in addition to growth and build system related areas. | ||
|
||
## Platform | ||
|
||
The Platform division is responsible for the platforms that support and span the product verticals. | ||
|
||
## Security | ||
|
||
The Security division is responsible for both Product and Infrastructure security. | ||
|
||
## Community | ||
|
||
The Community division is responsible for developer and user community relations. |
80 changes: 80 additions & 0 deletions
80
operations/research-and-development/organization/channels.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Channels | ||
|
||
Channels is split into feature teams and platform teams. | ||
|
||
## Feature Teams | ||
|
||
The feature teams are responsible for designing, developing, and maintaining the features of the Channels product. They are full stack and own feature development across the entire tech stack (Web App, Mobile, Desktop, and backend). | ||
|
||
These teams are flexible enough to work on whatever is highest impact. Each team does have areas of expertise and features they own but any feature team can work on any portion of the product. | ||
|
||
The teams are: | ||
|
||
### Ursa (feature team #1) | ||
|
||
Areas of expertise: | ||
|
||
* Groups | ||
* LDAP | ||
* Permissions | ||
* System Console | ||
* Compliance | ||
* Data Retention | ||
* Mobile sidebar/categories | ||
|
||
### Interstellar (feature team #2) | ||
|
||
Areas of expertise: | ||
|
||
* Apps | ||
* Webhooks | ||
* Slash Commands | ||
* Plugins | ||
|
||
### Apollo (feature team #3) | ||
|
||
Areas of expertise: | ||
|
||
* Posts | ||
* Threads | ||
* File Previews | ||
|
||
## Platform Teams | ||
|
||
The platform teams are responsible for building and maintaining the systems that the feature teams rely on. | ||
|
||
**Why are these teams in the Channels product vertical and not the Platform division?** | ||
|
||
Until recently Channels was the only product Mattermost had and was itself the platform. As a result of this a lot of the platform is tightly coupled to the Channels product. The server and web app parts of the platform are especially tightly coupled. The goal is to eventually move these teams, or some version of them, out of the Channels product vertical when that coupling is looser. | ||
|
||
The teams are: | ||
|
||
### Web Platform | ||
|
||
The role of the Web Platform team is to own the infrastructure behind the Web App and Desktop App while supporting other teams that are using that infrastructure. | ||
|
||
Within the Web App, that means tooling (e.g. build tools, testing frameworks, style checking), core systems (e.g. Redux, routing), and helping maintain the core features of the app. For the areas owned, the team is also responsible for educating other teams about those areas and helping them coordinate work that might require changes to those things. | ||
|
||
The team is also responsible for dictating the coding style and practices used throughout the Web App which can be used as a reference for other JS projects. As recommended practices change, the team will work with the community and other teams to implement those in the Web App whenever possible. | ||
|
||
The team is not responsible for experimenting with new technologies or dictating the project structure/tooling used for all other JS projects within Mattermost. Because feature teams are able to move much quicker when they're writing brand new code, they have more opportunities to try out new technologies and practices. When those experiments are successful, the Web Platform team will help integrate them back into the Web App and make them available for other Mattermost projects. | ||
|
||
Areas of expertise: | ||
|
||
* Web App performance | ||
* Redux store structure | ||
* Desktop | ||
* Routing | ||
* Frontend coding style and best practices | ||
|
||
### Server Platform | ||
|
||
The role of the Server Platform team is to own the backend multi-product architecture and server performance while supporting other teams that rely on the server. | ||
|
||
Areas of expertise: | ||
|
||
* Multi-product and server platform archiecture | ||
* Load testing and server performance | ||
* Database requirements | ||
* Clustering and high availability | ||
* Backend coding style and best practices |