Guide du débutant pour gérer le développement de logiciels avec Kanban et Trello
Publié: 2022-03-11Tout le monde est chef de projet. Que vous gériez le développement d'une nouvelle application et que vous développiez votre startup, que vous travailliez sur un nouveau projet d'entreprise d'un milliard de dollars ou que vous essayiez simplement d'égayer votre jardin avec un aménagement paysager de bricolage, vous gérez toujours un projet.
Le succès de votre projet dépend de nombreux facteurs, mais l'une des raisons les plus courantes pour lesquelles les projets échouent est un manque de gestion ou une mauvaise gestion de projet. Peu importe la taille de votre équipe ou la clarté avec laquelle vos exigences sont documentées, si vous ne gérez pas correctement votre équipe, votre projet est voué à l'échec.
La gestion de projet agile est une méthode largement acceptée pour aborder les projets de développement de logiciels modernes. Mais que signifie vraiment Agile ?
Pour une plongée plus approfondie dans les principes Agile, je vous suggère de lire notre Guide ultime de la gestion de projet Agile.
Dans cet article, nous vous expliquerons les bases de la gestion de projet agile avec Kanban.
Même si vous êtes un chef de projet expérimenté qui comprend parfaitement les principes agiles, vous devez vous rafraîchir la mémoire et vous rappeler les concepts de base. Les cycles d'innovation dans le développement de logiciels s'accélèrent constamment, rendant la gestion de projet plus complexe à chaque itération. Revenir aux principes fondamentaux et consolider les principes fondamentaux d'Agile est toujours important. Après tout, la répétition est la mère de toute connaissance.
Kanban est l'une des méthodes les plus simples de gestion de tout projet de développement logiciel Agile. Vous pouvez facilement gérer une équipe de développement locale qui travaille à partir du même bureau ou d'une équipe distribuée, répartie sur plusieurs fuseaux horaires.
Kanban n'est pas un processus. C'est une façon de gérer n'importe quel processus avec des changements minimes aux activités opérationnelles établies de l'équipe.
Afin d'appliquer les principes Kanban à votre travail, vous devez appliquer deux règles simples :
- Visualisez votre processus.
- Limitez les travaux en cours.
Visualisez votre processus
La visualisation des données est un moyen simple et rapide de transmettre des informations de manière universelle et facile à comprendre. Lorsqu'il regarde des images, le cerveau humain peut traiter plusieurs informations simultanément. Certaines recherches indiquent que cela peut être jusqu'à 60 000 fois plus rapide que la lecture d'un texte.
Le moyen le plus populaire de visualiser un processus est un tableau Kanban. Un tableau Kanban est un tableau divisé verticalement en plusieurs colonnes, chaque colonne représentant un état de votre processus.
Voyons à quoi ressemblerait une simple carte de développement logiciel. Tout d'abord, nous devons définir des états pour nos fonctionnalités de développement :
- To-Do - la fonctionnalité est en attente de développement
- Développement - la fonctionnalité est attribuée à un développeur et il/elle y travaille
- Assurance qualité - fonctionnalité en cours de révision
- Déployé - la fonctionnalité est acceptée et incluse dans la version de l'application
Sur cette base, votre tableau devrait avoir la disposition suivante :
Visualiser des tâches individuelles est aussi simple que de créer une simple carte (un peu comme un Post-it) qui représente le travail qui doit être fait. Vous pouvez nommer la tâche, ajouter le nom du développeur affecté, la date d'échéance et toute autre information pertinente sur cette carte.
Lorsque vous ajoutez cette carte à une colonne du tableau Kanban, vous avez visualisé que, par exemple, un développeur spécifique travaille sur une tâche particulière qui est due à une certaine date et qui est actuellement en développement.
Limiter les travaux en cours (WIP)
Le multitâche humain est une illusion. Au lieu de prêter attention à une ou deux choses simultanément, notre cerveau passe très rapidement de l'une à l'autre.
Ceci est plus visible dans le développement de logiciels que partout ailleurs. Les développeurs ne peuvent travailler que sur un seul morceau de code à la fois, et le passage à une autre fonctionnalité entraînera des retards et affectera leur concentration et leurs performances.
Cela ne signifie pas que vous devez limiter le nombre d'affectations à une seule à la fois. Le développement est un travail complexe et créatif, certaines tâches prennent plus de temps et d'autres prennent moins de temps, et il y a toujours un retard pendant qu'un développeur attend quelque chose ou quelqu'un. L'important est de limiter les tâches assignées à un nombre raisonnable qui ne produira pas de chaos (il s'agit généralement de trois à cinq tâches à la fois).
En supposant que votre équipe de développement est composée de deux développeurs et d'un ingénieur QA, votre carte peut avoir les limites WIP suivantes :
- À faire - Illimité
- Développement - Limite de six cartes (deux développeurs chacun limité à un maximum de trois tâches)
- Assurance qualité - Limite de trois cartes (1 ingénieur QA limité à un maximum de trois cartes)
- Déployé - Illimité
C'est votre travail, en tant que chef de projet, de vous assurer que la liste des tâches est correctement hiérarchisée et que les tâches sont attribuées aux développeurs dès que nécessaire.
Un tableau Kanban correctement géré vous donnera une image claire de l'état de votre projet en un coup d'œil. Vous pouvez voir que vos développeurs ont suffisamment de travail, que vous avez préparé de nouvelles tâches qu'ils peuvent prendre en charge une fois leurs missions terminées et que votre ingénieur QA attend de nouvelles tâches à examiner.
Utilisez Trello pour gérer votre tableau Kanban
Trello est une application Web de gestion de projet Kanban. Il permet une collaboration facile et en temps réel entre les membres de l'équipe et même plusieurs équipes et projets.
Pour créer un tableau dans Trello, cliquez sur l'élément de menu "Créer un nouveau tableau..." et définissez un titre pour votre tableau.
Vous commencerez avec un plateau vide. Utilisez la case "Ajouter une liste..." pour créer des colonnes pour vos fiches Kanban.
En cliquant sur "Ajouter une carte..." au bas de l'une des listes, vous pouvez facilement créer une tâche. Chaque carte que vous créez doit représenter une tâche qui sera exécutée par un membre de l'équipe.
Les cartes dans Trello peuvent être personnalisées de plusieurs façons :
- Affecter les membres de l'équipe responsables de l'exécution d'une tâche
- Codez-les par couleur en fonction des groupes spécifiques que vous souhaitez ajouter
- Fixer des dates d'échéance
- Ajouter des pièces jointes
- Ajoutez des champs personnalisés tels qu'une liste de contrôle où vous pouvez suivre la progression des petits éléments qui composent une tâche
- Les membres de l'équipe peuvent commenter une carte et tout le monde sera informé de toute modification apportée.
La visualisation est tout dans Kanban, alors voici à quoi ressemble une carte sur le tableau :

Rien qu'en regardant la carte, sans ouvrir la vue détaillée, vous pouvez voir que :
- La tâche de configuration du référentiel de code GitHub attend d'être exécutée dans la liste des tâches.
- La tâche doit être remise avant le 27 janvier.
- La tâche a une description.
- Il y a un commentaire sur la tâche.
- Il existe une liste de contrôle de deux éléments, et aucun de ces éléments n'est actuellement terminé.
- La tâche est attribuée à l'utilisateur DS, qui la récupère ensuite.
- La tâche appartient à un groupe de cartes de couleur verte, ce qui signifie qu'elle est requise avant le démarrage du projet.
Estimer le temps et la complexité des travaux de développement
Planifier et gérer un projet est impossible sans comprendre l'effort et le temps nécessaires pour accomplir une certaine tâche. Cependant, l'une des choses les plus difficiles à faire dans le développement de logiciels est de déterminer combien de temps il faudra pour livrer un nouveau produit logiciel ou une nouvelle fonctionnalité.
Scrum, l'un des principes Agiles les plus populaires, s'appuie fortement sur des estimations, qu'elles soient basées sur le temps ou sur des "points de complexité".
L'équipe doit passer beaucoup de temps à délimiter la tâche.
En effet, Scrum est basé sur des intervalles limités dans le temps, lorsqu'un certain groupe de tâches doit être terminé. Afin de planifier la livraison, vous devez avoir une compréhension complète de tout le travail prévu pour cette plage horaire.
Kanban ne s'appuie pas sur des livraisons limitées dans le temps et vous pouvez planifier une livraison quotidienne si vous le souhaitez. Il repose sur l'optimisation du flux, ce qui signifie que l'objectif de l'équipe est de remplir et de vider la colonne WIP dès que possible.
L'équipe ne passe pas de temps à estimer le travail beaucoup à l'avance. Un développeur prendra le prochain élément de To-Do; le compléter dès que possible ; et choisissez une autre tâche.
Cela ne signifie pas qu'une équipe ne doit pas estimer le volume de sa charge de travail.
Vous pouvez utiliser vos appels hebdomadaires ou quotidiens pour mettre à jour et vérifier les dates d'échéance.
Cependant, pour une petite équipe, il est plus important de s'assurer que les développeurs travaillent sur la tâche la plus prioritaire à tout moment et qu'il n'y a pas de goulots d'étranglement, obligeant un développeur à interrompre son travail.
Finalement, votre projet grandira et vous devrez commencer à estimer plus en détail la quantité de travail de développement. Lorsque vous arrivez à cette situation, passez un peu de temps à lire notre guide pour l'estimation des coûts logiciels dans la gestion de projet agile.
Pratiques de gestion indispensables
Jusqu'à présent, vous avez appris l'importance de visualiser votre processus et de limiter les WIP, et comment utiliser Trello pour gérer votre projet.
Un projet logiciel ne peut cependant pas être géré uniquement avec des cartes et des colonnes. Par conséquent, il est important de mettre également en œuvre les meilleures pratiques Agile :
Organisez une réunion d'équipe régulière.
Faites-le au moins une fois par semaine pour revoir ce qui a été fait et affiner et hiérarchiser le backlog (liste de tâches) si nécessaire. De cette façon, toute l'équipe recevra des mises à jour en même temps et les idées pourront être partagées. Lors de ces réunions, il est important d'avoir une partie prenante du projet (client, directeur technique de l'entreprise ou toute personne de l'équipe produit qui peut prendre une décision et répondre aux questions) pour éventuellement fournir des commentaires non techniques.Assurer une communication constante avec les membres individuels de l'équipe.
Cela facilitera grandement le travail quotidien de chacun. Gardez ces réunions ou synchronisations très courtes et simples, une simple mise à jour rapide dans votre programme de chat préféré suffira. Il est utile d'avoir des vérifications quotidiennes, qui pourraient être une réunion quotidienne d'environ 15 minutes que vous avez avec votre équipe. Lors de cette réunion, chaque membre de l'équipe prend la parole pendant quelques secondes en déclarant :
- Ce sur quoi ils ont travaillé hier.
- Ce sur quoi ils prévoient de travailler aujourd'hui.
- Quels sont les défis ou les goulots d'étranglement auxquels ils sont confrontés.
Prenez des notes pendant l'appel et faites attention à trouver les problèmes possibles (blocages, mauvaise concentration sur la tâche, défis techniques inattendus) et travaillez dessus avec l'équipe.
Amorcez votre projet de développement logiciel
Bien que chaque projet de développement logiciel soit différent, vous trouverez certaines tâches dans presque tous. Voici quelques-unes des tâches que vous devez planifier lors du démarrage d'un projet de développement logiciel :
Configurez la gestion des versions de code et un référentiel.
Le suivi des modifications et la surveillance du code sont extrêmement importants, en particulier lors de la collaboration sur des projets où plusieurs personnes mettront à jour le même code.
L'un des services les plus populaires pour la gestion des versions de code est GitHub. GitHub est un référentiel Git ou de contrôle de version basé sur le Web qui offre toutes les fonctionnalités distribuées de contrôle de version et de gestion du code source (SCM) de Git.
Il fournit un contrôle d'accès et plusieurs fonctionnalités de collaboration, telles que le suivi des bogues, les demandes de fonctionnalités, la gestion des tâches et des wikis pour chaque projet.Définissez une politique de sauvegarde de base de données.
L'utilisation de services tels que GitHub garantira que votre code est sauvegardé régulièrement.
Les bases de données ne font généralement pas partie de votre système de gestion des versions et vous devez également configurer des sauvegardes fréquentes de la base de données.
Le processus de développement est sujet aux erreurs et il est facile de faire une erreur et de mettre à jour les mauvaises données pendant le développement. Avoir une sauvegarde vous évitera des ennuis si un tel problème se produit.Mettre en place des outils de collaboration et de partage de fichiers.
La documentation du projet, les spécifications fonctionnelles, les fichiers de conception et toute autre documentation et fichiers utilisés pendant le développement du projet sont constamment mis à jour et doivent être distribués à votre équipe.
Vous pouvez utiliser un certain nombre de services différents pour partager ces fichiers. Google permet une solution simple et rentable à ce problème. Utilisez Google Drive, Google Docs, Google Sheets et d'autres applications Google pour partager et collaborer sur des fichiers.Configurez des serveurs de développement et de test distincts.
Le processus de développement doit se poursuivre à tout moment.
Les développeurs ne doivent pas attendre les résultats des tests d'application et doivent continuer à travailler sur leurs missions pendant que l'assurance qualité examine les fonctionnalités terminées.
Dans le même temps, le client doit pouvoir vérifier à tout moment l'état actuel de l'application, sans attendre l'équipe de développement. Avoir un serveur de test dédié qui est mis à jour régulièrement supprimera tous les goulots d'étranglement de ce processus et garantira que votre équipe fonctionne sans interruption.Définissez une heure fixe pour les appels d'équipe hebdomadaires et une heure fixe pour les appels ou les discussions de rattrapage quotidiens de l'équipe.
Demandez à tous les membres de votre équipe de planifier une heure dans leur calendrier pour les appels et les réunions. Cela donne à votre équipe un horaire stable sans interruption de travail.
Emporter
La gestion de projet est une activité complexe et, trop souvent, très stressante. Le fait d'y ajouter une structure et de rendre le statut du projet visible et précis à tout moment atténue une grande partie de ce stress. L'utilisation de la méthode Kanban et des principes Agiles, associée aux outils appropriés, vous fera gagner beaucoup de temps.
Cela étant dit, il n'existe aucun outil ou méthodologie qui compensera le temps que vous, en tant que chef de projet, devez consacrer à la gestion du projet.
Et ce n'est pas parce qu'un projet est petit qu'il nécessite nécessairement moins de temps. Cette mentalité est une excellente recette pour un gros mal de tête sur toute la ligne.
Voici une liste de contrôle simple pour vous aider à vérifier si votre projet est correctement géré :
- Votre processus est-il correctement visualisé ?
- Le WIP pour chaque membre de l'équipe est-il limité et minimisé ?
- Votre équipe a-t-elle une réunion régulièrement planifiée - hebdomadaire ou quotidienne ?
- Votre tableau Kanban est-il régulièrement mis à jour ?
- Avez-vous un référentiel de code en place ?
- Avez-vous planifié des sauvegardes de base de données ?
- Avez-vous mis en place des outils de communication et de collaboration d'équipe ?
- Votre environnement de développement est-il séparé des tests, de l'acceptation et de la production ?
Gardez à l'esprit que cette liste est loin d'être définitive et terminée; c'est juste le début.
N'hésitez pas à laisser vos commentaires et à partager vos conseils et pratiques avec les chefs de projet qui commencent tout juste leur voyage sans fin consistant à responsabiliser les équipes de développement de logiciels.
