BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Les files d'attente, les vraies ennemies de la fluidité

Écrit par Paul Dolman-Darrall , traduit par Mathieu Pousse le 27 août 2013 |

Quand un projet est en retard, c'est rarement à cause d'une surcharge de travail. Le plus souvent, c'est lié à la durée pendant laquelle vos tâches sont restées inactives, bloquées dans une file d'attente. Et pourtant, les gestionnaires de projet continuent à se focaliser sur le temps d'activité, et non sur le temps d'attente. La seule file d'attente qui est vraiment mesurée aujourd'hui, c'est le backlog, mais en fait il y en a beaucoup d'autres. Cet article examine pourquoi nous devrions les suivre et combien elles coûtent aux projets.

Mais pourquoi est-ce si long ?

Découvrir le véritable ennemi de la fluidité

Tout vient à point à qui sait attendre

Quand vous voulez une tasse de thé, vous vous plaignez du temps que prend la bouilloire à chauffer l'eau. Mais pour faire bouillir une certaine quantité d'eau, il n'y a pas grand-chose que vous puissiez faire pour aller plus vite. C'est votre impatience qui se symbolise à travers l'attention particulière que vous portez à la bouilloire qui vous donne cette impression de lenteur.

Imaginez que vous ayez eu cette envie une demi-heure plus tôt. Si maintenant vous n'avez toujours pas votre tasse, ce n'est probablement pas parce que la bouilloire est en panne. Il y a plus de chance que ce soit à cause de choses qui se sont produites durant ce laps de temps. Peut-être que le téléphone a sonné, peut-être que vous avez eu à négocier longuement pour savoir à qui c'était le tour de préparer le thé, ou bien vous aviez un énorme tas de vaisselle à faire avant même de pouvoir atteindre le robinet pour remplir la bouilloire. Toutes ces activités sans valeur ajouté sont les vraies causes du délai qui existe entre le moment de l'envie et le moment où vous savourez votre tasse de thé. C'est tout le temps où la tâche "faire bouillir de l'eau" est restée inactive dans la file d'attente.

C'est une métaphore qui devrait parler aux équipes de développements, mais en pratique ce n'est pas le cas malheureusement. C'est parce que l'on ne voit plus ces files d’attente qu'on n'y prête plus attention. Plutôt que de se demander pourquoi cela a pris si longtemps avant de penser à allumer la bouilloire, on jette un regard agacé à l'instrument en attendant que cela boue et en pestant car c'est trop long !

Les files d’attente sont partout

Nos journées de travail sont organisées à travers ces files d’attente. Parce que nous sommes tellement occupés, nous ne nous rendons plus compte qu'une infime partie de notre temps est réellement mise à profit. La majorité du temps, on le passe dans ces files. Ces délais peuvent être énormes (par exemple en attendant qu'une équipe soit affectée à un projet), ou bien très court (une demande d'information en attente dans la boîte mail de votre collègue).

Pourquoi ne les voyons-nous plus ?

Nous avons tendance à très bien savoir gérer les files d’attente que nous voyons. Par exemple, quand à la banque il y a trop de monde devant nous, nous rebroussons chemin et repassons plus tard. Nous pouvons nous en plaindre (demander à notre banquier de changer notre compte d'agence) et nous pouvons aussi gérer le problème (en investissant dans des distributeurs automatiques pour essayer de réduire les queues à la banque).

Dans l'industrie où les files d’attente sont les immenses stocks qui dorment et qui apparaissent sur les bilans comme des actifs non réalisés, le management essaye de tout faire pour les réduire.

Mais ces stocks qui grossissent dans le développement logiciel sont invisibles. La plupart de notre travail se traduit par des informations : idées, architecture et lignes de codes. L'impact est pourtant aussi important que dans l'industrie. Plus vous avez de tâches inachevées qui prennent la poussière, plus vous prenez le risque de perdre votre investissement. Vous pouvez manquer une opportunité, un client peut passer son chemin, la technologie ou l’environnement peut changer. Et dans ce cas, les efforts et le temps investis dans les réflexions seront gâchés.

Parce que nos files sont invisibles, il est facile de les ignorer. Si on double la taille du cahier des charges, il n'y a pas d'alarme qui retentit. Les équipes de développeurs vont probablement paraître un peu plus sous pression, mais il n'y a pas vraiment de moyen de savoir comment cela influe sur le temps qu’il leur faudra. Maintenant, imaginez que l'on double le nombre de développeur sur le projet, tout le monde le verra ! Non seulement il y aura une lutte armée pour conquérir le dernier espace de bureau libre, mais les managers seront également en réunion de crise pour essayer de trouver les financements pour les payer.

Un impact non négligeable !

Dans un système sans file d'attente, le temps d'un cycle (le temps nécessaire pour livrer un ensemble de fonctionnalités) serait la somme de chacune des activités. Cela impliquerait que les moments de décision ne prendraient pas la semaine, ou même un jour, ils prendraient 2 heures, le temps vraiment passé à discuter des solutions. Rechercher une nouvelle idée de développement (par exemple oser une nouvelle interface utilisateur) ne prendrait pas 4 semaines, mais en fait 5 jours pour prototyper différents agencements (avec 4 équipes travaillant en parallèle) plus un jour supplémentaire pour confronter les résultats, les analyser et prendre la décision.

Un projet qui se déroule sans file ne prend que très peu de temps. Mais c'est également très coûteux. Pour ne pas avoir de délais entre chaque étapes, vous devez garder vos équipes disponibles, prêtes à se mettre au travail dès que nécessaire. Vous devez également avoir des clients toujours disponibles pour répondre à vos questions et à vous fournir des retours sur l'utilisation, et même le PDG qui doit être toujours prêt à donner sa signature.

Si les cycles les plus courts supposent de ne pas avoir de queues, les plus longs impliquent le contraire. Plus longue est la file d'attente, plus lent est le cycle. On comprend bien cela - au supermarché nous cherchons les caisses avec les plus petites queues pour être pris en charge le plus rapidement possible. Être coincé un jour dans une file d'attente nous empêche de travailler, c'est donc automatiquement ajouter un jour au temps de réalisation du cycle.

Pour résumer, les files ont un impact financier direct sur vos affaires. Elles font grossir les stocks, bloquent des projets important ce qui augmente le risque de pertes, retardent les informations en retour de vos clients et impactent la motivation et la qualité. Et malgré tout cela, elles sont rarement surveillées. Une société qui tient une comptabilité et chasse les heures supplémentaires n'est probablement pas encore consciente du coût et des délais induis par les files d’attente.

Les grandes files coûtent cher

Face à une grande file d'attente, on a tendance à régir avec optimisme. C'est vrai, vous sortez d'une grosse période de travail intense, mais là les choses semblent se calmer et vous allez pouvoir regarder un peu ce qu'il y a dans votre liste de "TODO" (votre file d'attente). Mais votre optimisme n'est pas justifié ! Dés lors qu'une tâche va prendre plus de temps que prévu, une queue va se former. Et il est peu probable qu'elle se résorbe avec toutes les petites tâches simple qui arrivent. Au lieu de cela, tout commence à s'empiler et plus cela va, plus les chances de voir cette file se résorber s'amenuisent. Cela est connu comme le "principe de diffusion" et il existe une démonstration mathématique à cela. Dés qu'un mouvement se crée dans une direction, le moins probable est que le système revienne à son état d'origine. Notre incapacité à prendre en compte ce problème de probabilité est une des raisons principales des pertes d'argent en bourse où les gens pensent obstinément que l'action va revenir à son état de forme.

En fait, quand il s'agit de files d’attente d'ordre professionnel, c'est même pire que cela. L’expérience montre que même avec une planification honnête, la plupart d'entre nous avons tendance à sous estimer la charge des tâches. Donc au final, les tâches prennent plus de temps que prévu et donc les files grossissent encore plus vite.

Si la première action prend plus de temps, c'est donc toutes les tâches suivantes qui sont décalées. Si vous devez payer des pénalités de retard pour toutes ces actions, vous devrez alors le régler l'amende pour toutes même si c'est seulement la première qui a durée plus longtemps. C'est pourquoi les grandes files ont un impact économique bien plus important et plus elles grandissent, plus il est difficile de les gérer.

Les douanes anglaises en sont un bon exemple. En 2006, le gouvernement leur a demandé de traiter en 5 ans, 450 000 demandes d'asile qui restaient en attente. A l'été 2011, il restait toujours aux douanes 147 000 dossiers à traiter. Il y avait 150 cartons de courriers provenant des demandeurs d'asile et de leurs avocats. Comme le traitement avait pris du retard, il devenait de plus en plus difficile de retrouver les demandeurs d'asile, leur situation avait changé, ils avaient eu un enfant entre temps ce qui leur donnait généralement le droit de rester. Ces genres de cas bloquaient les suivants qui allaient souffrir des mêmes problèmes. Les politiques restaient concentrés sur l'efficacité de l'activité (la vitesse de traitement d'un dossier), plutôt que d'essayer de comprendre que le vrai problème était la taille de la file. La réduction de celle-ci signifiait prendre une décision polémique, comme par exemple accorder une amnistie de 5 ans à toutes les personnes ayant un dossier en attente de traitement. Sans ce genre de décision, la file continue de grandir et les dégâts économique et humain continuent.

Alors quelles actions ?

1. Mesurer la taille de la file

Si on regarde uniquement le résultat (le flux des demandes d'asiles traitées), ou une activité (tous les agents des douanes semblent être occupé), il faudra beaucoup de temps pour se rendre compte du problème. Si on mesure la taille de la file, cela permet d'anticiper les problèmes. Le plus simple est de mesurer le délai qu'il faut pour que l'action sorte de la queue et soit traitée (dans sa globalité, de l'idée jusqu'au retour sur investissement, ou bien à travers un autre processus).

Commencez par enregistrer le moment où une fonctionnalité entre vraiment en phase de développement. Mesurez le temps exact qu'une tâche passe dans chaque phase. Enfin, notez la date à laquelle cette fonctionnalité est déployée. En soustrayant le "temps de travail" au "temps total" vous aurez une idée du temps passé dans la file.

2. Rendez les visibles

Une représentation efficace des files d’attente est le diagramme de flux cumulé. Cela vous indique non seulement si il y a une file d'attente, mais aussi si celle-ci est exacerbée par un grand nombre d'arrivées ou par un service trop lent qui ne produit que peu de départs. C'est particulièrement efficace pour identifier des files en cours de création. Beaucoup d'équipes affichent leurs files d'attente en utilisant des post-it collés sur le mur en colonne qui représentent le processus ou les développeurs.

Il devient alors très facile de détecter la création d'une queue quand une des colonnes commence à se surcharger.

3. Estimer les files

Il est possible de les estimer en utilisant la loi de Little. Elle déduit le temps moyen d'attente avec la taille de la file ainsi que la vitesse de traitement. Elle est très efficace et s'applique au processus complet ou bien à un quelque chose d'unitaire. De plus, elle est très simple a expliquer comparé à la théorie des files d'attente.

Temps moyen d'attente = Taille de la queue / Vitesse moyenne de traitement

Cette formule est utilisée pour déterminer combien de temps sera nécessaire pour prendre votre appel, ou bien combien de temps il vous reste avant de monter dans le manège. Cela veut dire que l'on peut savoir dans combien de temps une tâche aura été effectuée. Cette information est très utile pour aider le product owner à reprioriser les actions si nécessaire.

4. Séquencez vos files

Dés lors que vous avez une bonne visibilité de celles-ci et que vous les avez mesurées, vous allez vraiment pouvoir les prioriser ou les séquencer pour maximiser la valeur et minimiser les problèmes. Vous pouvez le faire assez rapidement et vérifier les résultats. Il faut commencer avec les tâches qui ont la plus grande valeur pour le projet. À valeur égale, vous devez commencer par les plus courtes car vous bloquerez moins longtemps la ressource et une fois terminées, vous concrétiserez les efforts.

5. Faites du ménage dans les files

Si une action n'a pas été prise en charge après un certain temps, peut être parce que d'autres actions ont pris la priorité, il est alors nécessaire de la supprimer. Si des personnes s'en émeuvent, alors la purge aura eu pour effet de porter l'attention sur elle et donc il sera nécessaire de revoir sa priorité et de la replanifier.

Ou chercher des files en informatique ?

The Fuzzy Front End ou la lente mise en place du projet

Reinertsen et Smith ont particulièrement bien décrit la période du projet qui précède les développements comme le "Fuzzy Front End". Accord de lancement, recherche, prototypage, étude de faisabilité, ... Les sociétés investissent beaucoup d'argent pour s'assurer qu'elles vont dépenser leur argent pour LA bonne idée. Cela provoque une énorme file d'attente au tout début du projet car toutes les idées doivent être planifiées et un retour sur investissement doit être décrit, quantifié (aucun projet ne peut exister sans des investigations préalables). C'est ironique de voir les sociétés dépenser autant d'argent pour minimiser les risques, ce qui leur coûte ensuite des délais si grands qu'ils prennent le risque que leur idée originale soit devenu obsolète.

Que pouvons nous faire ?

Si vous pouvez quantifier le coût du délai pour chaque projet, pour chaque idée, vous pouvez aider le management à prendre des décisions plus rapide ou tester des idées pour commencer à gagner de l'argent.

Expert

Nous avons tendance faire appel à des experts pour maximiser l'efficacité. Comme ils sont souvent onéreux, vous les utilisez à 1oo%. C'est le meilleur moyen de créer une queue. Embauchez plus de spécialistes est coûteux et les sociétés sont résistantes à investir dans la formation des développeurs par un expert.

Que pouvons nous faire ?

Avoir des "experts généralistes" peut être un moyen formidable d'ajouter des capacités de traitement quand nécessaire - les développeurs qui peuvent tester, les statisticiens qui sont contents de s'associer aux autres équipes. L'équipe peut aussi s'adapter et proposer ainsi un moyen de lisser la charge et maîtriser les goulots d'étranglement. Cela peut passer par proposer un service de secrétariat (vous voulez que vos experts travaillent et non pas qu'ils réservent leurs billets de train) jusqu'à faire le plus possible de préparation avancée pour les équipes.

Environnement

Les grosses files d'attente dans les développements logiciel ne sont pas toujours causées par les personnes. Elles sont également dues à des problèmes de ressources : matériel et environnementale. Le matériel est fréquemment une ressource limité, soit par ses capacités soit à cause de la manière dont il est configuré / architecturé.

Que pouvons nous faire ?

Partager une ressource coûteuse a du sens pour les personnes qui s'occupent de l'efficacité budgétaire, mais on doit également prendre en compte le coût du délai. Les équipes, elles aussi doivent travailler pour anticiper les goulots d'étranglement en prévoyant par exemple la création de nouvelles instances.

Conclusion

Les files d’attente font partie de la vie. Nous n'essayons pas de les faire passer pour le bouc émissaire. Elles entraînent un délai et cela a un coût. Dans la plupart du temps, ce coût est supérieur à ce qu'aurait coûté le travail nécessaire à les réduire ou à les faire disparaître. Les hôpitaux publics ont tendance à se satisfaire de ces files d’attente qui leur permettent de s'assurer de l'utilisation des docteurs au maximum. Les cliniques privées quant à elles fonctionnent à l'inverse car elles ne veulent pas que les patients attendent en arrivant. Ce balancier a un impact sur le modèle économique, le coût pour les patients et sur la rentabilité.

Ignorer les files d'attente signifie que vous ne serez pas capable de prendre ce genre de décision. Votre business pourrait souffrir d'énormes goulots d'étranglements et avoir des coûts importants en terme de délais et le tout sans que vous en preniez connaissance. Une société qui fait très attention aux délais de livraison mais qui ne regarde que le résultat de son activité et non pas l'état des files est comme celui qui attend que l'eau boue alors que le feu est coupé sous la bouilloire.

À propos de l'auteur

Paul Dolman-Darrall est directeur informatique et est connu pour développer et mener des programmes de changement avec de grosses équipes dont quelques unes des plus grandes sociétés internationales ainsi que pour des gouvernements. Chez Emergn, son rôle de Executive Vice President lui a permis de lancer VFQ Education (Valeur, Flux, Qualité), un système d'apprentissage basé sur la pratique qui offre des résultats immédiats. Le programme est conçu pour aider les équipes informatiques qui s'appuient sur la technologie pour mettre en place des pratiques plus intelligentes et plus efficaces afin de faciliter le changement. Ce programme génère des retours sur investissement significatifs et inspire l'innovation par la pratique.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT