#image_title

Ce que les développeurs de logiciels peuvent faire pour éviter d’oublier ou de négliger des choses

Selon Ilian Iliev, les développeurs de logiciels ont tendance à oublier de faire des choses auxquelles ils ne doivent pas penser au quotidien, ce qui peut entraîner des retards ou avoir un impact sur les fonctionnalités du produit lors d’un projet logiciel. Pour éviter d’oublier quelque chose, il a suggéré de commencer tôt par automatiser le déploiement, configurer la journalisation des erreurs et utiliser des listes et des rappels des éléments oubliés auparavant.

Ilian Iliev a expliqué ce que les développeurs de logiciels peuvent faire pour éviter de négliger certaines choses lors du Dev Challenge Accepted 2023.

Les gens ont tendance à négliger certaines choses lorsqu’ils développent un nouveau produit ou service logiciel, car ils n’ont pas à y penser quotidiennement, a déclaré Iliev. Cela peut entraîner des retards dans votre projet logiciel ou avoir un impact sur les fonctionnalités de votre produit, ou les deux, a-t-il mentionné. Tout ce que vous avez oublié pendant la phase de planification signifie soit repousser les délais, soit prendre des raccourcis et libérer moins que promis :

Imaginez que deux jours avant la sortie, vous réalisez soudain que vous avez totalement ignoré le fait qu’il existe des données existantes incompatibles avec la nouvelle version de votre application et que vous n’avez pas élaboré un plan de migration. Cela peut signifier quelques jours de retard ou des semaines de refactorisation en fonction de votre situation spécifique.

Iliev a rappelé comment l’un de leurs serveurs s’est écrasé au milieu de la nuit à la suite d’un bug de gestion de seconde intercalaire dans le système d’exploitation :

L’ensemble du système était opérationnel, à l’exception de la partie qui traitait les commandes des clients. Le problème était que nous l’avons découvert quelques jours plus tard grâce à un client qui nous appelait et nous demandait pourquoi le système n’avait toujours pas traité sa commande.

Cela a porté un coup à la fois à la réputation de l’entreprise et à notre estime de soi en tant que développeurs, car nous n’avions jamais pensé à avoir une surveillance 24h/24 et 7j/7 de cette pièce, a déclaré Iliev.

L’une des choses sur lesquelles il faut se concentrer plus tôt du point de vue du déploiement et des opérations est l’automatisation des déploiements, a déclaré Iliev. Vous n’avez pas besoin d’un pipeline CI/CD complexe ; bien sûr, c’est génial, mais pour commencer, peut-être qu’un simple script qui fait toutes les étapes pourrait suffire, a-t-il mentionné. Ne comptez pas sur les gens pour qu’ils se souviennent d’exécuter cinq commandes différentes dans un ordre spécifique, même si elles sont documentées. Le déploiement devrait se faire en un seul clic ou par commande, a déclaré Iliev.

Pour les opérations, la surveillance de la disponibilité et l’alarme sont indispensables, a expliqué Iliev. Cela est également vrai pour une journalisation appropriée des erreurs ; Si quelque chose ne va pas avec votre système, vous devriez être en mesure d’en retrouver la cause profonde, a-t-il ajouté :

Sans une journalisation appropriée, vous finissez par deviner la cause d’un problème ou, pire encore, par ne pas le savoir jusqu’à ce que les clients commencent à se plaindre.

Iliev a mentionné que dire que quelque chose est une mauvaise décision est souvent interprété comme hostile et n’apporte aucune valeur à la discussion. Il a suggéré d’exprimer sa préoccupation quant au fait que quelque chose pourrait ne pas fonctionner en soulignant des raisons spécifiques, ce qui ouvre la possibilité d’identifier d’éventuels problèmes à un niveau précoce.

Les développeurs de logiciels ne devraient pas avoir peur de poser des questions en dehors de leur département, a déclaré Iliev. En fin de compte, tous nos travaux sont combinés, il est donc important d’avoir une compréhension générale de tous les autres aspects pour une meilleure intégration de toutes les pièces dans le produit final, a-t-il ajouté.

Iliev a conseillé aux équipes, lorsqu’elles démarrent un nouveau projet, de réfléchir à tout ce qui n’a pas fonctionné la dernière fois et de s’assurer de ne pas le répéter :

Pensez à la manière dont votre produit évoluera et à la manière dont vous allez maintenir le système. Maintenez une bonne communication entre les équipes et assurez-vous que toutes les parties prenantes sont conscientes de toutes les complexités et des pièges possibles.

Il y aura toujours des choses à oublier ou à négliger, mais moins il y en a, meilleur est le résultat, a-t-il conclu.

InfoQ a interviewé Ilian Iliev sur la façon dont les développeurs peuvent éviter de négliger quelque chose.

InfoQ : Quel conseil donneriez-vous aux équipes qui se lancent dans le développement d’un nouveau système ou produit ?

Ilian Iliev: Utiliser une liste de contrôle avec des sujets auxquels vous devez prêter attention pendant le processus aide beaucoup. Divisez-le en sections pour chaque phase et utilisez-le à la fois comme outil pour vérifier l’achèvement de certaines étapes, mais également comme source de questions qui vous aideront à mieux comprendre les besoins du projet. L’avantage de ces listes de contrôle est qu’elles sont rapides à parcourir et vous aident à éviter de manquer des étapes qui entraîneront des problèmes futurs.

InfoQ : Pouvez-vous donner un exemple de ce à quoi peut ressembler une telle liste de contrôle ?

Iliev: J’ai créé un projet Github avec des listes de contrôle de projet qui contient des ébauches des listes de contrôle que j’utilise dans l’architecture, la mise en œuvre, le déploiement et l’exploitation, ainsi que l’évolution et la maintenance.

Voici deux extraits de liste de contrôle pour vous inspirer à créer la vôtre :

Mise en œuvre:

  • Documentation
    • Documentation sur les modèles de données – ce que représentent les différents attributs
    • Documentation des API : que font les points de terminaison, quelles sont les entrées et sorties attendues
    • Logique métier : pourquoi certaines décisions ont été prises
  • Qualité du code – guide de style, linters, processus de révision
  • Gestion des versions
  • Stabilité – tests unitaires, tests de bout en bout et d’intégration, tests de charge

Déploiement et fonctionnement :

  • Déploiement à commande unique
  • Surveillance de la disponibilité : êtes-vous sûr que votre système fonctionne ?
  • Rapports de métriques : comment mesurer les performances du système
  • Journalisation des erreurs : les journaux d’opérations doivent être faciles d’accès et de compréhension
  • Services silencieux : le système ne doit pas générer de bruit inutile, par exemple des journaux, des e-mails, des notifications, car cela pourrait cacher de réels problèmes.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepteLire la suite