Article original : How to make peace with deadlines in software development
Par Huseyin Polat Yuruk
D É L A I
En tant que développeur, c'est l'un de vos plus grands cauchemars ou devrais-je dire votre ennemi ? Appelez-le comme vous voulez.
Avouez-le. Cela vous fait très peur. Même maintenant, alors que vous lisez ces phrases, cela vous fait dresser les cheveux sur la tête.
Vous vous demandez comment je le sais ?
Je le sais parce que j'ai ressenti la même chose. Mais maintenant, la peur est dans le passé. J'ai fait la paix avec les délais. Je les ai acceptés.
Je vous suggère donc de faire de même. Acceptez-les, faites la paix avec eux. C'est la seule façon de les vaincre.
D'accord, mais comment pouvez-vous faire cela ?
Il y a certains faits que nous avons tendance à ignorer lorsqu'il s'agit de fixer un délai. Mon objectif ici est de vous les montrer afin que vous puissiez voir qu'il faut si peu de choses pour enterrer la peur et commencer à profiter de la vie tout en travaillant sur votre projet sans vous soucier des dates.
Travailler dans un environnement calme
_[https://imgur.com/gallery/cBSSh4h](https://imgur.com/gallery/cBSSh4h" rel="noopener" target="blank" title=")
Ne vous précipitez pas. Ne forcez rien.
La première chose à savoir est que vous ne pouvez pas trouver votre paix en fixant des dates irréalistes et en forçant votre équipe à travailler dans la précipitation. Il y a des entreprises qui lancent de grands mots et montrent des choses irréalistes pour motiver leur équipe à avancer. Mais alors que certains faits sont évidents pour tout le monde dans l'équipe, comment pouvez-vous vous attendre à ce qu'ils croient en ce que vous dites si cela est loin de la réalité ?
Sans une date limite fixe — et surtout crédible — vous ne pouvez pas travailler calmement. Oui, garder son calme est la clé ici. Lorsque vous ne faites pas confiance à la date, ou lorsque quelqu'un vous dit de tout faire dans un laps de temps limité, ou lorsque quelqu'un ajoute plus de tâches au projet sans vous donner plus de temps, vous commencez à travailler de manière frénétique. Ce n'est plus du travail. C'est l'enfer.
Lorsque vous êtes sous stress et sous pression, vous ne pouvez pas être productif. Lorsque vous êtes calme, vous êtes aussi conscient, ce qui signifie que vous pouvez prendre de meilleures décisions.
Nos estimations sont mauvaises
_[https://simonschreibt.de/gat/renderhell-book3/](https://simonschreibt.de/gat/renderhell-book3/" rel="noopener" target="blank" title=")
Les utilisateurs de Windows se souviendront de cette fenêtre de dialogue. L'estimation dans la boîte de dialogue est exactement comme nos estimations, n'est-ce pas ?
Admettons-le. Nos estimations sont mauvaises. Nous pensons pouvoir deviner combien de temps quelque chose prendra. Nous avons tendance à croire que tout ce que nous devinons se réalisera.
Cependant, généralement, lorsque nous devinons, nous ignorons certains facteurs importants qui peuvent affecter nos hypothèses. Pourquoi ? Parce que nous sommes trop optimistes.
Pour moi, la première étape pour faire la paix avec les délais et devenir meilleur dans leur fixation est d'admettre que nous sommes de mauvais estimateurs. Lorsque vous acceptez ce fait, vous serez conscient la prochaine fois et cela vous empêchera de sous-estimer les exigences. Et voici une solution pour vous aider à mieux estimer :
Divisez les grandes choses en plus petites choses. Plus c'est petit, plus c'est facile à estimer. Cela augmentera vos chances d'avoir des estimations plus précises.
Assez bien, c'est bien
"Parfait est l'ennemi du bien." — Voltaire
Les gens aiment les grands défis. Nous excellons à trouver une solution compliquée pour un problème simple. Mais voici un fait :
Chaque problème a sa propre solution simple que vous ignorez probablement.
Ne cherchez pas une solution parfaite. Votre première version n'a pas besoin d'être parfaite. Construisez un produit à moitié fonctionnel. Si vous attendez trop, vous gaspillerez vos ressources limitées et votre temps précieux, ou vous manquerez la date limite et, pire encore, vous ne ferez rien du tout parce que vous cherchez la perfection. La solution est :
Trouvez la solution qui vous apportera beaucoup de valeur et qui nécessite peu d'efforts. Et n'oubliez pas, ce qui est bien peut être transformé en excellent plus tard.
Ne soyez pas trop optimiste. Soyez réaliste.
Je vois des managers qui sont trop optimistes, ce qui les amène à fixer des délais optimistes pour motiver l'équipe. C'est faux. Je ne vous dis pas que vous devriez être pessimiste quant à l'avenir. Au contraire, je vous dis que vous devriez être capable de voir chaque possibilité qui peut créer un goulot d'étranglement. Une fois que vous pouvez les voir, vous pouvez les prendre en compte et avoir une estimation plus précise.
Il y a différentes équipes dans l'entreprise. Ingénierie, développement commercial, marketing, etc. Lorsque l'équipe de développement commercial vous force à leur donner une date limite dans un avenir très proche, vous ne devriez pas être affecté par eux. Ils veulent que leur travail soit fait le plus rapidement possible.
Rappelez-vous que chaque équipe pense à son propre côté.
Différenciez entre "vous devez faire", "vous pourriez faire" et "vous voulez faire"
La compréhension est la clé ici. Quelles sont les exigences principales pour lancer votre produit ? Habituellement, l'équipe produit a du mal à les différencier.
Lorsque vous avez une réunion, l'un des membres de l'équipe dira : "nous pourrions l'implémenter, cela nous apportera autant de valeur" ou un autre dira : "Nous devrions mettre cela dans la version." Ils regardent de leur propre perspective. D'accord, nous pouvons implémenter cela et cela peut nous apporter une certaine valeur, mais la question importante est : "en avons-nous besoin maintenant ? Dans la première version ?"
La réponse est NON dans la plupart des cas.
Les choses que vous devez faire sont celles sur lesquelles vous devriez vous concentrer. Éliminez les choses que vous pourriez faire et que vous voulez faire. Elles ne sont même pas négociables dans la plupart des cas.
Dites non par défaut
Il y a un fait important que nous oublions généralement lorsque nous disons "Oui" à quelque chose. Nous disons non aux choses que nous devons déjà compléter.
Lorsque vous dites oui à quelque chose de nouveau, vous ne pensez pas à l'impact que cela aura sur vos tâches existantes.
_Ajoutons plus de tâches au projet après avoir fixé la date limite. (Votre projet devrait devenir plus petit avec le temps, pas plus grand.) NON.
_Nous nous sommes concentrés sur ce qui compte, d'accord. Mais qu'en est-il des détails ? Considérons quels types de détails nous avons qui peuvent causer des problèmes à l'avenir. NON. Ignorez chaque détail pour la première version. N'essayez pas de prédire l'avenir.
Trouver plus de temps pour les choses n'est pas le problème ici. Trop de choses à faire est le problème. Différenciez entre les "must-haves" et les "nice-to-haves".
La seule façon de faire plus est d'avoir moins à faire.
Ne changez jamais la date limite
Je vois des équipes de développement avec une mauvaise habitude qui peut affecter gravement leur développement de produit : le report des délais.
Lorsque ils manquent la date limite, ils en fixent une nouvelle. S'ils ne peuvent pas respecter celle-ci, ils en fixent une autre. Lorsqu'ils font cela à plusieurs reprises, cela devient une habitude. Ensuite, cette mauvaise habitude se transforme en leur culture. Les autres équipes de l'entreprise perdent confiance et remettent en question le travail des développeurs. Pire encore, l'équipe de développement elle-même peut perdre confiance en elle-même. En eux-mêmes aussi.
Changer la date limite est essentiellement un aveu d'échec. C'est faire des déclarations comme : "Nous avons échoué à planifier les exigences, nous n'avons pas dit non assez, nous ne nous sommes pas concentrés sur ce qui compte, nous avons poussé nos équipes à faire des choses déraisonnables dans un temps déraisonnable."
Soyez conscient qu'il y aura toujours des problèmes
Être trop optimiste vous amène à ignorer le fait qu'il peut y avoir des problèmes. Soyez conscient. Probablement, quelque chose va mal se passer. Et cela vous fera perdre du temps à corriger les choses. Mieux vaut donc être préparé aux mauvais scénarios. Je ne dis pas que vous devriez être pessimiste et que vous devriez essayer de prédire l'avenir et vous préparer, vous et votre équipe, à l'inconnu. Trouvez simplement un équilibre entre optimisme et pessimisme. Soyez réaliste.
Mon expérience m'a montré que, dans le développement logiciel, certaines choses tournent toujours mal. Mon conseil pour vous est :
Ajoutez du temps à votre délai avant de le fixer en tenant compte du fait que quelque chose peut mal se passer.
N'ajoutez pas plus de personnes à un projet
Beaucoup de gens pensent qu'ils peuvent accélérer le processus s'ils ajoutent plus de personnes au projet. Cependant, ils manquent un point très important. Souvenons-nous de la loi de Brooks :
Ajouter des ressources humaines à un projet logiciel en retard le retarde davantage. — Freed Brooks
Selon Brooks sur Wikipedia, il y a une personne supplémentaire qui, lorsqu'elle est ajoutée à un projet, le fait prendre plus de temps, et non moins. Alors pourquoi cela fonctionne-t-il ainsi ?
- Il faut un certain temps pour que les personnes ajoutées à un projet deviennent productives. Vous devrez d'abord les former. Vous avez déjà des ressources humaines limitées et vous devrez consacrer ces ressources à former le nouveau membre. De plus, comme ils sont nouveaux, ils introduiront de nouveaux bugs qui éloignent le projet de son achèvement.
- Les frais de communication augmentent à mesure que le nombre de personnes augmente.
- Ajouter plus de personnes à une tâche hautement divisible, comme le nettoyage des chambres dans un hôtel, diminue la durée totale de la tâche. Cependant, d'autres tâches incluant de nombreuses spécialités dans les projets logiciels sont moins divisibles. Un autre excellent exemple de cela par Brooks est : alors qu'il faut à une femme neuf mois pour faire un bébé, "neuf femmes ne peuvent pas faire un bébé en un mois".
Une autre preuve de Richard Dalton pour comprendre pourquoi ajouter plus de personnes est une erreur est :
"Les équipes sont immuables. Chaque fois que quelqu'un part ou rejoint, vous avez une nouvelle équipe, pas une équipe changée." — Richard Dalton
Ne procrastinez pas
Permettez-moi de vous aider à comprendre ce que je veux dire. La semaine dernière, nous avons eu une réunion sur la définition de la date limite pour une nouvelle fonctionnalité de notre produit. Nous parlions des tâches qui sont nos priorités et de la manière dont nous devrions les implémenter de manière efficace.
Il y avait une tâche sur laquelle nous avions fortement gaspillé notre temps. Il y avait trois façons d'implémenter cette tâche, mais d'une manière ou d'une autre, nous étions bloqués. Nous ne pouvions pas choisir parce que les développeurs essayaient de prédire l'avenir. Ils commençaient chaque phrase par "Et si".
Vous ne pouvez pas prédire ce que l'avenir vous réserve. Ne vous surpréparez pas pour l'inconnu.
Je ne parle pas ici des grandes décisions techniques. Bien sûr, si vous devez décider de votre technologie principale, vous devriez y réfléchir pour trouver la bonne solution. Mais ne passez pas votre temps sur des petites choses. Les choses incertaines augmentent les réunions et bloquent votre progression parce que votre processus backend travaille continuellement sur elles.
Ne procrastinez pas, décidez et avancez.
Changez votre mentalité de "Réfléchissons à cela" à "Décidons maintenant". Les décisions accéléreront votre progression. Lorsque quelque chose est décidé, cela sera clair pour tout le monde dans l'équipe. Tout le monde saura exactement quoi faire.
Communiquez : Voyez où est le goulot d'étranglement ?
Vous avez tout planifié. Vous avez défini sur quoi vous concentrer et quoi faire. Vous savez exactement combien de temps cela prendra (probablement vous aurez tort). Donc, la date limite a été fixée. Est-ce suffisant ?
NON.
Comme je l'ai mentionné ci-dessus, il y a toujours une possibilité que quelque chose puisse mal se passer. Alors que les membres de votre équipe travaillent sur leurs tâches, quelque chose peut les bloquer. Quelque chose peut les empêcher de terminer leurs tâches à temps. Vous devez voir où est le goulot d'étranglement et ce que c'est.
La communication est la clé ici. Vous devez garder les équipes synchronisées. Parfois, les membres de l'équipe peuvent entrer dans une boîte et il peut être très difficile pour eux de voir ce qui se passe en dehors. C'est là que vous devez entrer en scène. Une fois que vous avez identifié le goulot d'étranglement, supprimez-le afin que les membres de votre équipe puissent continuer là où ils étaient bloqués.
Je vous souhaite bonne chance pour respecter toutes vos dates limites :)
Merci d'avoir lu.
Publié à l'origine sur https://huseyinpolatyuruk.com.