Gérer un projet
Ce que tu vas apprendre
- Découper une grosse idée en tâches petites et faisables.
- Suivre ces tâches avec un tableau Kanban et des issues GitHub.
- Écrire un README qui permet à quelqu'un d'autre de lancer ton projet.
Pourquoi organiser, même seul
« Faire un site de recettes » est trop vague pour commencer. Tu ne sais pas par où attaquer, et tu ne sais jamais où tu en es.
Un projet avance quand tu sais quelle est la prochaine petite étape. Même seul, noter les tâches évite d'oublier et donne le plaisir de voir les choses se terminer.
Découper en tâches
Pars de l'objectif et divise-le jusqu'à obtenir des tâches de quelques heures au plus.
Exemple pour le site de recettes :
- Afficher la liste des recettes sur
/recettes. - Afficher le détail d'une recette.
- Ajouter un formulaire de création.
- Permettre de filtrer par ingrédient.
Chaque tâche doit se terminer par un résultat observable : « la page /recettes affiche trois recettes ». Une tâche qui s'appelle « travailler sur les recettes » n'est jamais finie.
Le tableau Kanban
Un tableau Kanban représente les tâches comme des cartes rangées dans des colonnes qui indiquent leur état. Une carte se déplace de gauche à droite au fil de l'avancement.
Un tableau simple :
| À faire | En cours | Terminé |
|---|---|---|
| Filtrer par ingrédient | Formulaire de création | Liste des recettes |
| Page de détail |
Garde peu de cartes dans la colonne « En cours ». Finir une chose avant d'en commencer une autre évite d'avoir dix chantiers à moitié faits.
Tu peux le faire sur papier ou avec un outil. GitHub propose Projects, qui affiche tes tâches sous forme de tableau ou de tableur et se met à jour selon l'état de tes issues.
Les issues GitHub
Une issue (en français « problème » dans la documentation GitHub) est une fiche attachée à un dépôt. Elle sert à suivre une idée, une tâche ou un bug.
Une bonne issue contient :
- un titre court : « Afficher la liste des recettes » ;
- une description : ce qu'il faut faire, ou comment reproduire le bug ;
- des étiquettes (labels) comme
bugouamélioration; - éventuellement la personne qui s'en occupe.
Voici un exemple de description pour un bug :
Étapes :
1. Aller sur /recettes
2. Cliquer sur « Ajouter » sans remplir le titre
Résultat attendu : un message d'erreur.
Résultat obtenu : une recette sans titre est créée.
Cette structure, avec étapes, résultat attendu et résultat obtenu, évite à quelqu'un de te poser dix questions. Dans le cours précédent, c'est exactement l'étape « reproduire ».
Relier une issue à son code
Quand tu termines le travail, tu peux fermer l'issue automatiquement. Dans la description d'une pull request, écris un mot-clé suivi du numéro de l'issue :
Closes #12
GitHub propose aussi Fixes et Resolves. Quand la pull request est fusionnée dans la branche par défaut, l'issue #12 se ferme toute seule. Ce lien relie ton code à la raison pour laquelle il existe.
main.Le README
Le fichier README est la première chose que voit quelqu'un qui arrive sur ton dépôt. Écrit en Markdown, un langage de mise en forme simple (# pour un titre, - pour une liste), il répond à trois questions : c'est quoi, comment le lancer, comment contribuer.
# Recettes de mamie
Un site pour garder les recettes de la famille.
## Installation
1. Cloner le dépôt
2. `npm install`
3. `npm run dev`
Le site est alors disponible sur http://localhost:3000.
## Variables d'environnement
Copier `.env.example` en `.env` et remplir les valeurs.
Teste ton README comme un inconnu : supprime ton dossier, clone le dépôt et suis les étapes. Si ça ne marche pas, c'est le README qu'il faut corriger.
Un bon README mentionne aussi les prérequis, comme la version de Node.js, les commandes utiles et, pour un projet ouvert, la licence.
Organiser son travail avec Git
Les issues se combinent bien avec les branches du cours sur Git. Une branche par tâche, nommée d'après elle :
git switch -c recettes-liste
Tu travailles sur la branche, tu ouvres une pull request qui ferme l'issue, puis tu fusionnes. Le tableau Kanban se met à jour de lui-même si tu utilises GitHub Projects.
À retenir
- Découpe un objectif en tâches courtes qui se terminent par un résultat visible.
- Un tableau Kanban range les tâches par état : à faire, en cours, terminé.
- Limite le nombre de tâches en cours pour finir ce que tu commences.
- Une issue décrit une tâche ou un bug : étapes, résultat attendu, résultat obtenu.
Closes #12dans une pull request ferme l'issue quand la fusion est faite.- Un README dit ce qu'est le projet et comment le lancer, et se teste sur une machine vierge.
Pour aller plus loin
Sources officielles
Ensuite
Déboguer méthodiquement
Reproduire un bug, l'isoler et le corriger avec console.log, les points d'arrêt, la méthode du canard en plastique et git bisect.
Sécurité de base
Protéger les secrets avec .env, ne pas faire confiance aux entrées des utilisateurs, surveiller les dépendances et utiliser HTTPS.
- Projet
- Lignes de code
- Niveau
- Rez-de-chaussée
- Appartement
- Bonnes pratiques
- Pièce
- 4/7
- Plan n°
- pratiques/04.gerer-un-projet