Trucs simples pour améliorer l'efficacité du codage

Un phénomène étrange est apparu chez les éditeurs de logiciels. Il semble y avoir une tendance chez les gens à inverser leur compréhension de ce qui rend un produit de qualité meilleur, ou du moins cela est vrai pour ceux qui font le marketing. Cela ressemble à ceci: «Leur produit a un million de lignes de code, mais le nôtre en a deux millions. Notre produit doit donc être meilleur."

Personne ne sait d'où venait ce type de pensée "plus, plus", alors que tout le monde travaillait si dur pour créer une philosophie du "moins, c'est plus". Cela a probablement commencé avec un journalisme grand public, car de nombreux écrivains tentent d’impressionner leur auditoire en citant de gros chiffres. Dans la plupart des cas, cela fonctionne - ce petit lecteur flash contient des téraoctets de données 200, ce processeur peut traiter des milliards d'instructions 48 par seconde - et les rédacteurs ne sont pas toujours suffisamment au fait des technologies pour comprendre que le même principe ne s'applique pas au code source.

Mais l'efficacité du codage ne consiste pas seulement à créer des algorithmes serrés. C'est aussi être capable de réduire les déchets. Cela signifie une perte de temps en termes de temps consacré à la résolution des problèmes, de gaspillage en ressources informatiques excessives et même en termes de nombre de boîtes à pizza que votre équipe a accumulées au bureau à la fin de la semaine. Idéalement, vous voulez réduire toutes ces choses.

Nous verrons dans cet article ce que vous pouvez faire pour améliorer votre efficacité et votre productivité.

1. Construire un environnement de travail propice

Chaque codeur travaille dans des circonstances uniques, et nos lecteurs constituent un groupe très diversifié. Il sera donc plus facile pour certains d’entre vous de mettre en œuvre ces suggestions que pour d’autres.

Si vous êtes pigiste, félicitations, car vous maîtrisez déjà votre environnement de travail. Bien sûr, cela va changer lorsque vous allez rendre visite à un client et que vous devez travailler sur site, mais le fait de réussir si vous réussissez reste néanmoins une bonne position.

Si vous êtes le responsable d’une équipe de développement, ces suggestions peuvent également aider votre équipe à atteindre une efficacité maximale. Ou si vous travaillez dans une équipe de développement, vous pouvez suggérer certaines de ces idées à votre responsable ou tout au moins lui envoyer un lien vers cette page et espérer que tout ira pour le mieux.

Envisagez de permettre aux membres de l'équipe de télétravailler

La programmation est en partie un exercice de logique, mais c'est encore plus un défi créatif. Les meilleurs programmeurs peuvent utiliser chaque partie de leur cerveau dans la même mesure pour n'importe quelle tâche. La science reconnaît depuis longtemps que les créatifs font de leur mieux la nuit, et nous en avons tous fait l'expérience. Alors, pourquoi la plupart des gestionnaires insistent-ils sur une routine 9 à 5 traditionnelle?

En fait, nous connaissons déjà la réponse à cette question. Cela concerne en partie le contrôle et en partie le fait de rendre les choses plus pratiques du point de vue commercial (ou du moins, du point de vue de la gestion). Mais cette insistance sur la routine et l’emplacement nuit à l’efficacité et à la productivité de l’équipe.

Ce que vous devez comprendre, c'est que vos codeurs ont probablement passé toute la nuit à essayer le dernier jeu, ou sont peut-être allés faire la fête, ou ont simplement dû socialiser avec leur famille. Cela signifie que lorsqu'ils se présenteront au travail le lundi matin, non seulement vous ne les aurez pas au maximum de leur productivité, mais ils sont déjà vides d'énergie et épuisés.

Donner aux travailleurs le choix du moment où ils travaillent - et idéalement aussi où - constitue un excellent moyen d’améliorer la productivité et le moral. Tant qu'ils font le travail et obtiennent d'excellents résultats, vous ne devriez pas vous soucier de quand, où et comment ils y parviennent.

L'exception est lorsque vous avez besoin d'une collaboration étroite, mais en réalité, la plupart des codeurs s'en tirent mieux lorsqu'ils sont obligés de faire les choses à leur manière, et le besoin de collaboration étroite est rare. La possibilité d'entrer dans le bureau devrait toujours être là, mais il n'y a aucune raison réaliste de l'exiger sauf si vous travaillez sur des projets militaires très secrets.

En tant que pigiste, vous pouvez également constater que le point clé ici est que si vous effectuez la majeure partie de votre travail de codage de nuit, vous en aurez probablement plus à faire. Il y a moins de distractions tard dans la nuit, c'est plus calme et vous vous sentirez plus créatif.

Éviter la musique

Nous avons tous vu ces stéréotypes de films loufoques où certains überhacker super-grungy enfilent leurs casques audio dans le death-metal tout en créant sans effort des écrans de code sans même s'arrêter de respirer. Et nous tous qui codons réellement dans le monde réel savons à quel point cette image est ridicule.

Mais si vous écoutez de la musique tout en travaillant, soyez prudent. Il est assez facile de penser à la musique plutôt qu'à votre travail, et certains types de musique peuvent avoir un effet soporifique. Lorsque vous vous entraînez au gymnase, le bon type de musique peut vous inciter à repousser les quelques répétitions supplémentaires. Mais personne n'a jamais réussi à créer une musique qui vous incitera à trouver la ligne avec le point-virgule manquant ou à faire le bon choix entre utiliser une boucle for ou une boucle while. Le rêve le plus proche que nous ayons jamais eu est Electric Dreams.

Essayez de rester en ordre

L'encombrement peut être curieusement réconfortant, mais il peut également vous ralentir. Vous pouvez facilement perdre des minutes 20 à la recherche de quelque chose qui a été perdu dans le désordre, puis oublier pourquoi vous le vouliez au départ.

Alors, malgré tous les inconvénients que cela cause, pourquoi sommes-nous, du moins certains d'entre nous, si accro au fouillis? Julie Morgenstern, experte en organisation et auteure, affirme que c'est parce que cela nous connecte à notre passé et joue un rôle dans la définition de notre identité. Marcus Geduld, professeur et metteur en scène basé à New York, suggère que c'est parce que l'encombrement est préférable à un environnement «stérile» et assimile le chaos de l'encombrement à une affirmation de liberté et de créativité.

Cependant, il ne fait aucun doute que la réduction de l'encombrement vous aidera à éviter les distractions et la désorganisation. En tant que tel, il s’agit d’un objectif louable. Évidemment, gardez quelques objets sacrés autour de vous pour vous sentir mieux et moins stressé, mais n'en faites pas trop. Le désencombrement est l’une des tâches les plus difficiles à accomplir pour la plupart des gens, et ce ne sont pas seulement nos ordinateurs de bureau physiques qui doivent être désencombrés, mais souvent aussi nos ordinateurs de bureau. Si vous avez vraiment du mal avec cela, vous pouvez essayer d’utiliser un ETTD minimaliste tel que Fluxbox, ce qui ne vous permet pas vraiment d’être encombré.

Mais au milieu de tout ce rangement, n'allez pas trop loin. Les données scientifiques disponibles suggèrent qu'un peu de chaos dans l'environnement pourrait en fait favoriser la créativité. L’une des sources de recherche les plus citées à ce sujet est une entrée de journal dans Psychological Science de Vohs, Redden & Rahinel pour l’Université du Minnesota intitulée L'ordre physique produit des choix sains, de la générosité et de la conventionalité, tandis que le désordre produit de la créativité. La raison pour laquelle les journalistes de journaux s’agrippent s’en tient sans doute au fait qu’elle conclut clairement que: «… les participants dans une salle désordonnée étaient plus créatifs que les participants dans une salle ordonnée».

Beaucoup moins populaires sont des opinions divergentes, telles que Le désordre environnemental mène à l'échec de l'autorégulation (Chaye & Zhu, 2014), publié dans le Journal of Consumer Research. Cette étude a révélé que les personnes travaillant dans des environnements désordonnés étaient moins aptes à effectuer des tâches.

Alors, où cela vous mène-t-il? Devriez-vous travailler dans le chaos ou la stérilité? La solution semble être de trouver un équilibre suffisamment chaotique pour vous inspirer, mais pas pour que vous soyez distrait ou que vous ayez du mal à trouver quelque chose.

Laissez de la place derrière vous pour arpenter vos pensées

C'est une bonne idée d'avoir suffisamment de place pour flâner lorsque vous délibérez. Un grand nombre des meilleurs amiraux et généraux de l’histoire étaient réputés pour le temps considérable qu’ils passaient à arpenter le pont pour planifier leurs stratégies de combat.

Les hommes qui combattent ne suivent pas cette pratique. De nombreux moines bouddhistes préconisent également la «méditation ambulante» et pensent que cela contribue à la clarté d'esprit. Chaque fois que vous avez un problème de programmation particulièrement épineux à résoudre, vous constaterez peut-être qu'il est utile de vous étirer un peu les jambes en faisant une promenade méditative autour du pont. Évidemment, ici encore, un manque d'encombrement vous aidera à le faire sans vous retrouver à l'hôpital.

En tant que patron, adoptez une approche prudente en critiquant les efforts créatifs.

Il n'y a rien de mal à une critique constructive, mais vous devez choisir le bon moment et l'aborder de la bonne façon, sinon cela peut se retourner contre vous en rendant votre personnel moins productif à l'avenir. Plutôt que de les inspirer et de leur donner un aperçu, vous pourriez leur faire peur de prendre des risques, ce qui est un bon moyen de tuer la créativité. Marieke Roskes, dans Contraintes qui aident ou entravent les performances créatives: une approche motivationnelle, fournit un cadre permettant de gérer la motivation des créateurs, et plus particulièrement d’éviter de les démotiver involontairement (Gestion de la créativité et de l’innovation, Vol 24, Iss 2, 2015).

2. Établir une bonne POS

Il existe de nombreuses tendances accrocheuses dans les procédures de gestion d'entreprise et de programmation qui paraissent beaucoup plus sensées en théorie qu'elles ne le sont en pratique. Qu'une approche particulière fonctionne pour vous ou non dépend de votre objectif et de ce que vous considérez personnellement comme un résultat positif.

Un exemple de méthodologie pour laquelle une entreprise pour laquelle j'ai travaillé a essayé - et a également été abandonnée - est la programmation par paires (à ne pas confondre avec la programmation PEAR). Bien que certaines personnes admirent réellement cette méthodologie de travail et louent sa place dans le paradigme du développement agile, nous avons constaté qu’elle était terriblement inefficace. Pour commencer, il fallait deux programmeurs pour chaque poste de travail. Vous payiez donc deux fois plus cher pour moins de travail de développement. Nous avons également constaté qu'il était beaucoup plus lent de travailler de cette façon en raison du flux d'arrêt / démarrage fréquent et de la tendance au dialogue inutile.

Les avantages de la programmation par paires étaient qu’elle permettait une documentation plus naturelle et une documentation plus stricte. Cela permettait également de repérer plus facilement les bogues et de suggérer des améliorations à apporter à un algorithme. Dans le même temps, cependant, les mêmes avantages ont également créé des problèmes, car parfois les ajustements et les ajustements n'étaient pas vraiment nécessaires.

Un autre risque avec cette approche est que vous pouvez obtenir l’effet identifié par Roskes, dans lequel les programmeurs pourraient hésiter à essayer des solutions parce qu’elles ne veulent pas être corrigées. Vous pouvez trouver des conflits de personnalité qui s’embrasent lorsqu'un développeur est très pédant et traditionnel, tandis que l’autre est plus créatif et spontané.

Les programmeurs affirment souvent qu'ils préfèrent la programmation par paires. C'est peut-être parce qu'ils apprécient l'interaction sociale que cela procure, mais cela ne contribue en rien à l'efficacité de la production, sauf peut-être à renforcer le moral des troupes.

Vous devez donc déterminer ce qui fonctionne réellement pour vos développeurs et ce qui ne fonctionne pas. Pour les choses qui ne fonctionnent pas, il est préférable de les jeter, même si elles sont une pratique extrêmement tendance. Tout ce qui aide l’équipe à progresser rapidement est une bonne chose. Mais s’ils sont alourdis par une méthodologie qui ne correspond pas à leur style, cela finira par poser problème.

3. Encourager la documentation prolixe

Bien qu'il puisse sembler que la verbosité augmenterait l'inefficacité, le peu de temps qu'il faut pour donner plus de détails et de précision dans les commentaires peut épargner beaucoup de problèmes à mesure que le projet avance ou est révisé.

4. Décourager la documentation inutile

Un code bien écrit est souvent auto-documenté. S'il est parfaitement évident que le nom que vous donnez correspond à une fonction (ce qui devrait presque toujours être le cas), il est alors superflu d'ajouter davantage de descriptions. Il en va de même pour la désignation des variables et les valeurs renvoyées. Le nom de ce qu'ils font doit être clair, et dans les cas où il est impossible de le faire, vous devez en inclure une description dans les commentaires.

5. L'espace blanc est votre ami

L'utilisation appropriée des espaces dans votre code est utile pour faciliter la lecture, la révision et la compréhension du code. Cela va de pair avec une bonne documentation et l'écriture de code auto-documenté. Tout programmeur expérimenté - ou peut-être même un non-programmeur - devrait avoir la possibilité de prendre une copie de votre code source et de comprendre instantanément le but de chaque fonction et son fonctionnement. Idéalement, quelqu'un devrait pouvoir apprendre à programmer grâce à l'étude de votre code bien écrit.

6. Préférez la simplicité à la complexité

Plus votre code est complexe, plus il peut être difficile de le démêler. Ironiquement, cela s’applique aux raccourcis de programmation, comme l’utilisation de conditionnels abrégés au lieu de les écrire intégralement. Cela permet de gagner du temps lors de l'écriture, mais un programmeur moins expérimenté venant réviser votre code plus tard risque de ne pas comprendre vos intentions.

7. Tester de manière exhaustive

Le code doit être testé progressivement et souvent. Avant de déployer quoi que ce soit, vous devez effectuer autant de tests en interne que possible, même si votre première version sera désignée Alpha.

8. Utiliser le contrôle de version

Il faut être fou pour ne pas utiliser le contrôle de version sur un projet majeur. Sans cela, vous n'êtes pas protégé contre vos propres erreurs mineures et il est également très facile pour un autre membre de l'équipe de saboter accidentellement (ou intentionnellement) votre code en le remplaçant par quelque chose qui ne vous plait pas.

En tenant compte de ces huit suggestions clés, vous serez en mesure de développer votre propre stratégie pour obtenir le maximum d’efficacité pour vous et tous les membres de l’équipe avec lesquels vous travaillez. Vous n'êtes pas obligé de toutes les appliquer, et certaines peuvent ne pas être pratiques, mais toute combinaison de ces deux méthodes vous permettra probablement de faire votre travail avec moins de tracas. Un flux de travail plus productif sera rentabilisé avec le temps, même s'il ne s'agit que de réduire le stress et de vous donner plus de temps pour vous-même. C'est un objectif qui vaut la peine d'être atteint.

Avatar

Bogdan Rancea

Bogdan est un membre fondateur d’Inspired Mag, ayant accumulé près de 14 années d’expérience 6 au cours de cette période. Dans ses temps libres, il aime étudier la musique classique et explorer les arts visuels. Il est également obsédé par les fixies. Il possède déjà 5.