Skip to content

Commit

Permalink
Merge pull request #213 from eternoendless/update-people
Browse files Browse the repository at this point in the history
Update people and roles, add working principles page
  • Loading branch information
kpodemski authored Jul 25, 2023
2 parents ee85f2c + 65ea383 commit 87697e5
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 58 deletions.
40 changes: 40 additions & 0 deletions content/project-organization/how-we-work.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: How we work
---

# How we work

The project's leadership is organized around project councils: self-organized, lightweight groups whose mission is to facilitate decision-making. Each council has authority over a defined domain.

* **Technical Council** – decides on technical subjects, including architecture and implementation choices.
* **Product Council** – decides on product management subjects, including what features belong in the project, specifications, UI/UX guidelines, and wordings.
* **Quality Council** – decides on quality assurance subjects, including quality processes, verification of pull requests, and bug triage.
* **Leadership Council** – oversees the other councils, decides on strategy matters and provides alignment.

{{< figure src="../images/council-org.png" caption="Councils' structure with example groups" >}}

Councils are not meant to pronounce themselves on every single tiny decision, but rather **be summoned when an important decision needs to be made**, then produce guidelines and recommendations for contributors to follow from that point on.

Councils are generally **free to organize themselves independently as they see fit** in order to perform efficiently. For example, a Council might grant day-to-day decisions to a delegate group, like maintainers currently do with committers for code review and merge. Another Council might choose to self-divide into working groups by expertise or project.

{{< figure src="../images/council-delegate.png" caption="Example of Council and delegate group" >}}

Membership to councils is invite-only, but not necessarily based on employer affiliation. Contributors may get invited in (or out) of councils mainly on the basis of trust, reputation, and engagement level. Depending on their skills, a person may be invited and sit in more than one Council at a time.

Each Council has a lead. Council leads are responsible for ensuring that the Council is effectively pronouncing on decisions, providing guidance for his or her council colleagues, and guaranteeing that subjects move forward coherently. For that, leads benefit from a power of veto and override over their own Council’s decisions – to be used sparingly, of course.

The Leadership Council is in charge of providing structure and a general direction for the project. To that end, it oversees the other Councils and has final authority over them and their decisions, including the right to appoint and remove leads. With great power comes great responsibility, and so its authority is to be exercised wisely.

For the time being, the project’s main sponsor, PrestaShop SA, reserves the right to appoint the Leadership Council’s lead.

## Working principles

This organization delegates most of the decision-making to individuals that are expected to make decisions together. The key to Councils working efficiently is avoiding the _committee's trap_, where the more members there are in a group, the harder and slower it is to reach a consensus and make a decision that satisfies everyone.

With that in mind, and inspired on the first principle of the agile manifesto, _"individuals and interactions over processes and tools"_, a small number of ground rules, or "working principles" have been set up:

* Admittance in a Council or delegate group is mainly based on good will, mutual trust, reputation, engagement, and convergence toward common goals. We work in small groups and we trust each other to work in the project's best interest.
* We optimize for efficacy and not for thoroughness. We set up lean processes, only when such processes are a necessity. Not everything needs to be written in stone for an action to take place.
* We use [lazy consensus](https://community.apache.org/committers/lazyConsensus.html) to accelerate decision-making, notably by specifically stating short (but reasonable) timeframes for providing feedback on a proposal.
* We cherish the humility to ask when we don't know, recognize when we are wrong, accept when we have made a mistake, learn from it, and improve.
* Less is more. We strive not to overthink things!
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
123 changes: 65 additions & 58 deletions content/project-organization/people-and-roles.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,63 @@ aliases:

# People and roles in the project

### Product Managers
The project is organized by councils who have authority over the different domains.

Product Managers provide the product vision for the project, ensuring that the software meets the needs of its various users.
To learn more about the project's organization, read [How we work]({{< relref "how-we-work.md" >}}).

Current product managers:
## Leadership Council

The Leadership Council is in charge of providing structure and a general direction for the project. To that end, it oversees the other Councils and has final authority over them and their decisions, including the right to appoint and remove leads.

Current members:

- Pablo Borowicz ([@eternoendless](https://github.com/eternoendless)) - **Project Lead**
- Fabien Vallon ([@fabienvallon](https://github.com/fabienvallon))
- Jonathan Lelièvre ([@jolelievre](https://github.com/jolelievre))
- Mateus Shirlaw ([@MatShir](https://github.com/MatShir))
- Mathieu Ferment ([@matks](https://github.com/matks))
- Robin Fischer ([@Robin-Fischer-PS](https://github.com/Robin-Fischer-PS))

## Product Council

The product council is in charge of product vision for the project, ensuring that the software meets the needs of its various users. It has authority over product management subjects, including what features belong in the project, specifications, UI/UX guidelines, and wordings.

Current members:

- Fabien Vallon ([@fabienvallon](https://github.com/fabienvallon)) - **Council Lead**
- Daniel Hlavacek ([@Hlavtox](https://github.com/Hlavtox))
- Jean-François Viguier ([@jf-viguier](https://github.com/jf-viguier))
- Krystian Podemski ([@kpodemski)[https://github.com/kpodemski))
- Mateus Shirlaw ([@MatShir](https://github.com/MatShir))
- Eshane Rawat ([@eshraw](https://github.com/eshraw))
- Rosa Benouamer ([@RosaBenouamer](https://github.com/RosaBenouamer))
- Zoé Finders ([@Zoefinders](https://github.com/Zoefinders))

### UX Designers

UX Designers make sure that interfaces follow the best practices in usability and design.

Current UX designers:

### Project Maintainers
- Elodie Prokhoroff ([@ElodieOS](https://github.com/ElodieOS))
- Tristan Lehot ([@TristanLDD](https://github.com/TristanLDD))

### Wording Manager

Wording managers ensure that wordings are adequate, follow the project's tone of voice, and are categorized properly.

Current wording managers:

- Léa Delin ([@l-delin](https://github.com/l-delin))

## Technical Council

Project maintainers provide the technical vision for the whole project, reviewing and merging code contributions, while ensuring that the software is developed according to the product vision.
The technical council provides the technical vision for the whole project, reviewing and merging code contributions, while ensuring that the software is developed according to the product vision. It decides on technical subjects, including architecture and implementation choices.

Current maintainers:
Current members:

- Jonathan Lelièvre ([@jolelievre](https://github.com/jolelievre)) - **Council Lead**
- Daniel Hlavacek ([@Hlavtox](https://github.com/Hlavtox))
- Ibrahima Sow ([@sowbiba](https://github.com/sowbiba))
- Jonathan Lelièvre ([@jolelievre](https://github.com/jolelievre))
- Krystian Podemski ([@kpodemski](https://github.com/kpodemski))
- Mathieu Ferment ([@matks](https://github.com/matks))
- Matthieu Rolland ([@matthieu-rolland](https://github.com/matthieu-rolland))
Expand All @@ -33,49 +72,34 @@ Current maintainers:
- Thomas Baccelli ([@atomiix](https://github.com/atomiix))
- Valentin Szczupak ([@NeOMakinG](https://github.com/NeOMakinG))

#### Scoped Maintainers

Scoped Maintainers have the same mission as Project Maintainers, but over a limited scope (e.g. a project, a repository, or a technology).

If the scope is one or multiple repositories, maintainers rights are granted only on these repositories.
If the scope is larger (example: being in charge of a folder inside a repository) maintainer rights are granted on the repository and the scoped maintainer is trusted not to abuse.

- Daniel Hlavacek ([@Hlavtox](https://github.com/Hlavtox)) – [Classic](https://github.com/prestashop/classic-theme) and [Hummingbird](https://github.com/prestashop/hummingbird) themes
- Boubker Bribri ([@boubkerbribri](https://github.com/boubkerbribri)) – UI tests

### Committers

Committers review and merge code contributions, while ensuring that the software is developed according to the product vision.
Committers can review and merge code contributions. They summon the technical council when important decisions need to be made.

Current committers:

- Alexis Guyomar ([@ga-devfront](https://github.com/ga-devfront))
- Antonin Clauzier ([@0x346e3730](https://github.com/0x346e3730))
- Boris Hermans ([@boherm](https://github.com/boherm))
- Clément Désiles ([@jokesterfr](https://github.com/jokesterfr))
- Daniel Hlavacek ([@Hlavtox](https://github.com/Hlavtox))
- Fabien Papet ([@FabienPapet](https://github.com/FabienPapet))
- Julius Žukauskas ([@zuk3975](https://github.com/zuk3975))
- Leemy Pakvn ([@leemyongpakvn](https://github.com/leemyongpakvn))
- Mahmoud Parvazi ([@mparvazi](https://github.com/mparvazi))
- Marco Salvatore ([@marsaldev](https://github.com/marsaldev))
- Tomasz Zając ([@SharakPL](https://github.com/SharakPL))
- Fabien Papet ([@FabienPapet](https://github.com/FabienPapet))
- Maxime Flasquin ([@mflasquin](https://github.com/mflasquin))
- Morgan Pichat ([@M0rgan01](https://github.com/M0rgan01))
- Nicolas Lœuillet ([@nicosomb](https://github.com/nicosomb))
- Salim Benouamer ([@lartist](https://github.com/lartist))
- Antonin Clauzier ([@0x346e3730](https://github.com/0x346e3730))
- Boris Hermans ([@boherm](https://github.com/boherm))
- Leemyongpakvn ([@leemyongpakvn](https://github.com/leemyongpakvn))
- Thomas Leone ([@tleon](https://github.com/tleon))
- Guyomar Alexis ([@ga-devfront](https://github.com/ga-devfront))
- Clément Désiles ([@jokesterfr](https://github.com/jokesterfr))
- Morgan Pichat ([@M0rgan01](https://github.com/M0rgan01))

### UX Designers

UX Designers make sure that interfaces follow the best practices in usability and design.
- Tomasz Zając ([@SharakPL](https://github.com/SharakPL))

Current UX designers:
## Quality Council

- Tristan Lehot ([@TristanLDD](https://github.com/TristanLDD))
The quality council provides the quality assurance vision for the project and has authority on related subjects, such as verification of pull requests, test automation strategy, bug triage process, and quality assessment.

### Quality Council
#### Issue Managers
### Issue Managers

Issue managers reproduce and qualify new issues to avoid duplicates and, if they are indeed defects in the software, their severity. They also redirect new improvement suggestions to the right Product Manager.

Expand All @@ -93,7 +117,7 @@ Current issue managers:
* Committers:
- Achraf Kchaou ([@AchrafKchaou1991](https://github.com/AchrafKchaou1991))

#### Software Testers
### Software Testers

Software Testers make sure that the quality of the software improves over time, by verifying that code changes behave as expected. To do this, they extensively test Pull Requests, PrestaShop's releases and its built-in modules.

Expand All @@ -113,7 +137,7 @@ Current Software Testers:
- Achraf Kchaou ([@AchrafKchaou1991](https://github.com/AchrafKchaou1991))
- Serhii Zavadskyi ([@szavadskiy](https://github.com/szavadskiy))

#### Software Developers in Test
### Software Developers in Test

Software Developers in Test provide technical vision, review contribution and write automated tests, which help accelerate the testing process.

Expand All @@ -127,26 +151,9 @@ Current Software Developers in Test:
- Franck Lefèvre ([@Progi1984](https://github.com/Progi1984))
- Stéphane Decisy ([@SD1982](https://github.com/SD1982))

### Wording Manager

Wording managers ensure that wordings are adequate, follow the project's tone of voice, and are categorized properly.

Current wording managers:

- Léa Delin ([@l-delin](https://github.com/l-delin))

### User Documentation Managers

User documentation managers ensure the quality and consistency of the [user documentation](https://docs.prestashop-project.org/).

Current user documentation managers:

- Léa Delin ([@l-delin](https://github.com/l-delin))

### Technical Documentation Managers

Tech documentation managers ensure the quality and consistency of the [developer documentation](https://devdocs.prestashop-project.org/)
## Dedicated maintainers

Current tech documentation managers:
Some projects have dedicated maintainers who are responsible for them:

- Thomas Nares ([@thomasnares](https://github.com/thomasnares))
* [User documentation](https://docs.prestashop-project.org/): Léa Delin ([@l-delin](https://github.com/l-delin))
* [Developer documentation](https://devdocs.prestashop-project.org/): Thomas Nares ([@thomasnares](https://github.com/thomasnares))

0 comments on commit 87697e5

Please sign in to comment.