Infrastructure as Code : comment surmonter les problĂšmes avec XP

Bonjour Habr! Auparavant, je me plaignais de la vie dans le paradigme de l'infrastructure en tant que code et je n'avais rien proposĂ© pour rĂ©soudre la situation actuelle. Aujourd’hui, je suis de retour pour vous expliquer quelles approches et pratiques vous aideront Ă  sortir de l’abĂźme du dĂ©sespoir et Ă  orienter la situation dans la bonne direction.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

Dans un article prĂ©cĂ©dent "Infrastructure as code : premiĂšre connaissance" J'ai partagĂ© mes impressions sur ce domaine, essayĂ© de rĂ©flĂ©chir Ă  la situation actuelle dans ce domaine et j'ai mĂȘme suggĂ©rĂ© que des pratiques standards connues de tous les dĂ©veloppeurs pourraient aider. Il peut sembler qu'il y a eu beaucoup de plaintes concernant la vie, mais il n'y a eu aucune proposition pour sortir de la situation actuelle.

Qui nous sommes, oĂč nous sommes et quels problĂšmes nous avons

Nous faisons actuellement partie de l'équipe Sre Onboarding, composée de six programmeurs et de trois ingénieurs en infrastructure. Nous essayons tous d'écrire l'Infrastructure as Code (IaC). Nous faisons cela parce que nous savons fondamentalement comment écrire du code et que nous sommes des développeurs « au-dessus de la moyenne ».

  • Nous avons un ensemble d'avantages : un certain bagage, une connaissance des pratiques, la capacitĂ© d'Ă©crire du code, une envie d'apprendre de nouvelles choses.
  • Et il y a une partie qui s'affaisse, qui est aussi un inconvĂ©nient : le manque de connaissances sur le matĂ©riel d'infrastructure.

La pile technologique que nous utilisons dans notre IaC.

  • Terraform pour crĂ©er des ressources.
  • Packer pour assembler des images. Ce sont des images Windows, CentOS 7.
  • Jsonnet pour crĂ©er un build puissant dans drone.io, ainsi que pour gĂ©nĂ©rer le packer json et nos modules terraform.
  • D'azur.
  • Ansible lors de la prĂ©paration des images.
  • Python pour les services auxiliaires et les scripts de provisionnement.
  • Et tout cela en VSCode avec des plugins partagĂ©s entre les membres de l'Ă©quipe.

Conclusion de mon dernier article Ă©tait comme ceci : j'ai essayĂ© d'inculquer (d'abord en moi-mĂȘme) l'optimisme, je voulais dire que nous allons essayer les approches et les pratiques que nous connaissons afin de faire face aux difficultĂ©s et complexitĂ©s qui existent dans ce domaine.

Nous sommes actuellement aux prises avec les problĂšmes IaC suivants :

  • Imperfection des outils et moyens de dĂ©veloppement de code.
  • DĂ©ploiement lent. L'infrastructure fait partie du monde rĂ©el et elle peut ĂȘtre lente.
  • Manque d’approches et de pratiques.
  • Nous sommes nouveaux et ne savons pas grand chose.

Extreme Programming (XP) Ă  la rescousse

Tous les dĂ©veloppeurs connaissent Extreme Programming (XP) et les pratiques qui la sous-tendent. Beaucoup d’entre nous ont travaillĂ© avec cette approche, et cela a Ă©tĂ© couronnĂ© de succĂšs. Alors pourquoi ne pas utiliser les principes et les pratiques qui y sont Ă©noncĂ©s pour surmonter les dĂ©fis liĂ©s aux infrastructures ? Nous avons dĂ©cidĂ© d'adopter cette approche et de voir ce qui se passe.

VĂ©rifier l'applicabilitĂ© de l'approche XP Ă  votre secteur d'activitĂ©Voici une description de l'environnement pour lequel XP est bien adaptĂ© et de ses relations avec nous :

1. Exigences logicielles changeantes de maniĂšre dynamique. Il Ă©tait clair pour nous quel Ă©tait l’objectif final. Mais les dĂ©tails peuvent varier. Nous dĂ©cidons nous-mĂȘmes oĂč nous devons rouler, donc les exigences changent pĂ©riodiquement (principalement par nous-mĂȘmes). Si nous prenons l'Ă©quipe SRE, qui effectue elle-mĂȘme l'automatisation, et limite elle-mĂȘme les exigences et la portĂ©e du travail, alors ce point correspond bien.

2. Risques causés par les projets à durée déterminée utilisant les nouvelles technologies. Nous pouvons rencontrer des risques lors de l'utilisation de choses qui nous sont inconnues. Et c'est 100% notre cas. L'ensemble de notre projet reposait sur l'utilisation de technologies que nous ne connaissions pas entiÚrement. En général, c'est un problÚme constant, car... De nombreuses nouvelles technologies émergent constamment dans le secteur des infrastructures.

3,4. Petite Ă©quipe de dĂ©veloppement Ă©tendue colocalisĂ©e. La technologie automatisĂ©e que vous utilisez permet d'effectuer des tests unitaires et fonctionnels. Ces deux points ne nous conviennent pas tout Ă  fait. PremiĂšrement, nous ne sommes pas une Ă©quipe coordonnĂ©e, et deuxiĂšmement, nous sommes neuf, ce qui peut ĂȘtre considĂ©rĂ© comme une grande Ă©quipe. Bien que, selon certaines dĂ©finitions d'une « grande » Ă©quipe, un lot compte plus de 14 personnes.

Examinons quelques pratiques XP et comment elles affectent la vitesse et la qualité des commentaires.

Principe de la boucle de rétroaction XP

À mon sens, le feedback est la rĂ©ponse Ă  la question : est-ce que je fais la bonne chose, y allons-nous ? XP a un plan divin pour cela : une boucle de rĂ©troaction temporelle. Ce qui est intĂ©ressant, c'est que plus nous sommes bas, plus vite nous pouvons amener le systĂšme d'exploitation Ă  rĂ©pondre aux questions nĂ©cessaires.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

C'est un sujet de discussion plutÎt intéressant, car dans notre industrie informatique, il est possible d'obtenir rapidement un systÚme d'exploitation. Imaginez à quel point il est pénible de réaliser un projet pendant six mois et de découvrir ensuite seulement qu'il y a eu une erreur au tout début. Cela se produit lors de la conception et de toute construction de systÚmes complexes.

Dans notre cas d'IaC, les commentaires nous aident. Je vais immédiatement apporter un petit ajustement au schéma ci-dessus : le plan de publication n'a pas de cycle mensuel, mais a lieu plusieurs fois par jour. Il existe certaines pratiques liées à ce cycle du systÚme d'exploitation que nous examinerons plus en détail.

Important : les commentaires peuvent ĂȘtre une solution Ă  tous les problĂšmes mentionnĂ©s ci-dessus. CombinĂ© aux pratiques XP, cela peut vous sortir de l’abĂźme du dĂ©sespoir.

Comment se sortir du gouffre du désespoir : trois pratiques

Tests

Les tests sont mentionnĂ©s deux fois dans la boucle de rĂ©troaction XP. Ce n'est pas juste comme ça. Ils sont extrĂȘmement importants pour l’ensemble de la technique Extreme Programming.

On suppose que vous disposez de tests unitaires et d'acceptation. Certains vous donnent leur avis en quelques minutes, d’autres en quelques jours, ils prennent donc plus de temps Ă  rĂ©diger et sont rĂ©visĂ©s moins souvent.

Il existe une pyramide de tests classique, qui montre qu’il devrait y avoir davantage de tests.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

Comment ce cadre s’applique-t-il Ă  nous dans un projet IaC ? En fait... pas du tout.

  • Les tests unitaires, mĂȘme s'ils devraient ĂȘtre nombreux, ne peuvent pas ĂȘtre trop nombreux. Ou alors ils testent quelque chose de maniĂšre trĂšs indirecte. En fait, on peut dire que nous ne les Ă©crivons pas du tout. Mais voici quelques applications de tels tests que nous avons pu rĂ©aliser :
    1. Test du code jsonnet. Il s’agit par exemple de notre pipeline d’assemblage de drones, qui est assez compliquĂ©. Le code jsonnet est bien couvert par les tests.
      Nous utilisons ceci Cadre de tests unitaires pour Jsonnet.
    2. Teste les scripts exĂ©cutĂ©s au dĂ©marrage de la ressource. Les scripts sont Ă©crits en Python et des tests peuvent donc ĂȘtre Ă©crits dessus.
  • Il est potentiellement possible de vĂ©rifier la configuration lors de tests, mais nous ne le faisons pas. Il est Ă©galement possible de configurer des rĂšgles de configuration des ressources de vĂ©rification via silex. Cependant, les vĂ©rifications y sont tout simplement trop basiques pour Terraform, mais de nombreux scripts de test sont Ă©crits pour AWS. Et nous sommes sur Azure, donc cela ne s'applique pas encore une fois.
  • Tests d'intĂ©gration de composants : cela dĂ©pend de la façon dont vous les classez et de l'endroit oĂč vous les placez. Mais en gros, ils fonctionnent.

    Voici à quoi ressemblent les tests d'intégration.

    Infrastructure as Code : comment surmonter les problĂšmes avec XP

    Ceci est un exemple lors de la création d'images dans Drone CI. Pour les atteindre, il faut attendre 30 minutes que l'image Packer se forme, puis attendre encore 15 minutes pour qu'elles passent. Mais ils existent !

    Algorithme de vérification d'image

    1. Packer doit d’abord prĂ©parer complĂštement l’image.
    2. À cĂŽtĂ© du test se trouve une terraform avec un Ă©tat local, que nous utilisons pour dĂ©ployer cette image.
    3. Lors du dépliage, un petit module situé à proximité est utilisé pour faciliter le travail avec l'image.
    4. Une fois la VM déployée à partir de l'image, les vérifications peuvent commencer. Fondamentalement, les contrÎles s'effectuent en voiture. Il vérifie le fonctionnement des scripts au démarrage et le fonctionnement des démons. Pour ce faire, via ssh ou winrm, nous nous connectons à la machine nouvellement créée et vérifions l'état de la configuration ou si les services sont opérationnels.

  • La situation est similaire avec les tests d'intĂ©gration dans les modules pour Terraform. Voici un petit tableau expliquant les caractĂ©ristiques de ces tests.

    Infrastructure as Code : comment surmonter les problĂšmes avec XP

    Le retour sur le pipeline dure environ 40 minutes. Tout se passe depuis trĂšs longtemps. Il peut ĂȘtre utilisĂ© pour la rĂ©gression, mais pour le nouveau dĂ©veloppement, il est gĂ©nĂ©ralement irrĂ©aliste. Si vous ĂȘtes trĂšs, trĂšs prĂ©parĂ© Ă  cela, prĂ©parez des scripts en cours d'exĂ©cution, vous pouvez alors le rĂ©duire Ă  10 minutes. Mais ce ne sont toujours pas des tests unitaires, qui font 5 piĂšces en 100 secondes.

L'absence de tests unitaires lors de l'assemblage d'images ou de modules Terraform incite à déplacer le travail vers des services distincts exécutables simplement via REST, ou vers des scripts Python.

Par exemple, nous devions nous assurer que lorsque la machine virtuelle dĂ©marre, elle s'enregistre dans le service ÉchelleFT, et lorsque la machine virtuelle a Ă©tĂ© dĂ©truite, elle s'est supprimĂ©e d'elle-mĂȘme.

Puisque nous avons ScaleFT en tant que service, nous sommes obligés de travailler avec lui via l'API. Il y avait un wrapper écrit là-bas que vous pouviez extraire et dire : « Entrez et supprimez ceci et cela ». Il stocke tous les paramÚtres et accÚs nécessaires.

Nous pouvons déjà écrire des tests normaux pour cela, car ce n'est pas différent d'un logiciel ordinaire : on se moque d'une sorte d'apiha, vous le tirez et voyez ce qui se passe.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

RĂ©sultats des tests : Les tests unitaires, qui devraient donner le systĂšme d'exploitation en une minute, ne le donnent pas. Et les types de tests situĂ©s plus haut dans la pyramide sont efficaces, mais ne couvrent qu’une partie des problĂšmes.

Programmation en binĂŽme

Les tests sont bien sĂ»r bons. Vous pouvez en Ă©crire beaucoup, ils peuvent ĂȘtre de diffĂ©rents types. Ils travailleront Ă  leur niveau et nous feront part de leurs commentaires. Mais le problĂšme des mauvais tests unitaires, qui donnent le systĂšme d’exploitation le plus rapide, demeure. En mĂȘme temps, je souhaite toujours un systĂšme d’exploitation rapide, facile et agrĂ©able Ă  utiliser. Sans parler de la qualitĂ© de la solution obtenue. Heureusement, il existe des techniques qui peuvent fournir un feedback encore plus rapide que les tests unitaires. Il s’agit d’une programmation en binĂŽme.

Lorsque vous écrivez du code, vous souhaitez obtenir un retour sur sa qualité le plus rapidement possible. Oui, vous pouvez tout écrire dans une branche de fonctionnalités (pour ne rien casser à personne), faire une pull request dans Github, l'attribuer à quelqu'un dont l'avis a du poids et attendre une réponse.

Mais vous pouvez attendre longtemps. Les gens sont tous occupĂ©s et la rĂ©ponse, mĂȘme s’il y en a une, n’est peut-ĂȘtre pas de la plus haute qualitĂ©. Supposons que la rĂ©ponse vienne immĂ©diatement, que le critique comprenne instantanĂ©ment l'idĂ©e dans son ensemble, mais que la rĂ©ponse arrive encore tard, aprĂšs coup. J'aurais aimĂ© que ce soit plus tĂŽt. C’est Ă  cela que vise la programmation en binĂŽme – dĂšs la rĂ©daction de cet article.

Vous trouverez ci-dessous les styles de programmation en binĂŽme et leur applicabilitĂ© au travail sur IaC :

1. Classique, ExpĂ©rimentĂ©+ExpĂ©rimentĂ©, dĂ©calage par minuterie. Deux rĂŽles – conducteur et navigateur. Deux personnes. Ils travaillent sur le mĂȘme code et changent de rĂŽle aprĂšs une certaine pĂ©riode de temps prĂ©dĂ©terminĂ©e.

ConsidĂ©rons la compatibilitĂ© de nos problĂšmes avec le style :

  • ProblĂšme : imperfection des outils et outils de dĂ©veloppement de code.
    Impact négatif : on met plus de temps à se développer, on ralentit, le rythme de travail se perd.
    Comment nous combattons : nous utilisons un outil diffĂ©rent, un IDE commun et apprenons Ă©galement des raccourcis.
  • ProblĂšme : dĂ©ploiement lent.
    Impact nĂ©gatif : augmente le temps nĂ©cessaire pour crĂ©er un morceau de code fonctionnel. On s'ennuie en attendant, nos mains se tendent pour faire autre chose pendant qu'on attend.
    Comment nous combattons : nous ne l’avons pas surmontĂ©.
  • ProblĂšme : manque d’approches et de pratiques.
    Impact nĂ©gatif : on ne sait pas comment bien faire les choses et comment les mal faire. Rallonge la rĂ©ception des commentaires.
    Comment nous combattons : l'échange mutuel d'opinions et de pratiques dans le cadre du travail en binÎme résout presque le problÚme.

Le principal problĂšme liĂ© Ă  l'utilisation de ce style dans IaC est le rythme de travail inĂ©gal. Dans le dĂ©veloppement logiciel traditionnel, vous avez un mouvement trĂšs uniforme. Vous pouvez passer cinq minutes et Ă©crire N. Passez 10 minutes et Ă©crire 2N, 15 minutes - 3N. Ici, vous pouvez passer cinq minutes et Ă©crire N, puis passer encore 30 minutes et Ă©crire un dixiĂšme de N. Ici, vous ne savez rien, vous ĂȘtes coincĂ©, stupide. L'enquĂȘte prend du temps et dĂ©tourne l'attention de la programmation elle-mĂȘme.

Conclusion : sous sa forme pure, il ne nous convient pas.

2. Ping-pong. Cette approche implique qu’une personne rĂ©dige le test et qu’une autre effectue sa mise en Ɠuvre. Compte tenu du fait que tout est compliquĂ© avec les tests unitaires, et qu'il faut Ă©crire un test d'intĂ©gration qui prend beaucoup de temps Ă  programmer, toute la facilitĂ© du ping-pong disparaĂźt.

Je peux dire que nous avons essayĂ© de sĂ©parer les responsabilitĂ©s pour la conception d'un script de test et la mise en Ɠuvre du code correspondant. Un participant a proposĂ© le scĂ©nario, dans cette partie du travail dont il Ă©tait responsable, il avait le dernier mot. Et l’autre Ă©tait responsable de la mise en Ɠuvre. Cela a bien fonctionnĂ©. La qualitĂ© du scĂ©nario avec cette approche augmente.

Conclusion : hélas, le rythme de travail ne permet pas d'utiliser le ping-pong comme pratique de programmation en binÎme en IaC.

3. Style fort. Pratique difficile. L’idĂ©e est qu’un participant devient le navigateur directif et que le second joue le rĂŽle de pilote d’exĂ©cution. Dans ce cas, le droit de prendre des dĂ©cisions appartient exclusivement au navigateur. Le conducteur imprime uniquement et peut influencer ce qui se passe avec un mot. Les rĂŽles ne changent pas pendant longtemps.

Bon pour apprendre, mais nĂ©cessite de solides compĂ©tences gĂ©nĂ©rales. C'est lĂ  que nous avons hĂ©sitĂ©. La technique Ă©tait difficile. Et ce n'est mĂȘme pas une question d'infrastructure.

Conclusion : cela peut potentiellement ĂȘtre utilisĂ©, nous ne renonçons pas Ă  essayer.

4. Mobbing, swarming et tous les styles connus mais non rĂ©pertoriĂ©s Nous ne le considĂ©rons pas, parce que Nous ne l’avons pas essayĂ© et il est impossible d’en parler dans le cadre de notre travail.

RĂ©sultats gĂ©nĂ©raux sur l'utilisation de la programmation par paires :

  • Nous avons un rythme de travail inĂ©gal, ce qui prĂȘte Ă  confusion.
  • Nous nous sommes heurtĂ©s Ă  des soft skills insuffisamment bonnes. Et ce domaine ne nous aide pas Ă  surmonter nos lacunes.
  • Les longs tests et les problĂšmes avec les outils rendent le dĂ©veloppement en binĂŽme difficile.

5. Malgré cela, des succÚs ont été enregistrés. Nous avons imaginé notre propre méthode « Convergence - Divergence ». Je vais décrire briÚvement comment cela fonctionne.

Nous avons des partenaires permanents pour quelques jours (moins d'une semaine). Nous accomplissons une tùche ensemble. Nous restons assis ensemble pendant un moment : l'un écrit, l'autre s'assoit et regarde l'équipe d'assistance. Ensuite, nous nous dispersons pendant un certain temps, chacun fait des choses indépendantes, puis nous nous réunissons à nouveau, nous synchronisons trÚs rapidement, faisons quelque chose ensemble et nous nous dispersons à nouveau.

Planification et communication

Le dernier bloc de pratiques grĂące auquel les problĂšmes du systĂšme d'exploitation sont rĂ©solus est l'organisation du travail avec les tĂąches elles-mĂȘmes. Cela inclut Ă©galement l’échange d’expĂ©riences en dehors du travail en binĂŽme. Examinons trois pratiques :

1. Objectifs Ă  travers l’arbre des objectifs. Nous avons organisĂ© la gestion globale du projet Ă  travers un arbre qui va sans fin dans le futur. Techniquement, le suivi se fait dans Miro. Il y a une tĂąche : c’est un objectif intermĂ©diaire. De lĂ  partent soit des objectifs plus petits, soit des groupes de tĂąches. Les tĂąches elles-mĂȘmes viennent d'eux. Toutes les tĂąches sont créées et maintenues sur ce tableau.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

Ce systĂšme fournit Ă©galement un retour d'information, qui se produit une fois par jour lorsque nous nous synchronisons lors de rallyes. Avoir un projet commun devant tout le monde, mais structurĂ© et totalement ouvert, permet Ă  chacun d’ĂȘtre conscient de ce qui se passe et du chemin parcouru.

Avantages de la vision visuelle des tĂąches :

  • CausalitĂ©. Chaque tĂąche mĂšne Ă  un objectif global. Les tĂąches sont regroupĂ©es en objectifs plus petits. Le domaine de l'infrastructure lui-mĂȘme est assez technique. Il n'est pas toujours clair quel impact spĂ©cifique, par exemple, l'Ă©criture d'un runbook sur la migration vers un autre nginx, a sur l'entreprise. Avoir la carte cible Ă  proximitĂ© rend les choses plus claires.
    Infrastructure as Code : comment surmonter les problĂšmes avec XP
    La causalité est une propriété importante des problÚmes. Cela répond directement à la question : « Est-ce que je fais la bonne chose ? »
  • ParallĂ©lisme. Nous sommes neuf et il est tout simplement physiquement impossible de confier tout le monde Ă  une seule tĂąche. Les tĂąches d’un seul domaine ne suffisent pas toujours non plus. Nous sommes obligĂ©s de parallĂ©liser le travail entre petits groupes de travail. En mĂȘme temps, les groupes restent assis sur leur tĂąche pendant un certain temps, ils peuvent ĂȘtre renforcĂ©s par quelqu'un d'autre. Parfois, des gens se dĂ©tachent de ce groupe de travail. Quelqu'un part en vacances, quelqu'un fait un rapport pour la confĂ©rence DevOps, quelqu'un Ă©crit un article sur Habr. Savoir quels objectifs et quelles tĂąches peuvent ĂȘtre rĂ©alisĂ©s en parallĂšle devient trĂšs important.

2. Remplacement des prĂ©sentateurs des rĂ©unions du matin. Dans les stand-ups, nous avons ce problĂšme : les gens effectuent de nombreuses tĂąches en parallĂšle. Parfois, les tĂąches sont vaguement liĂ©es et on ne sait pas qui fait quoi. Et l’avis d’un autre membre de l’équipe est trĂšs important. Il s'agit d'informations supplĂ©mentaires qui peuvent changer le cours de la rĂ©solution du problĂšme. Bien sĂ»r, il y a gĂ©nĂ©ralement quelqu'un avec vous, mais les conseils et astuces sont toujours utiles.

Pour amĂ©liorer cette situation, nous avons utilisĂ© la technique « Changer le Leading Stand-Up ». Maintenant, ils tournent selon une certaine liste, et cela a son effet. Quand c'est votre tour, vous ĂȘtes obligĂ© de plonger et de comprendre ce qui se passe afin d'organiser une bonne rĂ©union Scrum.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

3. DĂ©mo interne. L'aide Ă  la rĂ©solution d'un problĂšme grĂące Ă  la programmation en binĂŽme, la visualisation sur l'arbre Ă  problĂšmes et l'aide lors des rĂ©unions Scrum le matin sont bonnes, mais pas idĂ©ales. En couple, vous n'ĂȘtes limitĂ© que par vos connaissances. L’arborescence des tĂąches permet de comprendre globalement qui fait quoi. Et le prĂ©sentateur et ses collĂšgues de la rĂ©union du matin n'approfondiront pas vos problĂšmes. Ils pourraient certainement manquer quelque chose.

La solution a été trouvée en se montrant mutuellement le travail effectué et en en discutant ensuite. Nous nous réunissons une fois par semaine pendant une heure et montrons les détails des solutions aux tùches que nous avons effectuées au cours de la semaine derniÚre.

Lors de la démonstration, il est nécessaire de révéler les détails de la tùche et de s'assurer de démontrer son fonctionnement.

Le rapport peut ĂȘtre rĂ©alisĂ© Ă  l’aide d’une liste de contrĂŽle.1. Entrez dans le contexte. D'oĂč venait cette tĂąche, pourquoi Ă©tait-elle mĂȘme nĂ©cessaire ?

2. Comment le problĂšme a-t-il Ă©tĂ© rĂ©solu auparavant ? Par exemple, il fallait cliquer massivement avec la souris, ou il Ă©tait impossible de faire quoi que ce soit.

3. Comment nous l'améliorons. Par exemple : « Regardez, maintenant il y a scriptosik, voici le fichier readme. »

4. Montrez comment cela fonctionne. Il est conseillĂ© d'implĂ©menter directement un scĂ©nario utilisateur. Je veux X, je fais Y, je vois Y (ou Z). Par exemple, je dĂ©ploie NGINX, je fume l'URL et j'obtiens 200 OK. Si l’action est longue, prĂ©parez-la Ă  l’avance pour pouvoir la montrer plus tard. Il est conseillĂ© de ne pas trop le casser une heure avant la dĂ©mo, s'il est fragile.

5. Expliquez dans quelle mesure le problÚme a été résolu, quelles difficultés subsistent, ce qui n'est pas terminé, quelles améliorations sont possibles à l'avenir. Par exemple, maintenant CLI, il y aura alors une automatisation complÚte dans CI.

Il est conseillé à chaque intervenant de s'en tenir à 5 à 10 minutes. Si votre discours est évidemment important et prendra plus de temps, coordonnez-le à l'avance dans le canal de reprise.

Aprùs le face-à-face, il y a toujours une discussion dans le fil de discussion. C’est ici qu’apparaissent les retours dont nous avons besoin sur nos tñches.

Infrastructure as Code : comment surmonter les problĂšmes avec XP
En consĂ©quence, une enquĂȘte est menĂ©e pour dĂ©terminer l’utilitĂ© de ce qui se passe. Il s'agit d'un retour sur l'essence du discours et l'importance de la tĂąche.

Infrastructure as Code : comment surmonter les problĂšmes avec XP

Longues conclusions et quelle est la suite

Il peut sembler que le ton de l’article soit quelque peu pessimiste. C'est faux. Deux niveaux infĂ©rieurs de feedback, Ă  savoir les tests et la programmation en binĂŽme, fonctionnent. Pas aussi parfait que dans le dĂ©veloppement traditionnel, mais cela a un effet positif.

Les tests, dans leur forme actuelle, ne fournissent qu'une couverture partielle du code. De nombreuses fonctions de configuration ne sont finalement pas testĂ©es. Leur influence sur le travail rĂ©el lors de l’écriture du code est faible. Cependant, les tests d'intĂ©gration ont un effet et permettent d'effectuer des refactorings sans crainte. C'est une grande rĂ©ussite. De plus, avec le dĂ©placement de l'attention vers le dĂ©veloppement dans des langages de haut niveau (nous avons python, allez), le problĂšme disparaĂźt. Et vous n’avez pas besoin de beaucoup de contrĂŽles pour la « colle » ; un contrĂŽle gĂ©nĂ©ral d’intĂ©gration suffit.

Le travail en binĂŽme dĂ©pend davantage de personnes spĂ©cifiques. Il y a le facteur tĂąche et nos soft skills. Avec certaines personnes, cela fonctionne trĂšs bien, avec d’autres, cela fonctionne moins bien. Cela prĂ©sente certainement des avantages. Force est de constater que mĂȘme si les rĂšgles du travail en binĂŽme ne sont pas suffisamment respectĂ©es, le fait mĂȘme de rĂ©aliser des tĂąches ensemble a un effet positif sur la qualitĂ© du rĂ©sultat. Personnellement, je trouve que travailler en binĂŽme est plus facile et plus agrĂ©able.

Les moyens d'influencer le systĂšme d'exploitation de niveau supĂ©rieur - la planification et l'exĂ©cution des tĂąches produisent prĂ©cisĂ©ment des effets : un Ă©change de connaissances de haute qualitĂ© et une qualitĂ© de dĂ©veloppement amĂ©liorĂ©e.

De courtes conclusions en une seule ligne

  • Les praticiens RH travaillent en IaC, mais avec moins d'efficacitĂ©.
  • Renforcez ce qui fonctionne.
  • CrĂ©ez vos propres mĂ©canismes et pratiques compensatoires.

Source: habr.com

Ajouter un commentaire