Aujourd’hui je vous dévoile mes 6 machines simples, que j’utilise pour écrire du logiciel, seul ou en équipe. Si on comparait le développement à de la mécanique (une comparaison acrobatique 😅 ) quelles seraient mes machines simples ?

(Rappel sur les 6 (± 2 ?) machines simples : le plan incliné, le levier, le coin, la roue et son moyeu, la poulie, la vis)

  • 1: Slow Debug

    Contexte : tu rencontres un problème qui “te résiste”.

    Q: note une question que tu te poses à propos de ce qui se passe
    H: note une hypothèse que tu fais sur ce qui se passe
    A: note une action que tu vas réaliser en vue d’infirmer cette hypothèse
    O: note une observation que l’action t’a permis de faire
    C: note une conclusion que tu as sur le problème avant de sortir de la session
    X: note un sentiment que tu te dois d’exprimer sinon tu vas exploser !\

    évite les séquence suivantes :

    • A non précédée de H
    • A non suivie de O
    • C non précédée de H puis de O
  • 2: Test - Code - Refactor

    Contexte : tu veux développer du logiciel sans te laisser déborder par la complexité

    • fais une liste sommaire des tests que tu envisage dans cette session
    • cycle:
      • écris un test et assure toi qu’il ne passe pas
      • écris le code le plus simple qui fasse passer le test
      • améliore le code sans en casser le comportement

    utilise ce cycle pour construire une conception par incréments

  • 3) Fake it – Triangulate

    Contexte : tu codes un truc un peu compliqué pour lequel tu as écris un test

    • fais passer le test avec une implémentation factice
    • ajoute un nouveau test qui met en échec cette implémentation
    • réaménage le code afin de factoriser l’implémentation

    progresse ainsi du cas trivial au cas simple puis au cas général

  • 4) Piecemeal Growth

    Contexte : tu te lances dans un projet complexe

    • construis la plus petite chose qui montrerait que tu as appris
    • face à un obstacle insurmontable, rétrograde et cherche à construire un incrément plus petit
    • intègre les pièces régulièrement
  • 5) Throwaway Solution

    Contexte : tu te lances dans un projet de complexité inconnue

    • construis une solution rapide et sale
    • identifie rapidement les sources de complexité
    • n’utilise jamais le code d’une solution rapide et sale sauf pour apprendre
  • 6) Scavenger Hunt (aka White Hat)

    Contexte : tu es ignorant sur un sujet que tu as besoin de mieux connaître

    • établis une liste de sources d’informations sur le sujet
    • aborde la théorie en délaissant complètement la mise en œuvre pour un temps
    • aborde des sujets connexes ou des solutions opposées
    • écris un tutorial pour débutants sur le sujet

Voilà mes 6 machines simples. Bons développements !

6-machines

Publié sur Linked In le 07/10/2024