Une équipe de développement efficace se gère souvent en mode autopilote. L’équipe définit elle-même ses critères de qualité et d’efficience.Les juniors sont souvent accueillis et accompagnés pour les faire monter en compétences rapidement sur un sujet spécifique.
Dans cet article, je vais mettre en avant quelques facteurs clés que je considère comme essentiels pour toute équipe de développement.
Comment créer une équipe qui correspond parfaitement à votre projet ?
Comment mettre en place un processus pour améliorer la productivité ?
1) Créer une équipe qui correspond parfaitement à votre projet.
Il y a 3 types d’équipes de développement, les généralistes, les spécialistes et l’équipe hybride.Chacune de ces équipes peut être vraiment efficace sur un projet mais peut en même temps se retrouver bloquée sur un autre projet.Comme développeur, j’ai eu l’occasion de travailler dans les 3 différentes catégories, sur différents types de projets, et ce aussi bien à l’Ile Maurice qu’en France, aussi bien dans un environnement anglo-saxon que dans un environnement francophone, avec des cultures de développement très différentes.Pour éviter que votre équipe soit bloquée, il faut prendre en compte la complexité de votre projet, le temps et votre budget. Ensuite il vous faudra décider quel type d’équipe correspondra le plus à votre projet.
Les points forts | Les points faibles | Quand choisir ? | |
Généralistes | Livraison rapide | ||
Les membres de l’équipe peuvent avancer en autonomie, au lieu d’avoir comme responsabilité un sujet spécifique qui dependrait des autres membres de l’équipe | L’équipe peut grandir et fonctionner d’une facon optimale, oui, mais avec l’arrivée d’un développeur experimenté. Sinon il faut penser à externaliser le projet en mi-chemin | Les projets modéremment complexes qui doivent etre livrés avec une serie de fonctionalités prédéfinis et qui est géré selon les principes agiles ( Scrum, Kanban ) et dans lequel les délais de livraisons sont courts. | |
L’équipe se concentre dans l’amélioration du logiciel sur un point de vue macro | Les temps d’arrets due à un manque d’expertise en profondeur. | ||
Spécialistes | Les membres de l’équipe peuvent développer un système composé de modules de haut niveau et peuvent vraiment etre éfficace dans leur domaine d’expertise respectifs. | La possibilité de construire des éléments séparémment et qui ne s’imbriquent pas d’une facon optimale dans la solution finale. | Les projets complexes qui requiert une expertise technique spécifique dans un domaine spécifique ( médical, géologie, spatial…) |
Manque de communication dans l’équipe | |||
Equipe Hybrides | Les spécialistes gèrent les sujets qui requiert une expertise en profondeur alors que les généralistes intègre le systeme | Etablir les processus de travail est plus complexe et vous devrez gérer et faire la coordination entre des développeurs qui ont chacun leur approche spéficique du travail | Des projets de grande envergure avec plus de 10 personnes. |
Construire une équipe hybride est souvent compliqué et plus difficile à gérer qu’une équipe de généralistes ou de spécialistes | Des projets agile complexes qui requiert la fléxibilité des généralistes pour délivrer à temps et l’expertise des spécialistes pour couvrir un ou plusieurs défis spécifiques | ||
2) Construire des petites équipes
Les équipes de développement qui sont petites sont plus productives parce qu’il est plus facile de faire la coordination et de reconnaître les contributions individuelles de chaque développeur. En me basant sur mon expérience, je pense que la taille idéale d’une équipe est entre 4 et 8 personnes. Je n’inclue pas les ’Subject Matter Experts’, qui sont les experts fonctionnels ou la MOA et les testeurs, qui doivent eux aussi être présents et en communication étroite avec les développeurs. Si votre projet est conséquent ( plus de 300 jours hommes), vous devriez commencer par diviser votre équipe en sous-équipes, avec un Tech-Lead à la tête de chacune d’entre elles.
3) Assurez vous que votre équipe de développeurs évolue dans un environnement dynamique
Les équipes de développement doivent évoluer dans un environnement enrichissant et où elles voient le résultat final de leurs travaux.L’entreprise doit promouvoir l’échange d’idées, avec le concours de spécialistes dans leurs domaines, ou la présence de managers qui prennent le taureau par les cornes et vont avancer l’équipe.
4) Mettre en place des processus de travail qui améliorent la productivité.
Après avoir choisi une structure d’équipe qui correspond à votre projet, il est essentiel de définir ensuite une méthode de travail pour éviter tout goulot d’étranglements. En tant que développeur .NET, je suis amené à utiliser la plateforme Azure DevOps dans ce cas de figure.Le but final dans l’utilisation d’un outil comme Azure DevOps est l’élimination de processus répétitifs. Les tâches de routine passent par une série d’actions prédéfinies jusqu’à leurs complétion.Par exemple, un développeur commit son code sur sa branche, ensuite il l’envoie pour un Peer-Review et fait un Pull Request sur la branche Master. Le Tech Lead examine la Pull Request et met ses commentaires au cas où pour que le développeur travaille sur la partie du code à revoir en question. Une fois terminé, le commit suit son cours, le build est déclenché, ensuite la Release.Les testeurs prennent le relais et testent chacune des fonctionnalités définis dans les User Stories. Les résultats des tests sont communiqués au Tech Lead et à l’équipe. Le processus prend une forme itérative. Azure DevOps permet à chaque développeur de voir comment son travail est interconnecté avec le travail des autres développeurs. Donc il voit comment sa contribution aide à faire avancer le projet dans son ensemble.
5) Toujours s’assurer de la à mise à jour fréquente de la documentation
La documentation, qu’elle soit fonctionnelle ou technique, doit être toujours à jour. C’est important car ça aide les développeurs à avoir une vision sur la direction que prend le projet. Vous devez aussi vous assurer que les compte-rendus de réunions, le code source et les standards UX-UI par exemple soient toujours accessibles à tous les membres de l’équipe.Si vous travaillez avec une entreprise en mode offshore, vous devez vous assurer que celle-ci vous livre régulièrement une documentation à jour sur le processus de développement.
6) Adopter des standards de développement dès le départ. Cette adoption va vous aider dans le processus de développement. Si les normes de codage sont suivies, le code est cohérent et peut être facilement maintenu. En effet, n’importe qui ensuite le comprendre et le modifier à tout moment.
Je ne vais pas vous parler ici de la nécessité d’avoir une très bonne communication entre les différentes membres de l’équipe, ou le fait d’avoir des sessions spécifiques pour résoudre les conflits.
NextCog vous accompagne dans la gestion de votre équipe de développeurs. Elle les accompagne en mettant en place les bonnes pratiques de développement dès le démarrage de votre projet.On vous aide à mettre en place Azure DevOps et à former votre équipe dans l’utilisation de cette plateforme.Le suivi et l’accompagnement, le conseil et la proposition d’audits font aussi partie de notre expertise.