Outils pour utilisateurs

Outils du site


wiki:resumes-de-livres:proprement-codeur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
wiki:resumes-de-livres:proprement-codeur [2023/02/21 22:11] – [Chapitre 8 : stratégie de test] alyvewiki:resumes-de-livres:proprement-codeur [2023/02/26 14:18] (Version actuelle) – [Chapitre 9 : gestion du temps] alyve
Ligne 1: Ligne 1:
 ====== Résumé de « Proprement codeur : code de conduite pour développeurs professionnels » ====== ====== Résumé de « Proprement codeur : code de conduite pour développeurs professionnels » ======
  
 +Un ami et ancien collègue m’a offert ce livre pour Noël (livre qu’il s’est lui-même acheté). J’ai eu l’idée de faire se résumé pendant la lecture car je pense réellement que les conseils présents en valent le coup. L’ISBN du livre est 978-2-3260-0289-0 si vous souhaitez vous le procurer. Si vous bossez dans l’IT ou même si vous êtes étudiant·e·s en IT, n’hésitez pas à le demander à votre CTO ou dans la bibliothèque de votre établissement.
 +
 +=> Avoir une bibliothèque fournie de livres de ce genre permettra aux équipes d’être encore meilleures. 
 ===== Chapitre 1 : professionnalisme ===== ===== Chapitre 1 : professionnalisme =====
  
Ligne 209: Ligne 212:
 On risque de déployer inutilement des efforts inutiles en recherchant la précision maximale lors de nos estimations. Les exigences évoluent inévitablement, ce qui rend la précision inutile.  On risque de déployer inutilement des efforts inutiles en recherchant la précision maximale lors de nos estimations. Les exigences évoluent inévitablement, ce qui rend la précision inutile. 
  
-Pour combler ce risque, nous pouvons donner une plage d’incertitude de telle manière que læ client·e en soit informé. (voir chapitre 10)+Pour combler ce risque, nous pouvons donner une plage d’incertitude de telle manière que læ client·e en soit informé. (voir chapitre 10) FIXME
  
 ==== Ambiguïté tardive ==== ==== Ambiguïté tardive ====
Ligne 315: Ligne 318:
  
 ==== Pyramide de l’automatisation des tests ==== ==== Pyramide de l’automatisation des tests ====
 +
 +{{ :wiki:resumes-de-livres:agile-test-pyramid.png?nolink&400 |}}
  
 === Tests unitaires === === Tests unitaires ===
Ligne 353: Ligne 358:
  
 Les test doivent être exécutés le plus souvent possible. Les test doivent être exécutés le plus souvent possible.
-===== Chapitre 9 : gestion du temps =====+Vous ===== Chapitre 9 : gestion du temps ===== 
 + 
 +==== Réunions ==== 
 + 
 +Les deux vérités à toute réunion : 
 + 
 +  * Elles sont nécessaires 
 +  * Elles constituent un énorme gaspillage de temps 
 + 
 +On peut évaluer à 200 € la participation de chaque personne à chaque réunion par heure. Il ne faut donc jamais perdre de vue le prix pour une réunion et que **notre temps est précieux**. 
 + 
 +==== Décliner l’invitation ==== 
 + 
 +Rien ne nous oblige à participer à toutes les réunions auxquelles nous sommes invités. Il s’agirait d’un manque de professionnalisme de toutes les accepter. Avant d’accepter, il vaut mieux se demander quelles seront les éventuelles retombées positives. 
 + 
 +Certaines réunions sont intéressantes sans que notre présence y apporte une plus-value, peut-être qu'elles sont juste intéressantes. On doit alors décider nous même si cela en vaut le coup. On peut même demander à notre supérieur ou collègues. 
 + 
 +D’ailleurs, le supérieur doit prendre soin de nous éviter des réunions autant que faire se peut et doit se tenir prêt à nous soutenir lorsque nous déclinons une invitation car il a tout autant d’intérêt que nous à préserver notre temps, et donc à ce que notre travail soit fait. 
 + 
 +==== Écourter sa présence ==== 
 + 
 +Les réunions où notre présence est devenue inutile, on connaît. Il faut trouver un moyen d’écourter notre présence poliment dès que nous considérons qu’il s’agit d’une perte de temps. Attendons le moment opportun pour demander si notre présence est toujours nécessaire tout en précisant que vous n’avez plus de temps disponible.  
 + 
 +==== Avoir un ordre du jour et un objectif ==== 
 + 
 +Pour utiliser le temps de chacun·e efficacement, l’ordre du jour doit être clair, l’objectif prédéfini et la durée de chaque sujet précisée. Lorsque nous sommes invité·e·s à une réunion, nous devons vérifier que nous connaissons l’ordre du jour. Il faut décliner l’invitation poliment si nous n’obtenons pas un e réponse claire à ces questions. 
 + 
 +Si la réunion digresse, on peut demander à ce que le sujet en cours y soit ajouté. Si vous êtes insatisfait·e·s, abrégez votre présence dès que possible avec courtoisie. 
 + 
 +=== Les réunions debout (stand-up) ==== 
 + 
 +Réunions quotidiennes, il s’agit de répondre à ces trois questions : 
 + 
 +  * Qu’est ce que j’ai fait hier ? 
 +  * Qu’est ce que je compte faire aujourd'hui ? 
 +  * Quels sont les points bloquants auxquels je suis confronté·e ? 
 + 
 +Et **rien d'autre**. Chaque réponse ne doit pas prendre plus de 20 secondes. Dans une réunion de 10 personnes, elle doit être bouclée en 10 minutes. 
 + 
 +==== Les réunions de planification d’itération (sprint planning) ==== 
 + 
 +Elles servent à sélectionner les tâches en puisant dans les tâches à réaliser (//backlog//). Chaque tâche doit préalablement faire l’objet d’une estimation FIXME. 
 + 
 +Les tests de composants et d’acceptation ont été au moins ébauchés, au mieux rédigés. 
 + 
 +Au cours de la réunion, chaque tâche est **décrite**, puis **sélectionnée** ou **refusée**. Le temps passé sur chaque tâche lors de cette réunion **ne doit pas dépasser 10 minutes**. Si une discussion plus détaillée est nécessaire, cette discussion doit être programmée à un autre moment avec seulement les membres de l’équipe concernée. 
 + 
 +De manière générale, la réunion ne doit pas consommer plus de 5% de la durée de l’itération. Pour un sprint de deux semaines, la réunion ne doit donc pas excéder 2 heures. 
 + 
 +==== La rétrospective d’itération et la démonstration (sprint review) ==== 
 + 
 +Il s’agit de décrire ce qui s’est bien passé et ce qui s’est moins bien passé. Vu que ce genre de réunion peut s’éterniser, l’astuce consiste à la mettre 45 minutes avant la fin du dernier jour de l’itération. 20 minutes au maximum pour la rétrospective et 25 minutes pour la démonstration. 
 + 
 +=> Attention, l’objectif est d’améliorer notre manière de travailler, la personne qui mène le sprint review **doit** remonter les informations négatives et les prendre en considération pour les prochaines itérations. Sinon, cette réunion ne sert à rien. 
 + 
 +=== Disputes et désaccords ==== 
 + 
 +=> « Tout désaccord qui ne peut pas être réglé en cinq minutes ne le sera pas davantage en se disputant » Kent Beck 
 + 
 +Les désaccords techniques peuvent facilement devenir déraisonnable. Elles sont rarement fondées sur les données. 
 + 
 +Seule solution : **s’appuyer sur des données**. 
 + 
 +Faire part de condescendance ou se montrer intimidant ne fait qu’estomper le désaccord qui refera surface à la première occasion. 
 + 
 +Certaines personnes sont passif·ve·s-agressif·ve·s (« Puisque c’est ce qu’iel veut, on va voir ce qu’on va voir »), **on ne doit jamais se l’autoriser**. Lorsque nous donnons notre accord, **nous nous engageons**. 
 + 
 +Si le choix que nous avons choisi n’est pas correct, on peut toujours revenir en arrière et choisir l’autre voie. 
 + 
 +Nous devons également nous méfier des réunions qui ne servent qu’à accroître un désaccord. **Ne pas participer aux réunions où une seule des deux parties est présente.** 
 + 
 +Lorsqu’il faut régler un désaccord immédiatement, demandez à chauqe partie de justifier son choix auprès de l’équipe en moins de 5 minutes puis demandez au reste de l’équipe de voter. L’ensemble ne devrait pas durer plus d’¼ heure. 
 + 
 +==== Mana et énergie de concentration ==== 
 + 
 +Le mana consiste à notre réserve de concentration. 
 + 
 +Lorsque nous avons épuisé notre stock de mana, nous sommes forcé·e·s de la rcehercher en passant au moins une heure à des activités qui ne requièrent pas de concentration. 
 + 
 +=> Nous devons gérer notre temps de sorte à bien exploiter notre capital de mana. 
 + 
 +Selon notre personnalité, certaines activités peuvent vite réduire le stock disponible. Pour ma part, la pause de midi dans un environnement bruyant est juste catastrophique et je dois m’isoler un peu après. 
 + 
 +=== Sommeil === 
 + 
 +Dormir permet de reconstituer notre réserve. Nous devons gérer notre temps de sommeil pour disposer d’un capital de concentration au maximum le lendemain. 
 + 
 +=== Caféine === 
 + 
 +Certain·e·s d’entre nous buvons une quantité énorme de café. Elle peut cependant avoir un effet déstabilisateur, lorsque nous buvons trop de café, on peut se concentrer mieux mais sur de mauvais sujets. 
 + 
 +=== Recharge de mana === 
 + 
 +Pour recharger le mana, certaines personnes méditent, d’autres font une microsieste.Certain·e·s lisent un peu, d’autres progressent dans leur audiobook. Si nous nous forçons à continuer alors que notre réserve est vide, on peut se retrouver à faire n’importe quoi et devoir y revenir plus tard. Mieux vaut se relaxer trente minutes ou une heure. 
 + 
 +=== Concentration physique === 
 + 
 +Les activités comme le tai-hi ou le yoga se basent sur un econcentration physique, différente de celle que nous utilisons pour coder. 
 +Une concentration physique nous permet de recharger la concentration mentale.  
 + 
 +=> Une bonne activité musculaire régulière augmente le plafond des capacités mentales. 
 + 
 +Certaines personnes choisissent une activité manuelle comme la menuiserie, maquettisme ou jardinage. Quelle que soit l’activité, faire travailler ses muscles favoris ela remise en forme des muscles intellectuels. 
 + 
 +=== Inspiration et expiration créative === 
 + 
 +L’auteur du livre a constaté que s’exposer à la créativité d’autrui lui a permis d’être plus créatif. 
 + 
 +==== Blocs de temps et chronotomates ==== 
 + 
 +Une des techniques qui gérer simultanément notre temps et notre concentration est //Pomodoro//
 + 
 +  * Se concentrer sur une tâche 25 minutes 
 +  * Faire 5 minutes de pause entre chaque tranche en répondant aux différentes sollicitations pendant la dernière tomate. 
 +  * Après 4 tomates, faire une pause d’½ heure. 
 + 
 +Si nous recevons, par exemple, un appel, refuser poliment et préciser que nous serons disponibles dans moins de 25 minutes. Il n'y a pas beaucoup d’interruption si urgente qu’elles ne puissent pas attendre une demi-heure. 
 + 
 +Les périodes tomates sont dédiées à la concentration, les périodes non-tomates correspondent aux réunions, pauses et distraction de toute autre non liées à nos tâches. 
 + 
 +On peut également s’amuser nos tomates quotidiennes et à faire un résultat en diagramme. On peut ainsi évaluer notre temps passé à gérer des activités complémentaires. 
 +Certaines personnes aiment tellement cette technique qu’elles estiment leur temps en tomate pour mesurer leur vélocité. 
 + 
 +=== Application de pomodoro === 
 + 
 +Beaucoup d’outils permettent de travailler avec la méthode pomodoro, des sites web, des outils sur votre système, etc. Pour ma part, j’aime beaucoup l’application Forest sur [[https://play.google.com/store/apps/details?id=cc.forestapp&hl=fr&gl=US&pli=1|android]] et [[https://apps.apple.com/us/app/forest-focus-for-productivity/id866450515|iOS]]. 
 + 
 +==== Stratégie d’évitement ==== 
 + 
 +Parfois, nous n’avons pas le cœur à l’ouvrage, ce qu’on doit faire est ennuyeux, que ça va engendrer un conflit ou mener dans une impasse. 
 + 
 +=== Inversion des priorités === 
 + 
 +Il s’agit de chercher activement comment éviter de faire notre travail. Cette inversion de priorités est un mensonge à nous-même. On réussit alors à se convaincre que des tâches plus importantes sont en attente. 
 + 
 +Mais en plus de se mentir à nous-même, on ment également à la personne qui va nous demander où nous en sommes. On construit un mur de défense pour nous protéger du jugement des autres.  
 + 
 +=== Impasses et marche arrière === 
 + 
 +Parfois, on peut se retrouver dans une impasse. Plus nous persistons dans cette voie, plus longtemps nous allons y errer. 
 +Il faut savoir détecter le plus tôt possible cette situation et avoir le courage de faire marche arrière. C’est la //règle du fond du trou//: **quand nous touchons le fond, arrêtons de creuser**. 
 + 
 +Il faut garder un esprit ouvert aux idées des autres afin de rectifier le tir. 
 + 
 +==== Marécages, bourbiers et autres bazars ==== 
 + 
 +Pire que les impasses ; les bourbiers ! Car on arrive toujours à distinguer la sortie à l’horizon et celle-ci nous semble toujours plus proche qu’elle ne l’est en réalité. 
 +Rien n’a d’effet plus négatif sur la productivité qu'un projet logiciel en marécages. 
 + 
 +La prudence et l’expérience nous permettrons certains bourbiers, mais on peut toujours prendre une décision qui vous nous à mener tout droit. //Comme moi quand je vais tout droit en hurlant et courant dès que je mets le pied dans un marécage// :-D 
 + 
 +L’entrée en zone marécageuse se fait insidieusement, on prend une décision pour l’éviter et en réalité nous allons croître l’étendue et la complexité de celle-ci. On constate alors qu’on a pris une mauvaise décision de conception dès le départ. 
 + 
 +Il s’agit là **d'un point critique**. Revenir en arrière pour corriger la conception, ça peut sembler coûteux car il demande de revoir du code existant mais cette reprise en main ne se jamais aussi facile que maintenant. Si on persiste dans les marécages, on ne pourra peut-être jamais s’y extirper. 
 + 
 +Il est important de rester à l'affût de se genre de terrain néfaste et de **déployer tous les efforts nécessaires pour s’y arracher au plus tôt**. 
 + 
 +Quand on sait qu’on est rentré·e dans un bourbier, vouloir progresser est **la pire des décisions possibles**. On se dirige tout droit vers un enfer, nous mais aussi les autres personnes qui seront sur le projet. 
 + 
 +==== Conclusion ==== 
 + 
 +Il faut:
  
 +  * Prendre soin de **gérer son temps et sa concentration**.
 +  * **Rester ouvert·e·s  et à l’écoute** des solutions de rechanges.
 +  * **Ne jamais s’engager dans une solution au point de ne pas pouvoir revenir en arrière**.
 +  * Surveiller l’apparition de marécages et **s’en extirper dès que possible**.
 ===== Chapitre 10 : estimations ===== ===== Chapitre 10 : estimations =====
  
wiki/resumes-de-livres/proprement-codeur.1677017462.txt.gz · Dernière modification : 2023/02/21 22:11 de alyve