Certaines personnes ont ce problème qu'elles ne peuvent pas penser sans mots. Et noter leurs pensées et décisions est la façon la plus efficace de procéder.
Alors - est-il normal et acceptable que j'écrive mes pensées et mes décisions dans un fichier Notepad ++ pendant le codage?
Parfois, cela devrait être acceptable, par exemple lors de la recréation de documentation technique ou du raisonnement sur des algorithmes plus complexes, mais parfois cela peut être étrange, par exemple lorsque je considère des options de conception et que j'essaie de porter un jugement.
L'impact de cette pratique sur la productivité n'est pas clair. D'un côté - le raisonnement avec les mots intérieurs peut être plus rapide qu'avec les mots écrits. De l'autre côté - des problèmes plus complexes nécessitent l'écriture. De plus, si l'on est coincé avec plus d'options de conception, la sensation est meilleure lorsque la décision est écrite, ce qui augmente le moral.
Réponses:
Non seulement c'est normal, c'est une bonne idée.
Il y a une citation célèbre
Prendre le temps d'organiser vos pensées et de planifier votre travail avant de coder est du temps bien utilisé. Mettre ces réflexions sur papier vous donnera le temps de réfléchir à vos plans, de les critiquer et de les organiser d'une manière qui serait très difficile si cela ne se faisait que "dans votre tête".
la source
Oui, c'est parfaitement acceptable et normal.
La documentation de votre processus décisionnel est souvent utile lors de la révision du code, pour aider à déterminer pourquoi le code a été écrit d'une certaine manière.
Ces notes peuvent être incluses directement dans le code sous forme de commentaires, si elles sont suffisamment courtes. Les commentaires détaillés sont souvent conservés dans le cadre d'un document de conception technique externe.
la source
C'est une sacrée bonne idée. Jusqu'à ce qu'il devienne un moyen de tergiverser.
La clé est l'équilibre. Je trouve que je suis plus productif si je ne m'enferme pas, mais capture des idées au fur et à mesure qu'elles se présentent.
Si je meulais à un niveau bas et qu'une idée de haut niveau venait, je la notais et j'y revenais plus tard.
La planification du travail est une bonne idée, mais à moins que vous ne deviez communiquer ou présenter devant un public, les meilleurs outils sont un stylo et une serviette. Capturez l'idée. Ne perdez pas de temps à la rendre jolie.
la source
Dans toute situation professionnelle, ce n'est pas seulement "normal et acceptable", c'est obligatoire. Le cycle de développement typique se compose de deux phases de documentation avant même que tout codage ne commence:
Document d'exigences fonctionnelles: généralement rédigé par des analystes commerciaux, spécifiant les fonctionnalités à mettre en œuvre.
Document de conception détaillée: qui est à peu près ce dont vous parlez, juste plus formel, spécifiant la décomposition fonctionnelle (factorisation) du système, les algorithmes, etc. Certains de mes (très) anciens sont en ligne, par exemple ceci .
Pour une documentation moins formelle, je suis d'accord à 110% avec les remarques précédentes sur les commentaires en ligne. C'est la seule voie à suivre; d'une manière ou d'une autre, tout le reste finit par se perdre. Mais les commentaires en ligne soignés et réfléchis sont une compétence de codage distincte, développée par l'effort et la pratique comme toute autre compétence. Vous pouvez voir certains de mes (très) vieux trucs sur, par exemple ceci . Ce style peut ou non vous plaire. Je recommanderais d'abord de trouver du code bien commenté avec un style que vous aimez, et d'émuler cela dans votre propre code. Après un certain temps, adaptez-le comme bon vous semble.
la source
Un bon endroit pour mettre ce type d'informations est directement dans le message de validation de votre système de contrôle de version (SVN, git, etc.). De cette façon, vous pouvez voir les changements et leur raisonnement au même endroit.
la source
En plus des autres bonnes réponses, j'ajouterai que j'écris souvent mes réflexions sur ce que j'essaie de faire.
Être très explicite sur l'articulation de ce que j'essaie de faire m'aide à réaliser des présomptions, des hypothèses et / ou des exigences qui ne sont pas nécessairement valables.
Cela fait ensuite allusion à des alternatives, que je peux ensuite mieux analyser chacune à son tour; cette écriture aide à sauver ma place si je pense à autre chose.
Je prends des notes rapides pour explorer le souffle et la profondeur, donc cela fonctionne récursivement, m'aidant à élaborer, naviguer et évaluer un arbre de solutions, sauvegarder, explorer, découvrir, réaliser et décider.
la source
Écrire tout ce qui peut vous faire gagner du temps aux (nouveaux) membres de l'équipe est du temps à consacrer. Assurez-vous simplement que c'est quelque chose dont quelqu'un pourrait avoir besoin plus tard et ne réfléchissez pas à moins que ce soit un vrai projet à long terme.
Cela ne devrait pas non plus prendre de temps. Si vous passez du temps à réfléchir, vous pouvez écrire vos pensées 1 à 1 (tant qu'elles seront / peuvent être utiles à quelqu'un).
Le vrai problème pourrait être de trop penser à ce que vous écrivez. Ce n'est pas parce que vous écrivez que vous devez adhérer à un format déjà existant ou que vous devez aller jusqu'au bout pour créer une documentation complète.
Si vous avez le choix entre ne rien écrire et simplement écrire des notes non formelles sur un bloc-notes, écrivez simplement des notes non formelles.
la source
Vous dites: "Certaines personnes ont ce problème qu'elles ne peuvent pas penser sans mots. Et noter leurs pensées et décisions est la façon la plus efficace de procéder."
Si écrire vos pensées et vos décisions est la façon la plus efficace de procéder, pourquoi ne serait-il pas normal et acceptable de procéder de la manière la plus efficace? Vous faites ce qui vous convient le mieux. Ce n'est peut-être pas ce qui fonctionne le mieux pour quelqu'un d'autre. Dans ce cas, vous ne laissez personne vous dire ce qui vous convient le mieux et vous ne lui dites pas ce qui est le mieux pour lui. Chacun fait ce qui est le mieux pour lui.
la source
Les humains ne peuvent tenir qu'environ sept «choses» dans leur tête à la fois. C'est la raison pour laquelle les numéros de téléphone à sept chiffres. Pour que les programmeurs travaillent efficacement, ils doivent trouver une sorte de système pour décharger les choses de leur mémoire et les récupérer rapidement plus tard si nécessaire. Prendre des notes est un moyen évident et direct, mais tous ceux qui travaillent sur quelque chose de modérément complexe doivent le faire d'une manière ou d'une autre . Lorsque vous jumelez un programme avec quelqu'un, assurez-vous de rechercher sa méthode.
Le développement piloté par les tests est une méthode courante. Dans cette méthodologie, vous écrivez un test qui échoue, vous écrivez juste assez de code pour réussir ce test, puis vous refactorisez votre code pour le rendre plus joli tout en gardant tous vos tests existants réussis. Cette méthodologie conserve toutes vos "notes" encodées dans les tests. Les gens peuvent travailler très rapidement de cette façon sans avoir l'air de prendre des notes, car ils se concentrent uniquement sur le prochain test.
Une autre façon courante consiste à simplement écrire vos notes dans votre code sous forme de commentaires ou de talons de pseudocode, puis de les remplacer progressivement par la vraie chose. C'est ainsi que j'écris habituellement des algorithmes. Mon premier brouillon n'est qu'une fonction principale avec un pseudocode, puis il se remplit progressivement en niveaux d'abstraction de plus en plus profonds.
Ne vous sentez pas mal à l'idée d'utiliser la méthode qui vous convient, mais essayez de remarquer quelles méthodes vos collègues «efficaces» utilisent. Ils ont les mêmes limitations humaines que vous.
la source