
Handbook
Journaux liées à cette note :
Exemples de labels de gestion de projet
Voici-ci dessous, une partie de la liste de labels d'Issues que l'équipe tech de Spacefill utlisait sous GitLab. Cette liste de labels est le fruit d'un travail itératif d'environ 15 personnes, sur une période de 4 ans.
Voici comment cette liste a été élaborée :
- Au départ, quelques labels ont été créés de manière organique par 3 développeurs et un product manager.
- Après 3 mois d'usage, une page de documentation nommée "GitLab Spacefill labels" a été ajoutée au handbook de l'équipe.
- Ensuite, au fur et à mesure des nouvelles problématiques rencontrées et de l'évolution des workflows, ce fichier de documentation a été amendé plus de 70 fois en 3 ans, par 11 contributeurs différents.
- Ce document était modifié suivant le même processus que le reste du handbook et le code :
- Une personne commençait par créer une issue pour décrire une problématique
- Ensuite, cette même personne ou une autre faisait une proposition d'évolution du processus par la rédaction d'une Merge Request qui modifiait cette page de documentation
- Puis cette Merge Request entrait dans une phase de review par l'équipe, était corrigée, amendée...
- Et finalement, quand cette Merge Request était approuvée par toute l'équipe, elle était mergée et ensuite respectée par tous
J'ai conservé cette liste afin de pouvoir l'utiliser comme source d'inspiration ou de fondation pour mes prochains projets en équipe.
Pour ceux qui souhaitent s'en inspirer, je recommande de ne pas adopter cette liste intégralement d'emblée. Privilégiez plutôt une sélection ciblée des labels qui correspondent à vos processus actuels, puis incorporez progressivement de nouveaux labels selon l'évolution de vos besoins.
Mon expérience m'a démontré que la mise en place de processus dans une organisation humaine fonctionne mieux par petites étapes successives. Cette approche incrémentale s'avère bien plus efficace que de tenter d'imposer en bloc un processus complet qui risquerait d'être inadapté à votre contexte spécifique.
Voici cette liste.
Labels pour indiquer les types d'issue
Une issue doit avoir dans tous les cas un type et un seul type.
type::user-story
: une issue qui apporte une fonctionnalité à l'applicationtype::improve
: une issue qui apporte une amélioration mineure à une fonctionnalité existante, qui est plus simple de ne pas exprimer sous forme d'une user story, et qui bien sûr n'est pas un bug.type::documentation-and-process
: problème ou amélioration d'un process ou d'une documentation interne (les deux sujets documentation et processus sont liés parce que les processus sont documentés). La documentation du logiciel à destination des usagers de l'application n'entre pas dans cette catégorie, elles sont du typeuser-story
,improve
oubug
.type::enabler
: un changement qui n'apporte pas directement de valeur aux utilisateurs de l'application. Ce type est utilisé pour des issues dont le but est d'améliorer l'expérience des développeurs (voir définitions : SAFe Enablers,Les enablers en agile)type::technical-debt
: definition, label à utiliser, par exemple pour des issues dont le bug est d'upgrader une librairie, d'améliorer une implémentation, ou une proposition de refactoring… Ce label ne doit pas être utilisé pour des issues "produit".type::support-ops
: pour les tâches de support qui ne nécessitent généralement pas de merge request, par exemple : des migrations de données, des corrections de données, des extractions de données…type::spike
: voir la definitiontype::meta
: pour des issues de type "meta", par exemple, des issues dont le but est de créer d'autres issues, de faire de l'affinage d'issues, ou organiser des rituels…type::meta-spec-writing
: pour des issues dont l'objectif est de créer des issues ou des Epic, dont le but est de rédiger des spécifications techniques, ce sont des sortes d'issues de type "meta", mais plus spécifiques.
type::bug
: pour des issues qui décrivent des dysfonctionnements de l'applicationtype::bug-job-CI
: pour des issues qui décrivent des bugs de CI
Labels pour indiquer la priorité des issues
priority::critical
: une issue qui doit obligatoirement être traitée tout de suite par un développeurpriority::24h
: une issue qui doit être traitée d'ici 24hpriority::7days
: une issue qui doit être traitée d'ici à 1 semaine
Labels de workflow
Une issue doit avoir un et seulement un label de type workflow
, un et un seul label de type product-review
.
- Draft
workflow::need-product-specs
: l'issue doit être spécifiée par un membre de l'équipe produitworkflow::need-design
: l'issue a besoin de wireframe, design, …workflow::need-tech-specs
: l'issue doit être affiner par un membre de l'équipe tech
- To do
workflow::ready-for-development
: l'issue est prête à être implémentéeworkflow::to-be-continued
: l'issue a été commencée, mais mise en pause parce que le développeur est assigné sur une autre issue.workflow::doing
: un développeur est en train de travailler sur cette issueworkflow::ready-for-first-review
: l'issue est prête à être review par un développeurworkflow::ready-for-maintainer-review
: l'issue est prête à être review par un maintainersworkflow::blocked
: l'issue est bloquée Par exemple :- l'issue est commencée, elle peut avoir une merge request de prête, mais le développeur ne peut pas la terminer, car elle dépend d'une autre Merge Request en cours d'élaboration ;
- l'auteur de l'issue attend une réponse d'une personne externe de l'équipe produit ou tech, par exemple un client.
workflow::ready-for-merge
: l'issue a été review et est prête à être mergéneed-cto
: l'issue est bloquée parce qu'elle est en attente d'une validation par le CTO
- Product review
product-review::needed
: indique que l'issue doit être review par un membre de l'équipe produitproduct-review::not-needed
: indique que l'issue n'a pas besoin d'être review par l'équipe produitproduct-review::pending
: issue en attente de review par un membre de l'équipe produitproduct-review::feedback
: une demande de correction a été émise par un membre de l'équipe produitproduct-review::approved
: la Merge Request a été review et validée par un membre de l'équipe produit avec plus aucune demande de correction
Labels d'intégration dans des boards
board-product-refinement
: pour intégrer des issues dans un Kanban board qui contient une liste d'issues que l'équipe produit doit affinerboard-tech-refinement
: pour intégrer des issues dans un Kanban board qui contient une liste d'issues que l'équipe tech doit affinerboard-support
: pour intégrer des issues dans un Kanban board qui contient une liste d'issues de support qui traitent des demandes externes à l'équipe tech ou produit.board-cto
: utilisé par le CTO pour suivre des issues "cross team"
Labels divers
first-contribution
: pour identifier des issues en théorie facilement réalisables par un nouveau développeur en phase d'onboarding.sprint-planning
: pour les issues de typemeta
, dont l'objectif est d'organiser le rituel Sprint Planning.sprint-retrospective
: pour les issues de typemeta
, dont l'objectif est d'organiser le rituel Sprint Retrospective.sprint-retro-follow-up
: pour identifier les sujets qui ont été remontés lors d'une session de Sprint Retrospective.triage
: pour identifier les issues qui doivent être triées, c'est-à-dire, décider si l'issue doit être abandonnée pour être placée dans un backlog.need-to-be-planned
: pour identifier des issues validées, mais qui doivent être planifiées, c'est-à-dire, être ajoutées dans un sprintdanger
: pour identifier des issues qui doivent être traitées avec prudence, qui par exemple risquent de détruire des données.tech-refinement
: pour identifier une issue qui doit être affiner par l'équipe tech, mais qui n'a pas encore été ajoutée dans leboard-tech-refinement
.tech-refinement-removed
: pour identifier des issues qui étaient dans unboard-tech-refinement
mais qui n'ont pas été affiné par manque de temps et donc repoussées à une future session.security
: pour identifier des issues en lien avec la sécurité informatique, par exemple, un risque de fuite de données, de perte de données, d'intrusion…version-outdated
: pour identifier les issues dont l'objectif est la mise à jour de librairies ou de services.
Label de compétences nécessaires
Liste de labels peu utilisés, ils permettaient d'identifier les compétences techniques nécessaires pour pouvoir traiter l'issue.
skills:ansible
skills:terraform
skills:nodejs
skills:postgraphile
skills:html/css
skills:docker
skills:gitlab-ci
skills:docker
skills:dev-ops
skills:postgres
skills:postgres-rls
skills:postgres-rbac
skills:postgresql-plsql
skills:postgresql-policy
skills:reactjs
skills:shellscript
skills:sql
Journal du vendredi 19 juillet 2024 à 18:06
#JaiDécouvert Timeful Texts de Andy Matuschak.
Consider texts like the Bible and the Analects of Confucius. People integrate ideas from those books into their lives over time — but not because authors designed them that way. Those books work because they’re surrounded by rich cultural activity. Weekly sermons and communities of practice keep ideas fresh in readers’ minds and facilitate ongoing connections to lived experiences. This is a powerful approach for powerful texts, requiring extensive investment from readers and organizers. We can’t build cathedrals for every book. Sophisticated readers adopt similar methods to study less exalted texts, but most people lack the necessary skills, drive, and cultural contexts. How might we design texts to more widely enable such practices?
Cela rejoint une réflexion que j'ai eue concernant les documentations d'onboarding ou handbook d'organisation.
Problème
Il est courant de demander à aux nouveaux employés d'une startup de lire la documentation d'onboarding ou le handbook de l'organisation.
En pratique, je trouve cela peu efficace. Les premiers jours ou heures dans une nouvelle organisation sont souvent à la fois excitants et stressants. C'est une période où les individus cherchent à créer des liens, à rencontrer les autres et à comprendre qui est qui. Conséquence : je pense qu'il est difficile d'entrer en deepflow de lecture pendant cette période. Les personnes onboardé survolent la documentation et je trouve cela tout à fait justifié.
D'autre part, les informations détaillées contenues dans ces documents n'auront que peu de signification au début et ne deviendront pertinentes qu'après plusieurs semaines passées au sein de l'organisation. Et malheureusement, je constate que si les autres membres de l'équipe ne l'invitent pas, la personne onboardé retourne rarement elle-même consulter des détails bien utiles dans la documentation.
Solution humaine
Pour pallier ce problème, lors de ma dernière expérience, j'ai mis en place un système de parrain attribué à chaque nouvelle personne. Le parrain était là pour répondre à toutes les questions du nouvel arrivant et le rediriger vers les bonnes sections de la documentation.
Idée technique
En 2022, j'imaginais un système basé sur un chatbot (pour Slack ou autre) qui enverrait, de manière espacée dans le temps des liens vers des sections de la documentation à lire.
Ce chatbot pourrait aussi poser des questions, pour vérifier si la personne est au courant d'éléments contenus dans la documentation.
Cela ressemble au projet Timeful Texts 🤔.
[!Note au lecture] Pour bien comprendre le lien, je vous invite à lire l'intégralité de l'article et pas seulement l'extrait cité au début de cette note.