Cinq étapes pour un logiciel parfait

-

C’est la fin de l’année, c’est donc le moment idéal pour rafraîchir les connaissances de base. Cet article passe en revue les cinq étapes d’un logiciel parfait que vous ne devriez jamais omettre.

Pour clarifier, je vais faire un zoom sur le « niveau de l’unité » car la plupart d’entre vous ne seront pas responsables des décisions d’architecture de haut niveau ou de la dynamique d’équipe.

Recherche

Je trouve que c’est la phase la plus souvent sautée de nos jours. Et j’en attribue la responsabilité aux pratiques d’embauche actuelles. Bien que la vitesse ait une valeur absolue, courir vite dans la mauvaise direction est pire que de rester immobile.

La phase de recherche consiste à ralentir et à prendre le temps de réfléchir au problème.

  • Comprenez-vous le problème ? Est-il bien spécifié ?
  • Disposez-vous de toutes les ressources dont vous avez besoin pour le résoudre (connaissances ou outils) ?
  • Existe-t-il des ressources internes pour vous aider à résoudre cette tâche (personnes ou outils) ?
  • Existe-t-il des ressources externes que vous pouvez utiliser (personnes ou outils) ?
  • Qui sont les parties prenantes ? Sont-ils toujours intéressés par cette tâche ? Leurs exigences ont-elles changé ?

Une phase de recherche doit répondre à toutes les questions ouvertes ou incertitudes qui pourraient potentiellement changer la nature de la tâche. De tels changements obligeraient à dupliquer le travail s’ils étaient découverts plus tard dans le processus.

Mes tâches sont si simples que je n’ai pas besoin de faire de recherche. Je sais exactement ce qu’il faut faire et comment le faire !

Si c’est le cas pour vous et que vous aimez votre travail, alors c’est excellent. Sachez simplement que vous êtes très susceptible d’être remplacé par l’automatisation.

C’est une perte de temps !

La recherche ne doit pas nécessairement être une activité longue et complexe. Selon l’ampleur de la tâche, la recherche peut se résumer à une conversation de cinq minutes avec votre responsable technique.

Prototype

Une fois que nous avons compris ce que nous faisons, il est temps de déterminer comment. L’objectif principal est de définir les interfaces et les structures de données pour passer à la phase suivante.

Concentrez-vous sur la fonctionnalité de base sans tenir compte des modes de défaillance pour le moment. La simplicité doit être le principal objectif à ce stade. Gardez le minimum.

C’est notre architecte qui se charge de la conception.

Vous pouvez sauter cette phase si vous n’avez pas besoin de la phase de prototype et si vous avez tout ce dont vous avez besoin pour commencer à écrire des tests.

Test

Pour être précis, la boucle test/implémentation. Nous avons maintenant établi ce que nous implémentons et comment nous l’implémentons (au niveau de l’interface au moins).

Si nous itérons maintenant en écrivant des tests et en implémentant la fonctionnalité pour que les tests réussissent, nous garantissons que nous nous retrouvons avec une solution minimale réalisable.

Je ne vais pas vous expliquer pourquoi et comment écrire des tests unitaires, car cela représente un livre à lui seul. Mais voici quelques conseils rapides :

  • Utilisez la structure given-when-then.
  • Si ce composant a un état, considérez le diagramme d’état. Chaque transition doit avoir un cas de test correspondant.
  • Si ce composant est sans état, considérez les conditions limites. À chacune des conditions limites doit correspondre un scénario de test.
  • La testabilité est une propriété du code, vous devrez donc peut-être ajuster votre conception si vous avez du mal à écrire un scénario de test.
  • Visez une couverture élevée des branches. Cependant, n’oubliez pas que parfois, ce n’est pas le manque de tests qui est en cause, mais l’implémentation (c’est-à-dire un code mort).

L’écriture de tests me ralentit !

Oui. L’écriture de tests vous ralentira lorsque vous travaillerez sur une seule tâche. Cependant, le fait d’avoir des tests accélérera tous les travaux futurs sur ce projet. Les gens surestiment le ralentissement et sous-estiment l’accélération que vous obtenez d’une base de code bien testée.

Mais les tests unitaires ne garantissent pas que mon code est correct !

Ils ne le garantissent pas. Cependant, cela n’a jamais été le but. Les tests unitaires sont avant tout de la documentation, et par là, j’entends spécifiquement la documentation des spécifications et des hypothèses. Au fur et à mesure que votre projet évolue, les anciennes spécifications et hypothèses seront violées tout le temps, et les tests unitaires seront là pour vous en informer.

En outre, si vous vous souciez de l’exactitude de votre code, vous devrez vous appuyer sur des outils tels que les vérificateurs de sécurité des ressources, les testeurs fuzz, les testeurs de mutation, etc. La majorité de ces outils fonctionnent au-dessus des tests unitaires.

Polissage

Nous avons maintenant une implémentation bien testée. Que peut-on faire de plus ? Le polissage vise à s’assurer que nous n’aurons pas d’échardes lorsqu’un coéquipier ou nous-mêmes reprendrons plus tard ce morceau de code.

Cette phase correspondra au processus de révision du code si votre équipe en a établi un. Si ce n’est pas le cas, il est toujours utile de demander à quelqu’un d’autre de lire rapidement votre code. Sinon, vous pouvez également compter sur des outils et des vérificateurs stylistiques automatisés pour signaler les parties problématiques de votre code.

Quelques conseils généraux pour le code avec des échardes :

  • Les noms de vos variables et fonctions représentent-ils leur objectif ?
  • Avez-vous des structures profondément imbriquées ?
  • Certaines fonctions/classes ne peuvent-elles être décrites qu’au moyen d’une phrase contenant « AND »/ »OR » ?

Handoff (passé au suivant)

Enfin, c’est le moment du transfert. Ne pas effectuer un transfert correct est une erreur courante et potentiellement dommageable.
Cependant, ce que cela signifie précisément variera radicalement en fonction de votre organisation :

  • D’abord, fermez ou modifiez l’état de la tâche concernée.
  • Informez toutes les parties prenantes. Si votre projet comporte des versions périodiques, mentionnez également l’heure de sortie prévue.
  • Enfin, partagez ce que vous avez appris lors de la mise en œuvre de votre tâche (outils ou bibliothèques utiles, erreurs faciles à commettre).

Merci de votre lecture

Merci d’avoir lu cet article. Suivez-vous déjà ces cinq étapes ? Pensez-vous que j’ai oublié une étape ? Faites-le-moi savoir !

Alfred
Alfredhttps://www.alfreddagenais.com
Salut ! Moi, c'est Alfred, développeur dans l’âme et explorateur de l'infini Web. Je suis constamment à la recherche de nouvelles idées et je pense que le développement web et l'informatique ont le pouvoir de transformer le monde. Je suis un grand admirateur de l'expérimentation, parce que c'est souvent de là que naissent les idées les plus créatives. Je suis convaincu que l'humour est un ingrédient clé de la vie, alors j'essaie toujours de glisser une blague ou deux dans mon code (pas toujours facile à comprendre, mais c'est le risque à prendre). En dehors de la programmation, j'aime passer du temps avec ma famille et mes amis, découvrir de nouveaux endroits et cuisiner des plats délicieux (du moins, j'essaie). Si vous voulez discuter de développement web, d'innovation, ou tout simplement échanger des blagues, n'hésitez pas à me contacter. Je suis toujours partant pour une bonne conversation !

Share this article

Recent posts

Popular categories

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Recent comments