« Comprendre le temps de cycle dans le logiciel » : différence entre les versions
De Wiki Agile
| (10 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 57 : | Ligne 57 : | ||
'''Temps de Cycle Prévu = Nombre d'éléments en cours / Débit Moyen'''<br/> | '''Temps de Cycle Prévu = Nombre d'éléments en cours / Débit Moyen'''<br/> | ||
<br/> | <br/> | ||
'''Temps de Cycle = Travail en | '''Temps de Cycle = Travail en cours / Débit'''<br/> | ||
<br/> | <br/> | ||
par exemple, disons que vous avez 50 éléments en cours et que vous en finissez en moyenne 10 par semaine.<br/> | par exemple, disons que vous avez 50 éléments en cours et que vous en finissez en moyenne 10 par semaine.<br/> | ||
| Ligne 69 : | Ligne 69 : | ||
Cela nous dit que pour les nouvelles unités qui entrent dans le système, il faudra en moyenne '''5 semaines''' avant que chacune d’elles ne soit terminée.<br/> | Cela nous dit que pour les nouvelles unités qui entrent dans le système, il faudra en moyenne '''5 semaines''' avant que chacune d’elles ne soit terminée.<br/> | ||
<br/> | <br/> | ||
Si nous voulons réduire le Temps de Cycle, nous avons deux options : nous pouvons soit réduire la quantité de travail en cours, soit augmenter le débit. Notre débit est souvent limité par d’autres facteurs et peut donc être plus difficile à modifier, comme la taille de l’équipe ou la disponibilité des équipements. Mais le travail en cours (WIP) nous donne généralement plus de liberté d'agir.<br/> | |||
<br/> | |||
Disons que nous réduisons le travail en cours à seulement 20.<br/> | |||
<br/> | |||
[[Fichier:Little-picture31.png]]<br/> | |||
<br/> | |||
''Nombre d'éléments en cours (20) / Débit Moyen (10 par semaine)''<br/> | |||
<br/> | |||
'''Temps de Cycle Prévu : 20 / 10 = 2 semaines'''<br/> | |||
<br/> | |||
''Cela nous dit que pour les nouvelles unités qui entrent dans le système, il faudra en moyenne 2 semaines avant que chacune d’elles ne soit terminée.''<br/> | |||
<br/> | |||
Ce que vous voyez ici, c’est que notre débit est le même, nous livrons toujours la même quantité, mais en réduisant le travail en cours, nous sommes en mesure de fournir la même quantité en un temps plus court, et dans le souci d’avoir plus d’agilité, un temps de cycle plus court nous permet de changer de direction plus tôt. Moins de travail en cours n'augmente pas notre débit, mais cela nous rend plus efficaces et plus adaptables au changement.<br/> | |||
<br/> | |||
'''Moins vous avez de travail en cours, plus vite il sera terminé.'''<br/> | |||
''Yorke’s motto''<br/> | |||
<br/> | |||
En substance, moins vous avez de travail en cours, plus vite cela sera fait, c'est la leçon à tirer de cela.<br/> | |||
<br/> | |||
Cependant, il devient désormais possible de réduire le travail en cours à un point tel que le débit est impacté (le système peut tomber en famine), ce qui crée une négociations.<br/> | |||
<br/> | |||
Dans certaines situations, le temps de cycle est un facteur critique, il est donc souhaitable de disposer d'un peu de temps de mou, par exemple en cas de besoin urgent de voir un médecin, par rapport à un rendez-vous régulier. Mais dans la plupart des autres cas, nous voudrions limiter notre WIP autant que possible sans impacté le débit.<br/> | |||
==D'autres termes moins utilisés== | ==D'autres termes moins utilisés== | ||
Nous abordons ensuite les termes amusants. Ces termes proviennent de l'industrie manufacturière, mais sont beaucoup moins utilisés dans un contexte logiciel, mais il peut être utile de les connaître, car ils peuvent aider à comprendre la composition du temps de cycle et les endroits où vous pouvez agir pour tendre votre processus.<br/> | |||
* '''Temps de traitement''' | |||
** C'est le moment où quelqu'un travaille à la création de quelque chose : rédaction de code, documents, conception, tests, etc. | |||
* '''Temps de déplacement''' | |||
** En termes de logiciel, cela correspond au temps nécessaire pour passer d'un utilisateur à un autre ou d'une action à une autre, cela inclut donc la compilation, le packaging, le déploiement et le partage de connaissances. | |||
* '''Temps d'inspection''' | |||
** Il peut s’agir du temps de la QA ou des revues de code, de la démonstration aux Product Owners ou aux parties prenantes, mais cela peut aussi correspondre au temps de traitement car il s’agit toujours d’un travail à valeur ajoutée. | |||
* '''Temps d'attente''' | |||
** C'est le moment où une unité (story / tâche) est en cours mais non traitée, par exemple bloquée ou en attente de revue de code, en attente de QA, en attente de démonstration, chaque fois que le travail est suspendu pour une raison quelconque avant de le terminer. | |||
* '''Temps d'attente''' | |||
** C’est le temps qu’une demande passe dans le backlog avant que nous nous engagions à y travailler, par exemple le moment où un client identifie une fonctionnalité / un bogue jusqu'à ce que nous commencions à y travailler. | |||
* '''Temps de valeur ajoutée''' | |||
** Tout moment dans le système où une activité ajoute de la valeur au produit, donc par exemple ne fait pas la queue, n'attend pas. | |||
==Résumé== | ==Résumé== | ||
Le temps de cycle et la loi de Little sont de plus en plus utilisés et, s’ils ne sont pas compliqués à comprendre, ils apportent un nouvel ensemble de termes avec la confusion associée.<br/> | |||
<br/> | |||
Par exemple, j'ai vu plusieurs fois récemment des personnes dire que réduire le temps de cycle ''augmentait'' le débit. Mathématiquement parlant, c'est incorrect (bien que l’inverse soit vrai, l’augmentation de débit doit réduire le temps de cycle). De manière anecdotique, moins de changement de contexte augmente le débit. Ce qu’ils conseillent constitue un bon conseil : réduire le WIP. Cependant, leurs attentes et leurs raisonnements sont faux et ajoutent encore à la confusion.<br/> | |||
<br/> | |||
Le temps de cycle n'est pas une mesure de la quantité produite, mais une mesure de sa durée passée dans le système. Il est important de se rappeler que le débit et le temps de cycle sont des mesures différentes.<br/> | |||
<br/> | |||
''Le temps de cycle n'est pas une mesure de la quantité produite, mais une mesure de sa durée passée dans le système.''<br/> | |||
<br/> | |||
J'espère que cela vous aide et je serais heureux de donner des détails si certaines parties ne sont pas claires. | |||