Ici, j'ai utilisé les motsintelligent,, paresseuxetprogrammeurCes mots. Ce que je veux dire par ces mots, c'est :

  • Programmeur: énergique, concentré sur l'utilisation du code pour résoudre des problèmes réels, sans désigner ces rêveurs, ceux qui ne font que penser mais n'agissent jamais.
  • Intelligent: capable de réfléchir en profondeur aux problèmes (pas ceux qui jouent à des tours mesquins).
  • Paresseux: tout comme le lazy-loading en programmation, cela signifie retarder le moment d'écrire du code (pas quelqu'un d'oisif).

Un développement logiciel correct devrait être un développement paresseux, aussi appelé développement patient ; ce style de développement se manifeste par le fait de passer beaucoup de temps, avant d’écrire réellement du code, à examiner de façon exhaustive toutes les solutions et approches possibles. Cela peut être considéré commeretarderl’écriture du code, ne jamais commencer à écrire du code avant d’avoir parfaitement compris le problème. Il faut d’abord bien comprendre le problème, s’assurer que le code à écrire peut réellement résoudre le problème ; cela évitera d’écrire plus tard une grande quantité de code inutile.

Ce que l’on entend ici parcomprendre d’abord le problèmese reflète dans :

  • Bien comprendre les exigences, faire préciser au département produit (département d’analyse métier) ce dont il a réellement besoin.
    • Ces départements ne consacrent généralement pas assez de temps à organiser les exigences.
    • Ils ne consultent souvent pas les experts du domaine, mais s’en remettent plutôt à l’avis des dirigeants.
    • Ils sont généralement incapables de fournir des avis cohérents ou complets sur les exigences.
  • Il faut être clair sur les interactions nécessaires avec les autres programmeurs de votre équipe ou les programmeurs d’autres équipes, et sur la manière d’interagir. Cela comprend :
    • Communiquer à l’aide d’un tableau blanc
    • Dessiner des diagrammes de flux (UML ou Visio)

Vous devez passer beaucoup de temps à faire des recherches pour vous assurer que les exigences correspondent à la réalité, et à réaliser un travail qui vous donne, à vous et à vos collègues, un langage et une sémantique communs pour communiquer. Cependant, les programmeurs aiment tous se précipiter immédiatement dans la programmation et aiment continuer à taper du code devant l’ordinateur.

Dans le développement logiciel réel, seuls 5% du temps de développement sont efficaces (vous pouvez vous référer à « Le paradoxe de l’efficacité de développement du programmeur »). Si vous trouvez un programmeur qui fixe l’écran 100% du temps, alors ce programmeur est le pire des programmeurs.

Si un programmeur est toujours en train de coder à l’ordinateur, c’est certainement un mauvais signe.

Les programmeurs efficaces vérifient constamment leur compréhension des exigences pour s’assurer que leur code et les exigences sonten phase. Les programmeurs efficaces communiquent fréquemment avec les chefs de produit/experts métier ; on les voit souvent utiliser des tableaux blancs pour discuter et échanger des idées avec des collègues et des architectes. L’expérience et la sagesse des programmeurs servent à améliorer l’efficacité du développement. Les meilleurs programmeurs :

  • Ils passent plus de temps à réfléchir au code et moins de temps à écrire du code.
  • Une compréhension approfondie du problème permet de déboguer plus rapidement.
  • Le code écrit après mûre réflexion s’exécute plus rapidement.
  • Le code est plus court.

Psychologiquement, les programmeurs aiment tous leur propre code.

Les mauvais programmeurs n’aiment pas modifier le mauvais code déjà écrit. Plutôt que d’optimiser leur propre code, ils préfèrent simplementajouterdu code pour compenser les défauts précédents. Pire encore, ils aiment blâmer les autres. Au final, une nouvelle pile de mauvais code s’ajoute à une pile de mauvais code, et tout le système devient plein de bugs et extrêmement instable.

Les excellents programmeurs écrivent aussi souvent du mauvais code, mais ils savent voir quel code doit être optimisé et quel code doit être réécrit. La différence entre les excellents programmeurs et les autres réside dans leur attitude face au code problématique. L’approche de l’excellent programmeur est la suivante :

  • Si le code est globalement bon, refactorisez-le.
  • Si le code pose globalement problème, réécrivez le code.

Lorsqu'il y a des endroits dans le code qui nécessitent d'être optimisés ou réécrits, plus vous tardez, plus il est difficile de revenir en arrière et de résoudre ces problèmes. Parce que les programmes qui dépendent de ce code deviendront de plus en plus nombreux et profondément dépendants. Lorsque vous optimisez ce code, les dépendances associées doivent également être modifiées en conséquence. Lorsque les problèmes accumulés s'aggravent, il devient impossible d'optimiser/réécrire facilement ce code. Et utiliser l'approche consistant à ajouter continuellement du code pour compenser les problèmes précédents du code rendra le système de plus en plus instable.

Si votre esprit n'a pas bien réfléchi, alors soyez plus paresseux et repoussez le moment d'écrire du code.

Articles connexes