Blog

Comment devenir des ingénieurs plus efficaces ? 2e partie : Prioriser régulièrement

par Derrick Camerino 22 mai 2018 | 8 min de lecture

Dans première partie Dans cette série en deux parties, j'ai abordé l'importance de se concentrer sur les tâches à faible effort qui produisent le plus de valeur et les moyens d'optimiser certaines de vos activités quotidiennes. En résumé, effet de levier Le retour sur investissement (RSI) peut se définir comme la valeur ou l'impact produit par unité de temps investi. Autrement dit, il s'agit du retour sur investissement en ingénierie. Bien que l'effet de levier soit un bon indicateur, il n'est pas toujours évident de déterminer la valeur ou l'impact d'une tâche donnée. De plus, face à la multitude de tâches à accomplir, il peut s'avérer difficile d'établir des priorités.

En tant qu'ingénieur, on a toujours beaucoup à faire, n'est-ce pas ? Même si nos sprints sont organisés en petites tâches, il est important d'organiser nos propres activités hors sprint. Il peut s'agir, par exemple, de relire un document sur Confluence, de rédiger de la documentation ou de relire du code d'une autre équipe. D'après mon expérience, quand ces tâches s'accumulent, il y a de fortes chances que d'autres soient négligées.

Vous trouverez ci-dessous quelques bonnes pratiques pour gérer une longue liste de tâches, accéder à leur priorité et évaluer les gains à court et à long terme d'une tâche donnée.

La simple liste de contrôle

Cela paraît évident, mais une simple liste de tâches peut vous aider à suivre les travaux non liés au sprint. Il peut s'agir d'un document sur Google Drive, d'une liste manuscrite sur papier, ou même de l'utilisation d'applications de productivité comme Wunderlist ou Todoist. Tout voir écrit vous permettra de mieux identifier les tâches les plus importantes et celles qui ne valent pas la peine d'être effectuées.

L'utilisation d'une liste de contrôle peut également aider à identifier les tâches à accomplir entre deux tickets ou pendant les courts moments entre les réunions. Mais comment déterminer quelles tâches ou quels éléments ont plus d'importance que d'autres ?

Quel travail produit de la valeur ?

Les ingénieurs excellent dans la résolution de problèmes liés aux produits et à l'ingénierie. Nous consacrons beaucoup de temps à trouver des solutions efficaces pour implémenter une fonctionnalité, à concevoir différents systèmes et à optimiser le stockage et la transmission des données, pour ne citer que quelques exemples.

Au-delà de la simple création de valeur par l'ingénierie, il existe des éléments qui génèrent également de la valeur commerciale. Cela inclut l'acquisition d'utilisateurs, le déploiement de produits/fonctionnalités, l'amélioration des indicateurs de performance, l'optimisation des processus/systèmes et le chiffre d'affaires réalisé. Ces éléments sont plus importants que les heures travaillées, le nombre de lignes de code écrites, le nombre de réunions suivies et le nombre de tâches JIRA terminées.

Dans cette optique, nous, ingénieurs, devrions nous efforcer de nous concentrer sur des tâches qui profitent non seulement aux ingénieurs et à nos utilisateurs, mais aussi à l'entreprise.

Apprenez à dire non

En tant qu'ingénieur, trouver un équilibre peut s'avérer complexe : gérer les sprints et les tâches hors sprint, aider ses collègues, collaborer avec d'autres équipes et poursuivre son développement professionnel et personnel. Nous sommes souvent invités à des réunions informelles, à des groupes d'intérêt ou à relire des documents. Les personnes qui nous invitent ignorent généralement le coût d'opportunité que représente notre temps.

Il est donc important d'apprendre à dire non. Notre temps et nos ressources étant limités, toutes les invitations ne doivent pas être perçues comme une obligation. Bien qu'il soit agréable de participer à toutes ces activités extrascolaires, elles peuvent parfois nous détourner de nos autres tâches. Cependant, si ces invitations sont prioritaires, il est essentiel d'en discuter. Mais comme nous ne pouvons pas tout faire, nous devons nous concentrer sur l'essentiel, c'est-à-dire sur ce qui apporte le plus de valeur.

Concentrez-vous sur l'important et le non urgent

Comme nous sommes constamment sollicités par courriel, messages/demandes Slack, bugs et incidents tout au long de la journée, nous risquons de devenir plus réactifs que proactifs dans notre travail. Il faut être vigilant, car cela risque de nous empêcher de nous concentrer sur des investissements à long terme tels que l'apprentissage de nouveaux langages de programmation, le développement professionnel continu et l'établissement de relations professionnelles.

Chaque activité peut être répartie en quatre quadrants selon son importance et son urgence (à ne pas confondre avec la notion de synonymes). Consultez la matrice d'Eisenhower ci-dessous :

Nous consacrons généralement la majeure partie de notre temps aux quadrants 1 et 3, qui relèvent de la catégorie « Urgent ». Cependant, en nous concentrant excessivement sur ces quadrants, nous négligeons les activités non urgentes mais importantes du quadrant 2, qui incluent notamment :

  • Objectifs de carrière et développement de relations solides
  • Lecture de livres et d'articles pour le développement professionnel
  • Création d'outils pour améliorer nos flux de travail
  • Apprendre de nouveaux langages de programmation, bibliothèques, frameworks, etc.
  • Encadrer nos coéquipiers pour les aider à être plus productifs

Les investissements du quadrant 2 n'ont souvent pas d'échéance et ne sont donc pas considérés comme prioritaires. Cependant, à long terme, ils apportent une valeur considérable car ils contribuent à notre apprentissage et à notre développement, tant sur le plan personnel que professionnel.

Lorsque vous gérez votre liste de tâches personnelles, assurez-vous de déterminer lesquelles se trouvent dans le quadrant 2 et de déprioriser les éléments des quadrants 3 et 4 qui ne sont pas aussi importants.

Investir dans la croissance de l'équipe

Une activité du quadrant 2 qui, à mon avis, a un fort potentiel d'amélioration et que nous pouvons optimiser est la croissance de l'équipe, que l'on peut définir comme le développement de notre équipe d'ingénierie en termes de personnel, de connaissances et de processus.

Recrutement et intégration

Idéalement, la plupart des ingénieurs participent régulièrement aux entretiens d'embauche. Il est préférable que chacun puisse se partager cette tâche. La plupart, voire la totalité, des ingénieurs devraient participer au processus de recrutement afin de préserver une culture d'ingénierie solide. De nombreuses équipes souffrent également d'un manque de personnel ; recruter davantage de talents sera donc bénéfique à long terme.

Dès l'arrivée des nouvelles recrues, une liste de contrôle d'intégration complète doit être mise à leur disposition afin de faciliter leur prise en main rapide et leur productivité. Cette liste doit être constamment mise à jour au fur et à mesure des retours et des modifications apportées par chaque candidat. Un point essentiel à garder à l'esprit lors du processus d'intégration est le suivant : comment aider les ingénieurs à maîtriser rapidement une technologie ou un système particulier ?

Diffuser les connaissances

Je pense que c'est un domaine où toutes les entreprises peuvent progresser. Bien que nous ayons des initiatives comme les groupes d'intérêt, les conférences techniques, articles de blog Malgré la documentation sur GitHub et Confluence, et les analyses post-mortem, l'information est généralement dispersée. Par exemple, si un ingénieur souhaite apprendre Ember.js depuis le début, il serait utile de pouvoir simplement le rediriger vers une page proposant des explications générales, ainsi qu'une série d'exercices de programmation pour faciliter sa prise en main.

Chez Google, ils proposent une ressource appelée CodeLabs pour expliquer les abstractions courantes utilisées dans le code source, ainsi que des analyses de code et des exercices pour consolider les concepts. Même un premier pas dans cette direction pourrait s'avérer très bénéfique.

J'ai réfléchi à la question de la diffusion des connaissances et j'ai deux suggestions pour l'améliorer. J'espère qu'elles permettront aux organisations d'ingénierie de se concerter et de définir des normes pour une diffusion efficace des connaissances.

Deux idées pour diffuser les connaissances

1. Tirer parti des groupes d'intérêt

Les groupes d'intérêt se forment généralement autour d'une technologie, d'un langage, d'un framework, etc., et sont ouverts à tous les ingénieurs. Leur objectif est d'aider les ingénieurs à apprendre et à collaborer sur un sujet précis (par exemple, Elixir, Ember.js, etc.) afin de permettre à d'autres équipes de travailler efficacement avec cette technologie. Ils peuvent créer de la documentation accessible aux ingénieurs n'ayant jamais utilisé la technologie en question. Cette documentation peut comprendre des articles, des tutoriels vidéo, des exercices de programmation et des liens vers des ressources utiles. Les groupes d'intérêt peuvent également réfléchir aux investissements futurs dans la technologie concernée.

2. Utiliser des mentors

Les services d'ingénierie regroupent généralement des ingénieurs experts dans diverses technologies, comme MySQL, JavaScript ou Python, pour n'en citer que quelques-unes. Ces ingénieurs sont souvent très occupés à développer de nouvelles fonctionnalités pour les produits. Ne serait-il pas judicieux de mettre en place un programme permettant à leurs collègues ingénieurs de bénéficier d'un mentorat auprès de ces experts ?

Un modèle de mentorat pour une technologie donnée pourrait être une excellente opportunité de collaborer avec des ingénieurs d'autres équipes, tout en offrant aux ingénieurs la possibilité d'encadrer et/ou d'apprendre. Cela pourrait se traduire par une réunion hebdomadaire de 30 minutes durant laquelle le mentor répondrait aux questions et fournirait des ressources pour faciliter l'apprentissage du mentoré.

Certaines de ces pratiques sont probablement déjà en place au sein de votre service d'ingénierie actuel, mais quel est le niveau de temps et d'efforts qui leur est consacré ? Ces activités, bien qu'elles puissent sembler détourner les ingénieurs de leurs obligations immédiates, peuvent en réalité générer une valeur ajoutée à long terme.

Pour en savoir plus

Voici quelques idées que j'ai eues sur la façon dont nous pouvons devenir des ingénieurs plus efficaces. Beaucoup de ces idées ont été inspirées par L'ingénieur efficace par Edmond Lau et Travail en profondeur Par Cal Newport. Si vous souhaitez en savoir plus sur le thème de l'efficacité en tant qu'ingénieur et de la concentration dans un monde distrayant, je vous recommande vivement ces ouvrages.