|
|
| Ligne 159 : |
Ligne 159 : |
| [[File:Xsystems-thinking-6-fr.png|link=|848px|border]] | | [[File:Xsystems-thinking-6-fr.png|link=|848px|border]] |
|
| |
|
| '''Opposite effects'''—A causal link effect may be the same or opposite direction; if A goes up then B goes up, or vice versa. Opposite effect is shown with an ‘O’ on the line. Suppose defects going up puts a drag on the system, lowering the velocity of new features because people spend more time fixing or working around bugs.
| |
|
| |
|
| '''Effets opposés''' - L’effet d’un lien de causalité peut aller dans la même direction ou dans la direction opposée. Si A monte alors B monte ou vice versa. L’effet opposé se souligne à l’aide d’un ‘0’ sur la ligne. Supposons que les anomalies ralentissent grandement le système, réduisant la vélocité des nouvelles ''features'' parce que les gens passent plus de temps à corriger ou à trouver des solutions de contournement aux anomalies. | | '''Effets opposés''' : l’effet d’un lien de causalité peut aller dans la même direction ou dans la direction opposée. Si A augmente alors B augmente, ou vice versa. L’effet opposé se souligne à l’aide d’un ‘O’ sur la ligne. Supposons que les anomalies ralentissent grandement le système, réduisant la vélocité des nouvelles features parce que les gens passent davantage de temps à corriger ou à trouver des solutions de contournement aux anomalies. |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-7.png.pagespeed.ic.DPGMJyX2Qf.webp|frame|none|alt=|caption systems thinking-7.png]] | | [[File:Xsystems-thinking-7-fr.png|border|848px|link=]] |
|
| |
|
| [[File:Xsystems-thinking-7-fr.png|frameless|848px|4ème schéma]]
| |
|
| |
|
| '''Constraints'''—Unless you can find people to work for free, there is a constraint on the number of developers, based upon cash supply. | | '''Contraintes''' : à moins que vous ne trouviez des personnes prêtent à travailler gratuitement, il y a une contrainte sur le nombre de développeurs basé sur le budget disponible. |
|
| |
|
| '''Contraintes''' - À moins que vous ne trouviez des personnes prêtent à travailler gratuitement, il y a une contrainte sur le nombre de développeurs basé sur le budget disponible.
| |
|
| |
|
| Constraints are ''not'' causal links. As cash supply goes up, it is not the case that the number of developers goes up.
| | Les contraintes ne sont ''pas'' des liens de causalité. Lorsque la montant du budget disponible augmente, ce n’est pas le cas du nombre de développeurs. |
|
| |
|
| Les contraintes ne sont ''pas'' des liens de causalité. Lorsque la montant du budget disponible augmente, ce n’est pas le cas du nombre de développeurs/
| | [[File:Xsystems-thinking-8-fr.png|border|848px|link=]] |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-8.png.pagespeed.ic.gbgAIK-IsZ.webp|frame|none|alt=|caption systems thinking-8.png]]
| |
|
| |
|
| [[File:Xsystems-thinking-8-fr.png|frameless|848px|5ème schéma]]
| | '''Buts et réactions''' : les personnes, les départements et les systèmes ont des buts, comme par exemple avoir une ''vélocité des features plus élevée''. Les buts occasionnent souvent de la pression pour que les gens réagissent (ou agissent) dans l’intention de leur faire atteindre ce but. Mais étant donné qu’il y a la ''causalité fallacieuse'' et la ''loi de Weinberg-Brooks'' à laquelle il faut faire face, les gens devraient être prudents quant aux actions pertinentes à entreprendre. Voici un exemple de diagramme modélisant cela : |
|
| |
|
| '''Goals and Reactions'''–People, departments, and systems have goals, such as ''higher feature velocity'' . Goals often generate pressure for people to react (or act), with the intent of achieving the goal. But since there is ''Causation Fallacy'' and ''Weinberg-Brooks’ Law'' to contend with, people should be cautious about assuming what actions will help. Now a goal and pressure for reaction is shown:
| | [[File:Xsystems-thinking-9-fr.png|border|848px|link=]] |
|
| |
|
| '''Buts et réactions''' - Les personnes, les départements et les systèmes ont des buts, comme par exemple avoir une ''vélocité des features plus élevée''. Les buts occasionnent souvent de la pression pour que les gens réagissent (ou agissent) dans l’intention de leur faire atteindre ce but. Mais étant donné qu’il y a la ''causalité fallacieuse'' et la ''loi de Weinberg-Brooks'' à laquelle il faut faire face, les gens devraient être prudents quant aux actions pertinentes à entreprendre. Voici un exemple de diagramme modélisant cela : | | Non seulement un but à atteindre avec une ''récompense'' au bout engendre une pression à agir, mais cela créé aussi une pression à ''faire semblant'' d’agir et à atteindre le but : les récompenses provoquent un '''dysfonctionnement des indicateurs'''. Le dysfonctionnement des indicateurs peut être proportionnel à la valeur perçue de la récompense parce que les personnes sont motivées pour avoir la récompense, non pour améliorer le système [http://www.amazon.fr/Measuring-Managing-Performance-Organizations-Dorset-ebook/dp/B00DY3KQX6/ [Austin96]]. Remarquez bien comment et de quelle manière les récompenses peuvent dégrader la performance du système. De manière visuelle, les dynamiques d’un tel système pourrait être... |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-9.png.pagespeed.ic.yVcHbh4_-i.webp|frame|none|alt=|caption systems thinking-9.png]] | | [[File:Xsystems-thinking-10-fr.png|border|848px|link=]] |
|
| |
|
| [[File:Xsystems-thinking-9-fr.png|frameless|848px|6ème schéma]]
| | Il est assez intéressant de voir que toutes ces dynamiques ont été ajoutées par l’introduction d’une récompense et qu’il n’y pas de connexion entre le haut et le bas de cette modélisation. |
|
| |
|
| Not only does a goal with a ''reward'' create pressure to act, but also it creates pressure to ''appear'' to be acting and achieving, due to the '''measurement dysfunction''' generated by rewards. And the measurement dysfunction can be proportional to the perceived value of the reward because people are being motivated to get a reward, not to improve the system [http://www.amazon.com/Measuring-Managing-Performance-Organizations-Dorset-ebook/dp/B00DY3KQX6/ref=sr_1_1?ie=UTF8&qid=1413596674&sr=8-1&keywords=measuring+and+managing+performance+in+organizations [Austin96]]. Notice how rewards can actually degrade system performance. Visually, the system dynamics may be…
| |
|
| |
| Non seulement un but à atteindre avec une ''récompense'' au bout engendre une pression à agir, mais cela créé aussi une pression à ''faire semblant'' d’agir et à atteindre le but — les récompenses provoquent un '''dysfonctionnement des indicateurs'''. Le dysfonctionnement des indicateurs peut être proportionnel à la valeur perçue de la récompense parce que les personnes sont motivées pour avoir la récompense, non pour améliorer le système [http://www.amazon.fr/Measuring-Managing-Performance-Organizations-Dorset-ebook/dp/B00DY3KQX6/ref=sr_1_1?ie=UTF8&qid=1413596674&sr=8-1&keywords=measuring+and+managing+performance+in+organizations [Austin96]]. Remarquez bien comment et de quelle manière les récompenses peuvent dégrader la performance du système. De manière visuelle, les dynamiques d’un tel système pourrait être …
| |
|
| |
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-10.png.pagespeed.ic.39CLFp-g_9.webp|frame|none|alt=|caption systems thinking-10.png]]
| |
|
| |
| [[File:Xsystems-thinking-10-fr.png|frameless|848px|7ème schéma]]
| |
|
| |
| It is quite interesting that all these dynamics have been added by introduction of reward, and yet there is no necessary connection between the top part of this model and the bottom.
| |
|
| |
| Il est assez intéressant de voir que toutes ces dynamiques ont été ajouté par l’introduction d’une récompense et qu’il n’y pas de connexion entre le haut et le bas de cette modélisation.
| |
|
| |
| There is no guarantee that feature velocity has improved—or even been worked on.
| |
|
| |
|
| Il n’y a aucune garantie que la vélocité des features s’améliore ou même que l’on y travaille. | | Il n’y a aucune garantie que la vélocité des features s’améliore ou même que l’on y travaille. |
|
| |
|
| Removing the reward system is a root-cause solution to the dysfunction. Another (lesser) surface countermeasure is the lean-thinking ''Go See'' (go see physically at the place of real work) principle and management behavior:
| |
|
| |
|
| Enlever le système de récompense est une solution à la cause racine de ce dysfonctionnement. Une autre contremesure de surface est le principe et le comportement managériale ''Aller voir'' (aller voir physiquement sur le lieu où le travail s’effectue) de l’approche lean. | | Enlever le système de récompense est une solution à la cause racine de ce dysfonctionnement. Une autre contremesure de surface est le principe et le comportement managériale ''Aller voir'' (aller voir physiquement sur le lieu où le travail s’effectue) de l’approche lean : |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-11.png.pagespeed.ic.NU8SjnJkUY.webp|frame|none|alt=|caption systems thinking-11.png]] | | [[File:Xsystems-thinking-11-fr.png|border|848px|link=]] |
|
| |
|
| [[File:Xsystems-thinking-11-fr.png|frameless|848px|8ème schéma]]
| | '''Solutions de contournement''' : une solution payante à long terme pour atteindre une vélocité plus grande, mais qui n’est pas sans difficulté, consiste à : recruter de développeurs très qualifiés, faire davantage d’accompagnements et de formations, et à se séparer des moins bons éléments. L’alternative est ce que l’on appelle une ''solution de contournement'', c’est ce que l’on met en place dans l’espoir d’atteindre l’objectif en moins de temps et avec moins d’effort. Parfois, une solution de contournement se révèle payante aussi bien sur le court terme que sur le long terme, renforçant par la-même le système. D’autres fois cela ne fonctionne pas... d’où l’expression "aller plus vite c’est aller plus lentement". Par exemple, les gens peuvent ''croire'' qu’augmenter le nombre de développeurs permet d’augmenter la vélocité des features. Et ils peuvent par conséquent être amenés à espérer qu’en recrutant davantage de développeurs cela permettra de résoudre plus vite et plus facilement le problème de vélocité. La mention 'SC' sur le diagramme ci-dessous indique une solution de contournement. |
|
| |
|
| '''Quick-fix reactions'''—One difficult and slow solution toward the goal of higher velocity is to hire great developers, to increase coaching and education of existing staff, and to remove terrible workers. The alternative is called a ''quick fix'' , a reaction that is hoped to achieve the goal quickly and with less effort. Sometimes a quick fix works well both in the short and long term, really strengthening the system. Sometimes not…hence, “faster is slower.” For example, people may ''believe'' that increasing the number of developers increases the feature velocity. And they may thereby hope that hiring more developers will most quickly and easily solve the velocity problem. ‘QF’ indicates the quick fix:
| | [[File:Xsystems-thinking-12-fr.png|border|848px|link=]] |
|
| |
|
| '''Solutions de contournement''' - Une solution payante à long terme pour atteindre une vélocité plus grande, qui n’est pas sans difficulté, consiste à : recruter de développeurs très qualifiés, faire davantage d’accompagnements et de formations, et à se séparer des moins bons éléments. L’alternative est ce que l’on appelle une ''solution de contournement'', c’est ce que l’on met en place dans l’espoir d’atteindre l’objectif en moins de temps et avec moins d’effort. Parfois, une solution de contournement se révèle payante aussi bien dans le court terme que dans le long terme, renforçant par la-même le système. D’autres fois cela ne fonctionne pas … d’où l’expression « aller plus vite c’est aller plus lentement ». Par exemple, les gens peuvent ''croire'' qu’augmenter le nombre de développeurs permet d’augmenter la vélocité des features. Et ils peuvent par conséquent être amenés à espérer qu’en recrutant davantage de développeurs cela permettra de résoudre plus vite et plus facilement le problème de vélocité. La mention ‘SC’ sur le diagramme ci-dessous indique une solution de contournement. | | '''Effets d’interaction''' : la capacité à embaucher est contraint à la capacité budgétaire. Une solution de longue haleine non sans difficulté est d’obtenir davantage de budget. Une solution de contournement possible est de recruter un ''grand'' nombre de développeurs bon marché. Dans ce cas, le niveau du budget a un ''effet d’interaction'' avec les autres boucles causales. Un budget peu élevé aura tendance à renforcer le taux de développeurs bon marché si la pression pour recruter augmente. |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-12.png.pagespeed.ic.x8IJWKprUx.webp|frame|none|alt=|caption systems thinking-12.png]]
| |
|
| |
|
| [[File:Xsystems-thinking-12-fr.png|frameless|848px|9ème schéma]]
| | Nous pourrions dessiner simplement un lien de causalité (opposé) de ''rentrée budgétaire'' à ''taux de recrutement de développeurs bon marché'', mais cela voudrait simplement dire qu’avoir un budget moindre aurait pour conséquence de recruter davantage de développeurs bon marché. Mais ce n’est pas tout à fait ce que nous voulons dire ; ce que voulons montrer en fait, c’est l’effet d’interaction, c’est-à-dire qu’un effet A influence un ''effet'' B. Cela se fait en montrant un lien de causalité heurtant un autre lien de causalité, par exemple en traçant une ligne de ''rentrée budgétaire'' vers la ligne représentant la solution de contournement qui va vers ''taux de recrutement de développeurs bon marché''. |
|
| |
|
| '''Interaction effects'''—There is the constraint of cash supply on hiring. One hard and slow solution is to get more cash. A quicker fix is to hire ''much'' cheaper developers. In this case, the level of cash supply now has an ''interaction effect'' with other causal links. Low cash tends to strengthen the hire rate of much cheaper developers when there is pressure to increase hire rates.
| | [[File:Xsystems-thinking-13-fr.png|border|848px|link=]] |
|
| |
|
| '''Effets d’interaction''' - La capacité à embaucher est contraint à la capacité budgétaire. Une solution de longue haleine non sans difficulté est d’obtenir davantage de budget. Une solution de contournement possible est de recruter un ''grand'' nombre de développeurs bon marché. Dans ce cas, le niveau du budget a un ''effet d’interaction'' avec les autres boucles causales. Un budget peu élevé aura tendance à renforcer le taux de développeurs bon marché si la pression pour recruter augmente. | | '''Effets extrêmes''' : il nous est arrivé de travailler avec d’excellents développeurs très bon marché et avec d’autres développeurs hors de prix et très nuls, mais en moyenne, vous obtenez à hauteur de ce que vous payez ; lorsque vous recrutez au moins disant, le niveau moyen en terme de compétences sera plus faible. Dans le diagramme ci-dessous, nous avons voulu montrer que l’impact du recrutement de personnes bon marché en rapport avec le ''nombre de développeurs peu qualifiés'' à un impact sensiblement plus grand que la moyenne. |
|
| |
|
| One could simply draw an (opposite) causal link directly from ''cash supply'' to ''hire rate of very cheap developers'' , but that merely says that less cash leads to more hiring of extremely cheap developers. That is not quite what we want to say; rather, we want to show the interaction effect—that effect A influences ''effect'' B. This is done by showing a causal link entering another causal link. For example, from ''cash supply'' to the quick-fix line going into ''hire rate of very cheap developers'' :
| |
|
| |
| Nous pourrions dessiner simplement un lien de causalité (opposé) de ''rentrée budgétaire'' à ''taux de recrutement de développeurs bon marché'', mais cela voudrait simplement dire qu’avoir un budget moindre aurait pour conséquence de recruter davantage de développeurs bon marché. Mais ce n’est pas tout à fait ce que nous voulons dire ; ce que voulons montrer en fait, c’est l’effet d’interaction - c’est-à-dire qu’un effet A influence un ''effet'' B. Cela se fait en montrant un lien de causalité heurtant un autre lien de causalité, par exemple en traçant une ligne de ''rentrée budgétaire'' vers la ligne représentant la solution de contournement qui va vers ''taux de recrutement de développeurs bon marché''.
| |
|
| |
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-13.png.pagespeed.ic.LvAE8ewRFJ.webp|frame|none|alt=|caption systems thinking-13.png]]
| |
|
| |
| [[File:Xsystems-thinking-13-fr.png|frameless|848px|10ème schéma]]
| |
|
| |
| '''Extreme effects'''—We have worked with some very inexpensive developers with excellent skill and some very expensive developers that are terrible, but on average, you get what you pay for—when you hire from a large pool of very cheap labor, the average skill level is lower. In the model we want to show that the impact of hiring very cheap labor on the ''number of low-skilled developers'' is a significantly greater effect than average.
| |
|
| |
| '''Effets extrêmes''' - Il nous est arrivé de travailler avec d’excellents développeurs très bon marché et avec d’autres hors de prix très nuls, mais en moyenne, vous obtenez à hauteur de ce que vous payez - lorsque vous recrutez au moins disant, le niveau moyen en terme de compétences sera plus faible. Dans le diagramme ci-dessous, nous avons voulu montrer que l’impact du recrutement de personnes bon marché en rapport avec le ''nombre de développeurs peu qualifiés'' à un impact sensiblement plus grand que la moyenne.
| |
|
| |
| To show an ''extreme effect'' in the model, use a thick line:
| |
|
| |
|
| Pour montrer un ''effet extrême'' sur un modèle, faites un trait épais comme vous pouvez voir ci-dessous : | | Pour montrer un ''effet extrême'' sur un modèle, faites un trait épais comme vous pouvez voir ci-dessous : |
|
| |
|
| [[File:https://less.works/img/systems-thinking/xsystems,P20thinking-14.png.pagespeed.ic.JYkqz8Qe24.webp|frame|none|alt=|caption systems thinking-14.png]]
| | [[File:Xsystems-thinking-14-fr.png|border|848px|link=]] |
| | |
| [[File:Xsystems-thinking-14-fr.png|frameless|848px|11ème schéma]] | |
|
| |
|
| '''Delays'''—One problem in hiring in software development is the ''fallacy of mild programmer variance'' —the mistaken belief that programmer variance (in terms of productivity, code quality, etc.) is relatively small. However, programmer variance studies suggest an average of four times faster in the top versus bottom quartile [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.4788 [Prechelt00]]. Rather significant. Also, the COCOMO model—based on large and longitudinal studies—shows that the capability of the development personnel is by far the most important factor for productivity [http://www.amazon.com/Software-Cost-Estimation-Cocomo-II/dp/0130266922/ref=sr_1_1?ie=UTF8&qid=1413597244&sr=8-1&keywords=Software+Cost+Estimation+with+Cocomo+II [Boehm00]]. And, on average, very weak programmers create poor-quality code (poor design) and more defects, creating another drag on the system.
| |
|
| |
|
| '''Retards''' Un problème courant au niveau du recrutement dans un projet de développement logiciel concerne ''l’erreur au niveau de la variance d’un développeur moyen'' - autrement dit la croyance fausse que la variance d’un développeur à un autre (en terme de productivité, de qualité de code, etc.) est relativement faible. Toutefois, les études de la variance au sujet des développeurs montrent un rapport de un à 4 entre le 1er quartile et le dernier [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.4788 [Prechelt00]]. C’est plutôt quelque chose de significatif. De même des études - en long et en large - du modèle COCOMO montrent que la capacité du développement personnel est le facteur de loin le plus important quant à la productivité [http://www.amazon.com/Software-Cost-Estimation-Cocomo-II/dp/0130266922/ref=sr_1_1?ie=UTF8&qid=1413597244&sr=8-1&keywords=Software+Cost+Estimation+with+Cocomo+II [Boehm00]]. Et, en moyenne, il s’avère que les développeurs peu qualifiés font du code de mauvaise qualité (mauvaise conception) et de plus d’anomalies, ceci rajoute un autre frein au système. | | '''Retards''' : un problème courant au niveau du recrutement dans un projet de développement logiciel concerne ''l’erreur au niveau de la variance d’un développeur moyen'' ; autrement dit la croyance fausse que la variance d’un développeur à un autre (en terme de productivité, de qualité de code, etc.) est relativement faible. Toutefois, les études de la variance au sujet des développeurs montrent un rapport de 1 à 4 entre le 1er quartile et le dernier [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.4788 [Prechelt00]]. C’est plutôt quelque chose de significatif. De même des études - en long et en large - du modèle COCOMO montrent que la capacité du développement personnel est le facteur de loin le plus important quant à la productivité [http://www.amazon.com/Software-Cost-Estimation-Cocomo-II/dp/0130266922/ref=sr_1_1?ie=UTF8&qid=1413597244&sr=8-1&keywords=Software+Cost+Estimation+with+Cocomo+II [Boehm00]]. Et, en moyenne, il s’avère que les développeurs peu qualifiés font du code de mauvaise qualité (mauvaise conception) et de plus d’anomalies, ceci rajoute un autre frein au système. |
|
| |
|
| But the impacts of these effects are not immediately obvious. For example, it takes a relatively long time after hiring a large pool of weak programmers before the impacts of more and more bad code/design start to be felt. Similarly, the average ''decrease'' in feature velocity (because of the powerful impact of programmer variance) will not show up immediately.
| |
|
| |
|
| Mais l’impact de ces effets ne sont pas visibles immédiatement. Par exemple, cela peut prendre un certain temps après un recrutement massif de développeurs peu qualifiés avant que les impacts négatifs ne se fassent sentir au niveau de la qualité du code ou de la conception. De manière similaire, la ''baisse'' moyenne de la vélocité des features (en raison de l’impact important de la variance des développeurs évoqué plus haut) ne se verra pas immédiatement. | | Mais l’impact de ces effets ne sont pas visibles immédiatement. Par exemple, cela peut prendre un certain temps après un recrutement massif de développeurs peu qualifiés avant que les impacts négatifs ne se fassent sentir au niveau de la qualité du code ou de la conception. De manière similaire, la ''baisse'' moyenne de la vélocité des features (en raison de l’impact important de la variance des développeurs évoqué plus haut) ne se verra pas immédiatement. |
|
| |
|
| To show these ''delayed effects'' in the model, use a double-line through the effect line:
| |
|
| |
|
| Pour montrer ces ''effets à retardement'' dans le modèle, faites une double-ligne en travers de la ligne d’effet. | | Pour montrer ces ''effets à retardement'' dans le modèle, faites une double-ligne en travers de la ligne d’effet. |