25 mai 2020

Une Meilleure Cartographie Mentale Aide à un Meilleur Codage

Anne

En tant que développeur logiciel et rédacteur de magazines de programmation renommés, Andrew a souvent discuté des avantages de prendre des notes pendant le codage pour produire un code clair et fiable. Il constate qu'enregistrement des observations et des tâches à accomplir dans un document structuré pendant qu'il code l'aide à suivre où il en est dans un projet et où il doit aller.

Après avoir essayé diverses manières d'enregistrer ces notes de manière intelligente, il a constaté que les cartes mentales représentaient une solution élégante. Il pouvait disposer la partie du projet sur laquelle il travaillait dans une carte mentale et la décorer de notes et de tâches à accomplir, qu'il était ensuite facile à retrouver.

Cette approche libère de l'espace mental pour lui permettre de se concentrer sur le code sur lequel il travaille, tout en ne perdant aucune des informations contextuelles dont il a besoin. Il utilise également les cartes mentales pour analyser le code comme expliqué dans l'entretien qui suit.

Parlez-nous un peu de vous.

Ces cinq dernières années, j'ai été rédacteur en chef de Java Magazine (d'Oracle). Auparavant, j'étais le rédacteur en chef de Dr. Dobb’s Journal. Et dans des vies antérieures, j'ai été rédacteur de plusieurs publications de programmation. J'ai commencé ma carrière en tant que développeur logiciel et j'ai continué à programmer en tant qu'activité secondaire, contribuant à divers projets open-source et travaillant sur mes propres projets.

Que faites-vous pour vous amuser ?

J'étudie le piano. C'est bien plus difficile que la programmation. La route de l'expertise au piano est en effet ardue. Je pense que la plupart des programmeurs ont tendance à être trop confiants dans leurs compétences en programmation. Je sais que je le suis jusqu'à ce que je redescende sur terre en regardant un ancien code et en me demandant comment j'ai pu écrire ça ! Mais avec le piano, il y a de l'humilité tout le long. Vous êtes constamment conscient de tout ce qu'il y a encore à apprendre et à quel point le niveau des grands pianistes est inatteignable.

Comment la carte mentale vous aide-t-elle dans votre vie ou votre travail ?

J'utilise les cartes mentales dans deux domaines différents :


  1. Brainstorming de tâches et projets pour moi ou avec famille et amis ;

  2. Programmation. Comme je le décris plus tard, j'utilise les cartes mentales pour trois objectifs principaux dans le développement logiciel.

Depuis combien de temps utilisez-vous XMind ?

Cela fait probablement six ou sept ans ; peut-être plus longtemps.

Comment avez-vous eu l'idée d'utiliser XMind dans le codage, car ce n'est pas habituel pour les développeurs ?

Tout a commencé à l'origine avec Kent Beck (le père de l'Agile) qui a suggéré une fois qu'il était bon de garder une trace de toutes les décisions prises en programmant. (Tant les importantes telles que : « Je maintiendrai la valeur maximale de cette variable à 70. » « Je m'assurerai que les utilisateurs peuvent entrer des valeurs fractionnaires dans leurs commandes. » que les plus petites, telles que « Je dois étendre les tests d'intégration pour couvrir ce nouveau code. » Etc.). Ce que j'ai constaté, c'est que simplement écrire ces décisions ne suffisait pas. Mais les mettre dans le gestionnaire de tâches/défauts du projet était excessif. J'ai donc commencé avec une carte mentale que j'ai développée de la partie du projet sur laquelle je travaillais et je la décorais avec ces micro-décisions et notes, de sorte que je pouvais les trouver et les revoir lorsque je travaillais sur une autre partie du projet. J'ai trouvé la représentation en carte mentale très utile pour trouver rapidement les notes, de sorte que je pourrais les trouver et les revoir lorsque je travaille sur une autre partie.

J'utilise également des cartes mentales lors de travailles sur la conception d'une fonctionnalité. Je commence avec la nouvelle fonctionnalité comme sujet principal, puis je fais dériver des branches pour des sous-fonctionnalités et j'attache des décisions à ces branches, ainsi que des notes de mise en œuvre, des rappels, et éventuellement même des propositions de noms pour des objets et des méthodes. Cela me permet de penser en détail à l'avance au code beaucoup avant d'avoir écrit une seule ligne. Souvent, je déplace une branche contenant plusieurs méthodes vers une autre branche, ce qui me permet de changer facilement les choses et me donne une plus grande confiance dans la direction à prendre lorsque je commence à écrire le code.

Ceci est un cas d'une nouvelle fonctionnalité - un ajout de HTML à un outil existant :

Mind map illustrating HTML5 support, covering output verification, plugin details, and startup process.

Enfin, j'ai commencé à utiliser des cartes mentales lorsque je lis un code inconnu. La plupart des programmes ont une architecture hiérarchique, qui est étonnamment adéquate à la représentation par carte mentale. C'est une analyse d'une bibliothèque appelée iText 7, un cas d'utilisation peu fréquent mais pratique.

⚠️  image manquante

De cette manière, au fur et à mesure que je lis le code, je peux voir sur la carte mentale où j'ai été et comment je suis arrivé là. Je peux voir le chemin qui mène à mon emplacement actuel. De plus, en lisant, je développe une documentation à laquelle je peux me référer plus tard. J'expérimente encore cet usage.

Quelle est votre fonctionnalité/tes fonctionnalités préférées dans XMind ? Pourquoi ?

Honnêtement, c’est la simplicité d’utilisation. Je peux avancer rapidement et insérer dans la carte mentale ce que j'ai en tête. J'aime beaucoup cela, car très souvent le temps est essentiel lorsque vous avez quelque chose que vous voulez capturer.

Comment gardez-vous votre productivité ? Utilisez-vous d'autres applications de productivité ?

J'ai beaucoup écrit sur ce sujet dans divers éditoriaux. Je trouve qu'éliminer les distractions, utiliser de bons outils, et écouter de la musique classique sont tout à fait utiles.


Café ou thé ?

Café pour me lancer le matin. Puis du thé la plupart de la journée. Quant aux autres choix binaires : les chiens plutôt que les chats, les espaces plutôt que les tabulations, Brahms plutôt que Wagner, Monet plutôt que Manet.

Notes : Photo gracieuseté de Bob Adler

Plus de publications