Sprintly, spécialiste de la gestion produit, voudrait y répondre à la lumière de la quantité de données sur le temps de chaque cycle de développement qu’il a récoltées via son application phare. Il fait le suivi du temps qu’il faut pour achever différentes tâches (tests, bugs, …) ainsi que de différentes tailles de projets (S, M, L, XL). Alors qu’elles sont ses observations ?
Tout d’abord, les billets de données montrent que les développeurs qui se servent du système utilisent relativement le même temps dans le cycle : 75% des 147 494 éléments qui ont été à la fois acceptés et validés ont été commencé et achevé en 175 heures en moyenne.
Ensuite, il remarque que la plupart des variabilités sont observées avant que le billet n’ait commencé : c’est à ce stade que les intervenants essaient de trouver des spécifications et établissent une priorisation du travail. Dans le modèle de Kanban, cette période correspond au temps de réaction (la quantité de temps qui s’écoule entre la création du billet et le moment où il devient une priorité). Pour rappel, Kanban est une méthode de gestion des connaissances relatives au travail, qui met l’accent sur une fourniture ponctuelle de l’information aux membres de l’équipe de sorte à ne pas les accabler. Dans cette approche, le processus – dès la détermination des tâches, jusqu’à la livraison au client – est affiché pour que les participants puissent le voir, et que les membres de l’équipe puissent tirer du travail de la file. Sprintly remarque que beaucoup de temps est perdu à cette étape.
Ensuite il apparaît que les équipes ont du mal à faire la transition entre les étapes « fait » et « testé et prêt à être déployé » comme le suggère le graphique plus haut au niveau du temps passé sur « Completed to Accepted ». Alors si vous avez l’impression que le travail de votre équipe n’est pas assez rapide, il est fort probable que vos développeurs ne sont pas à blâmer. Mais alors qu’elle pourrait en être la cause ? Un petit indice : votre processus.
Bien écrire les spécifications est important, car comment un développeur pourrait-il commencer à travailler sur une fonctionnalité s’il ne la comprend pas au départ ? A ce propos, sur StackExchange, l’utilisateur eagerMoose partageait son expérience en disant « la plupart du temps, il s’avère que ceux qui ont écrit les spécifications n’ont pas pensé à la chose en profondeur et c’est souvent quand nous commençons le design et le développement que commencent les ennuis puisque de nombreuses spécifications semblent avoir des lacunes ». Il n’est pas rare de voir que les intervenants ne se sont pas vraiment penchés sur la fonctionnalité eux-mêmes. Un développeur doit comprendre POURQUOI un utilisateur a besoin de cette fonctionnalité, ce qu’elle est censée faire, mais également comment elle sera employée. D’ailleurs, Sprintly a utilisé cette philosophie lorsqu’il a proposé son outil de gestion de projets. En utilisant le formulaire ci-dessous qui répond au ‘pourquoi’ et ‘comment’, Sprintly pense qu’une direction spécifique sera maintenue pour une fonctionnalité spécifique.
La seconde plainte qui revient le plus parmi les développeurs est le fait que les décideurs changent souvent les spécifications une fois que le travail a commencé. Sprintly y voit un symptôme d’une mauvaise planification des fonctionnalités avant de leur insertion dans la roadmap. Pour éviter cette situation, Sprintly propose d’utiliser des maquettes interactives avant que le développement à proprement parler ne débute.
Pour Sprintly, le changement de contexte peut également expliquer les retards pris dans vos projets. Il identifie deux formes :
- le développeur a réalisé 50% de la tâche A quand vous vous rendez à son bureau pour lui demander de changer de tâche et faire plutôt la tâche B
- le développeur a réalisé 50% de la tâche A quand vous lui demandez de faire AUSSI la tâche B
« Le problème vient du fait qu’en tant que manager, vous assignez à vos développeurs de nouvelles tâches alors qu’ils sont en plein milieu d’une autre. Si vos priorités sont toujours en train de changer, cela entraînera de gros coûts pour votre équipe » explique Sprintly.
D’ailleurs Joel Spolsky, un programmeur et écrivain américain auteur de Joel on Software, en parlait dans son blog : « la vraie leçon qu’on peut en tirer est que vous ne devriez jamais laisser les gens travailler sur plus d'une chose à la fois. Assurez-vous qu'ils savent de quoi il s’agit. Les bons managers voient leur responsabilité dans le fait de supprimer les obstacles afin que les gens puissent se concentrer sur une chose et vraiment le faire. En cas d'urgence, pensez à voir si vous pouvez gérer vous-même avant de déléguer à un programmeur qui est profondément immergé dans un projet ».
Sprintly conclut en s’adressant aux managers et leur rappelant que c’est leur devoir de fournir aux développeurs un environnement dans lequel ils peuvent mener à bien leurs tâches. Aussi, avant de diriger vers eux leur doigt accusateur, il leur recommande une petite introspection. Voici quelques astuces qu’il leur fournit pour qu’ils puissent s’assurer de ne pas être le poids mort de leur équipe :
- aidez votre équipe à comprendre la vision : travaillez de concert avec votre équipe afin de définir une vision commune de la façon dont vous allez rendre meilleure la vie des utilisateurs. Soyez clair sur les résultats dont vos utilisateurs ont besoin. Il est important d'avoir un développeur motivé ; sa passion pour une fonctionnalité peut devenir un moteur important de vitesse.
- les développeurs doivent avoir la capacité de refuser une tâche en attendant qu’elle soit mieux fournie en détail
- réduisez les coûts relatifs aux changements : n’interrompez pas vos développeurs ! Avant de leur envoyer un courriel ou faire une requête, évaluez-en le coût sur la productivité
Source : blog sprint.ly, Joel on software, stack exchange
Et vous ?
Vous retrouvez-vous dans ces statistiques ? Partagez-vous ce point de vue ?