6 Machines Simples
[conflict]
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 !