- PagerDuty /
- Blog /
- Meilleures pratiques et informations /
- Comment devenir des ingénieurs plus efficaces ? Partie 1 : Augmenter l'effet de levier
Blog
Comment devenir des ingénieurs plus efficaces ? Partie 1 : Augmenter l'effet de levier
Chez PagerDuty, nous nous efforçons de nous améliorer et d'apprendre en tant qu'individus et en équipe. Cela se manifeste par des post-mortems, des révisions de code, des rétrospectives, des discussions dans Slack/JIRA et des enquêtes de bilan de santé, pour n'en citer que quelques-uns. Il existe également des opportunités de rejoindre des groupes d'intérêt, d'assister à des revues de sprint, à des discussions techniques et de lire/écrire. Articles de blog sur la technologie .
En tant qu'ingénieurs, nous sommes également tentés de refactoriser le code inefficace, de nous attaquer à la dette technique et d'améliorer les flux de travail. Avec tant de choses sur lesquelles nous pourrions travailler (et je n'ai même pas mentionné notre travail sur les produits ou l'infrastructure au sein de nos équipes Scrum), il est important d'examiner de plus près la façon dont nous gérons notre temps. Par exemple, quels projets devraient avoir la priorité sur les autres et pourquoi ? Sur quoi devrions-nous travailler pour nous rapprocher plus efficacement de nos objectifs ?
Pour répondre à ces questions, il faut évaluer l'effet de levier d'un ensemble d'œuvres donné. Effet de levier, écrit Edmond Lau dans L'ingénieur efficace , est défini par une équation simple : c'est la valeur, ou l'impact, produit par temps investi.
En d'autres termes, travailler dur n'est pas la même chose que travailler efficacement. C'est la différence entre être occupé et être productif. Une autre façon de voir les choses est de considérer le retour sur investissement de l'ingénierie. Le nombre de choses sur lesquelles nous pourrions travailler peut être illimité, mais notre temps et nos ressources sont limités. Être efficace signifie travailler sur les choses qui offrent le plus de valeur tout en demandant le moins d'efforts. La règle 80-20, également connue sous le nom de Principe de Pareto , s'applique ici : 80 pour cent des résultats devraient provenir de 20 pour cent d'efforts.
Comment pouvons-nous augmenter notre effet de levier ?
L'ancien PDG d'Intel, Andrew Grove, explique dans son livre Gestion à haut rendement que votre effet de levier global (la quantité de valeur que vous produisez par unité de temps) ne peut être augmenté que de trois manières :
- En réduisant le temps nécessaire pour réaliser une certaine activité.
- En augmentant le rendement d’une activité particulière.
- En passant à une activité à plus fort effet de levier.
Au cours de la journée, notre temps est occupé par une multitude d'activités allant des réunions, à la vérification des e-mails, à la lecture/écriture de textes sur Confluence/commentaires/blogs, à la fourniture de commentaires sur Github/Confluence, à la participation à des discussions Slack et au travail de sprint. Mais peu importe ce que vous faites, vous devez vous poser les questions suivantes pour vous aider à améliorer votre effet de levier :
- Comment puis-je réaliser cette activité en moins de temps ?
- Comment puis-je augmenter la valeur produite par cette activité ?
- Y a-t-il autre chose sur laquelle je pourrais consacrer mon temps et qui produirait plus de valeur ?
Je vais donner quelques exemples ci-dessous.
Réunions
Afin de rendre une réunion plus efficace, posez les questions suivantes :
- Cette réunion doit-elle durer une heure ? Peut-elle se dérouler en 30 minutes ? Ou mieux encore, en 15 minutes ?
- Les objectifs de la réunion sont-ils clairs pour tout le monde ? Les participants doivent-ils venir préparés avec quelque chose ? Doivent-ils lire quelque chose au préalable ?
- Cette réunion est-elle vraiment nécessaire ? Le problème peut-il être résolu via Slack ou par e-mail ?
Vérification des e-mails et de Slack
Les préférences en matière de courrier électronique et de Slack varient d'une personne à l'autre, et il est indéniable que consulter et répondre à ses e-mails a de la valeur (et il en va de même pour la lecture, la mise à jour et la collaboration sur Slack), mais à quel moment tout cela devient-il moins rentable ? En d'autres termes, à quel moment cela devient-il préjudiciable à notre productivité ?
Avec des interruptions constantes tout au long de la journée, il peut être difficile d'atteindre l'état d'esprit dans lequel vous produisez du code aussi rapidement que cela le commissaire-priseur peut parler . Par exemple, lorsque je suis constamment en train de bavarder dans des outils de communication (par exemple, e-mail, Slack, JIRA), je travaille dans un état d'incertitude où je passe constamment d'une application à l'autre en appuyant sur Commande + Tab, en passant d'un tonne d'onglets Chrome à l'autre et en écrivant du code. Aujourd'hui, j'ai un système dans lequel j'essaie d'obtenir au moins deux à trois heures par jour de codage ininterrompu, concentré, concentré et assidu, ce que j'appelle le « travail en profondeur ».
Cal Newport, auteur de Travail en profondeur , définit ceci comme :
« Des activités professionnelles réalisées dans un état de concentration sans distraction qui poussent vos capacités cognitives à leur limite. Ces efforts créent une nouvelle valeur, améliorent vos compétences et sont difficiles à reproduire. »
J'ai également entendu ce concept appelé couler , une expression inventée par le psychologue Mihaly Csikszentmihalyi. Les personnes qui ont fait l’expérience du flow le décrivent comme « un état de concentration sans effort si profond qu’elles ont perdu la notion du temps, d’elles-mêmes, de leurs problèmes ».
Lorsque je travaille en profondeur, j'utilise généralement la fonction Snooze de Slack, qui supprime les notifications pendant une période donnée. Je consulte ensuite régulièrement Slack lorsque je suis à un bon point d'arrêt pour m'assurer que rien ne se passe mal.
Je pense que les ingénieurs font de leur mieux lorsqu'ils effectuent un travail approfondi, et j'encourage les autres à essayer d'effectuer un travail approfondi pendant au moins une ou deux heures par jour pour voir s'ils sont plus productifs. Ne confondez pas cela avec le temps de codage régulier/non concentré. Idéalement, nous devrions essayer de coder tout au long de la journée, mais il y a une différence entre le codage distrait/non concentré et le codage ininterrompu. Lorsque je dis travail approfondi, je fais référence au codage ininterrompu.
Le ticket JIRA actuel sur lequel vous travaillez
En supposant que le ticket Jira a déjà été priorisé par le responsable produit et qu'il a été soumis au processus de story time et de planification de sprint, il n'y a aucun mal à y jeter un autre coup d'œil et à voir si vous pouvez augmenter son effet de levier. Vérifions-le à l'aide de nos trois questions :
1. Comment puis-je réaliser cette activité en moins de temps ?
Pouvons-nous utiliser des bibliothèques déjà existantes ? Je sais qu'il peut être tentant pour les ingénieurs d'écrire quelque chose à partir de zéro.
2. Comment puis-je augmenter la valeur produite par cette activité ?
Existe-t-il un moyen d'automatiser certaines parties de notre tâche actuelle afin de faciliter la tâche des futurs développeurs ? Pouvons-nous abstraire une tâche courante dans une fonction ou une classe ? Parfois, il vaut la peine d'investir un peu de temps en amont afin de pouvoir itérer plus rapidement à l'avenir.
3. Y a-t-il autre chose sur laquelle je pourrais consacrer mon temps et qui produirait plus de valeur ?
Y a-t-il des tâches plus importantes sur lesquelles travailler et qui seraient plus pertinentes pour l'objectif ou la version actuelle ? MVP (produit minimum viable) dans cette situation : Avons-nous vraiment besoin de ces optimisations sophistiquées au début, alors que nous essayons simplement de recueillir des retours précoces ? Quelle est la plus petite tranche livrable que nous pouvons publier ? Quel est le ratio 80-20 sur une version ? De quoi pouvons-nous nous passer ? Comment pouvons-nous réduire la portée sans diminuer la valeur ?
Je sais qu'il est facile de se laisser emporter par le travail. Cependant, j'ai appris qu'en posant les bonnes questions, on peut travailler efficacement et être beaucoup plus productif.
Restez à l’écoute pour la partie 2, où je vous expliquerai plus en détail comment établir des priorités !