Face à un défi à réaliser ou un problème à résoudre, une méthodologie de travail structurée permet d'atteindre une solution satisfaisante efficacement!
😎 Attitude
Garder une attitude positive rend l'expérience plus agréable et enrichissante
- Il existe une solution rationnelle et logique, il ne faut pas se décourager
- Le but est de comprendre, pas simplement de trouver un correctif rapidement
- La frustration empêche de comprendre, gardez votre calme
- N'hésitez pas à demander de l'aide au besoin
👀 Identification
Avant de passer à l'action, il faut s'assurer d'avoir la vision d'ensemble du projet
- S'approprier le projet pour comprendre son objectif global
-
Comprendre le comportement problématique et être capable de le reproduire
- Manipulations et étapes à effectuer pour déclencher le problème
- Valeur des données ou paramètres concernés
📝 Préparation
La première étape de la réalisation consiste à mettre en place un environnement de travail fonctionnel, propice à l'expérimentation
- Faire une copie ou une branche distincte
-
S'approprier et comprendre le code existant
- Expérimenter différentes fonctionnalités
- Lecture du code, structure et standards
- Consulter la documentation des librairies utilisées
- Tester les fonctionnalités dans un environnement minimal ou REPL
- Repérer les autres sources d'information pertinentes: logs, stack trace, crash report
🔎 Enquête
Pour trouver la source du problème, plusieurs stratégies sont à votre disposition
-
Isoler le problème
- À partir d'un exemple minimal fonctionnel, ajouter les fonctionnalités du programme jusqu'à ce que le problème se déclenche
- Mettre en place une mécanique qui provoque le problème rapidement, ex: appel de fonction avec des paramètres fautifs, test unitaire
-
Comprendre l'état du système
- Affichage de points de références, variables, séquence d'événement, conditionnellement
- Faire la trace du code
- Utiliser le débogueur
- Modifier l'affichage pour constater l'état, ex: bordure rouge sur un élément, inclure des données supplémentaire
- Identifier les outils spécifiques pouvant aider à résoudre le bogue
-
Consulter les fichiers de journalisation: logs, stack trace, crash report
- Identifier les mots clés pertinents, ex: pas de nom de fichier spécifiques au projet
-
Procéder par élimination pour identifier la source du problème
- Émettre des hypothèses et les valider
- Commenter le code pas à pas pour identifier ce qui fonctionne
- Vérifier une chose à la fois
- Noter ce qui a été essayé et le résultat
- Formuler des questions pour cerner les interrogations
- Consulter les issues du projet sur GitHub
- Conserver les références utilisées
- Schématiser le problème ou l'algorithme
- Verbaliser en expliquant à voix haute ou par écrit
- Demander à un collègue ou un enseignant
- Dans une impasse, prendre une pause
🎉 Résolution
Le plus dur est accompli, il ne reste qu'à peaufiner la solution
- Prendre le temps de célébrer
- Vérifier que la solution ne produit pas d'effets indésirables
- Améliorer et refactoriser la solution trouvée
- Demander des commentaires ou rétroactions
- Vérifier que la solution ne produit pas d'effets indésirables
👀 Identification
Qu'est-ce qui déclenche le comportement à corriger?
📝 Préparation
Je sais où trouver des détails sur la situation
🔎 Enquête
Pose une série d'hypothèses et valide-les pour converger vers une solution
🎉 Résolution