Je m’appelle Opukhlyi Vladyslav et je suis Backend Tech Lead chez Magecom. Mon article est basé sur une conférence que j’ai donnée à Magento Meetup #12, où j’ai parlé de l’expérience de détection et de résolution des problèmes de projet dans l’équipe Magecom.
Il y a quatre ans, je travaillais en tant que développeur sur un projet intéressant et j’ai ensuite commencé à le diriger. Il y avait des équipes extrêmement motivées tant de notre côté que chez les clients.
J’avais de grandes attentes pour ce projet, à en juger par l’expérience de mes développeurs. Je pensais que le client serait content ; nous aurions beaucoup de travail stimulant, sentirions l’aide et le soutien de l’équipe et utiliserions SCRUM. Mais la réalité n’a pas répondu à mes attentes. La seule chose que je recevais était des demandes urgentes puisque je travaillais plus de 13-14 heures par jour ; nous avions des délais stricts, une ruée de demandes de changement, plus de 500 messages par jour, et enfin, des versions ASAP sur les demandes des clients.
Pourquoi j’ai perdu le contrôle du projet
Esprit développeur. Il est bon de penser avec des algorithmes car ils aident à traiter et à gérer un grand nombre de demandes réelles. Mais lorsque vous commencez un nouveau poste en tant que chef d’équipe, vous aurez beaucoup plus d’éléments liés à la gestion. Par conséquent, vous ne serez pas prêt pour ces demandes si vous n’êtes pas préparé et ne savez pas sur quoi vous concentrer.
Concentrez-vous sur les tickets plutôt que sur les processus. Cela signifie que vous corrigez les tickets, que vous les livrez et que vous vous débattez toujours avec un projet qui ne fonctionne pas comme il le devrait.
Guérir les symptômes, pas la cause profonde. Vous recevez plus de demandes de modification, essayez de les corriger et faites des heures supplémentaires, mais cela n’aide pas. Vous devez vous arrêter et comprendre la cause première, la réparer et continuer.
Boule de neige de la communication. Après deux semaines de travail, j’ai commencé à recevoir plus de 1 000 e-mails dans ma boîte de réception, et je n’étais pas prêt pour cela.
Peur de la transparence. Si je faisais une erreur, je n’étais pas sûr de devoir en informer les membres de mon équipe. Je pensais que le client nous traiterait comme des développeurs non fiables si nous faisions une erreur.
Quelles sont les étapes pour sauver votre projet
Quels éléments ai-je essayé de mettre en œuvre ?
Travailler plus dur.
Travaillez plus d’heures.
Ajoutez plus de membres à l’équipe.
Spoiler: aucun de ces éléments n’a aidé.
Le fait est que travailler plus dur ne conduit pas à résoudre les problèmes et les goulots d’étranglement ; pendant ce temps, travailler plus négativement influence votre équilibre travail-vie personnelle. Enfin, ajouter de nouveaux membres à l’équipe n’aidera pas aussi rapidement que prévu, car il faudra suffisamment de temps pour leur faire comprendre en quoi consiste ce projet et les mettre au courant.
Une autre option que les managers utilisent généralement consiste à pousser une équipe à obtenir des résultats, mais malheureusement, cela ne fonctionne pas aussi bien et conduit toujours à l’épuisement professionnel de l’équipe à long terme. Fixer des délais plus stricts revient presque au même.
La seule solution parfaite et réalisable est d’arrêter et de changer l’approche. Cela semble facile, mais quelles étapes couvre-t-il ?
#1 Détecter et réparer les goulots d’étranglement
Comme vous pouvez le voir sur la photo, peu importe la robustesse, la rapidité et la rapidité de votre équipe si vous avez un goulot d’étranglement. Toutes ces ressources n’auront aucune chance d’être déplacées de la gauche vers la droite. Si ces cercles sont des tickets, le goulot d’étranglement illustre la performance de l’équipe.
Ainsi, si vous avez une performance d’équipe lente ou un tel goulot d’étranglement, vous n’aurez aucune chance de travailler efficacement.
Exemples de goulots d’étranglement
Technique:
- Flux de livraison ;
- Flux d’intégration ;
- Flux de déploiements ;
- Exigences de faible qualité.
Non technique :
- La ruée vers les e-mails, les DM et les appels quotidiens/hebdomadaires, qui gaspillent une énorme quantité de ressources.
- Différents fuseaux horaires.
- Long processus d’approbation. À titre d’exemple de résolution de ce goulot d’étranglement, nous pourrions avoir l’approbation du client pour traiter de petites demandes en moins de 2 heures sans attendre l’approbation de sa part.
- Rôle d’équipe surchargé (chef de projet, responsable technique, développeur frontend, développeur backend). Pour éliminer ce problème, vous pouvez utiliser un chat/canal général où toutes les parties prenantes sont rassemblées et toutes les demandes sont traitées.
- Allocation multi-projets. Si nous parlons de projets de dotation en personnel ou d’externalisation, les développeurs sont généralement affectés partiellement à quelques projets à temps partiel. C’est pourquoi si un développeur travaille pendant la première partie de la journée tandis qu’un autre ingénieur travaille pendant la deuxième partie de la journée, il n’a pas d’intersection, ce qui peut entraîner un retard d’au moins une journée. Il devrait être escaladé et fixé par un responsable pour allouer du temps de travail aux membres de l’équipe à des heures similaires.
#2 Bâtir la confiance (100 % de transparence)
Suivez trois étapes si vous voulez que votre client vous fasse confiance :
- Afficher les résultats chaque jour/semaine. En permanence.
- Évitez les chats sans clients ni DM. C’est une erreur très courante causée par la peur de la transparence. Créez un canal unique avec le client et votre équipe pour permettre de voir la progression exacte, en choisissant le moyen le plus pratique de vérifier ce qui se passe : soit sur Jira, soit dans le chat. En outre, vous pouvez identifier rapidement un client et demander de l’aide si nécessaire, ce qui peut également constituer un autre moyen de retarder la résolution des goulots d’étranglement.
- Simplifiez le processus de déclaration. Lorsque vous avez un projet très complexe avec de nombreux tickets, demandes ou modifications, créez un document Google avec les colonnes suivantes : nom du ticket, état du ticket et commentaire pour gagner du temps.
#3 Gérer les attentes
- Livrez à temps ou au moins répondez aux attentes.
- Répondre aux attentes de l’équipe et des clients.
- Soyez proactif (offrez des options, pas des questions).
Bien sûr, vous n’aurez pas la possibilité de tout livrer à temps, car quelque chose de grave pourrait arriver, comme recevoir une demande urgente d’une autre partie de l’équipe, le site Web pourrait être indisponible pendant 30 minutes et vous devrez enquêter sur ce qui passé. Mais si vous escaladez à temps et fournissez à votre client des informations précises, vous mettrez à jour, modifierez ou gérerez ses attentes. La vérité est que lorsqu’un client reçoit ce à quoi il s’attend, il est absolument satisfait. Sinon, il n’y a pas d’autres moyens de les rendre heureux.
#4 Résoudre les problèmes d’entreprise et d’équipe
Lorsque j’ai commencé à travailler en tant que chef d’équipe, j’avais du mal à recevoir des problèmes, des problèmes, des bloqueurs, etc., que j’ai reçus beaucoup du client ou de l’équipe de développement, et je me sentais vraiment confus.
Vous pouvez convertir n’importe quel type de problème en tâche. Pensez à créer un ticket d’amélioration, attribuez-le aux développeurs, trouvez la meilleure solution, soyez proactif, fournissez à votre client une excellente solution et améliorez le fonctionnement du site Web.
#5 Améliorer l’efficacité de l’équipe
- Améliorez la vélocité, la vitesse et la capacité de votre équipe; alors seulement concentrez-vous sur vous-même. Si vous vous concentrez uniquement sur l’amélioration de vos compétences et de votre rapidité, alors une équipe et un client auront du mal puisque vous avez huit heures par jour ou même moins, alors que votre équipe a 25 ou 40 heures, vous devez donc allouer des billets à l’équipe et veiller à améliorer leur qualité et leurs performances.
- Simplifiez les flux de travail. Le fait est que les processus de développement de logiciels sont complexes et consistent en de nombreux systèmes et flux de travail (développement, support, intégration, livraison). Vérifiez tous ces flux et assurez-vous que vous n’en manquez aucun et qu’ils sont tous bien décrits. S’il vous plaît, passez votre temps, concentrez-vous et améliorez-vous. De ce fait, à chaque fois qu’un onboarding a lieu, vous passerez quelques heures voire quelques minutes si les étapes des processus sont bien définies.
Écoutez toujours les idées des membres de votre équipe, car beaucoup d’employés travaillaient sur d’autres projets intéressants et avaient beaucoup de bonnes idées. Mettez quelques notes, créez un backlog d’idées et essayez d’ajouter au moins un élément par semaine, et vous verrez le résultat et l’efficacité.
Idées supplémentaires
Concentrons-nous sur d’autres idées supplémentaires qui peuvent aider avec un impact similaire.
Commencez par auditer
Lorsque vous commencez à développer un nouveau projet, veuillez ne pas ignorer un audit. Vous devez comprendre où vous en êtes, toute la feuille de route et les prochaines étapes, ainsi que les objectifs fixés par le client. Veuillez également consulter non seulement les tickets ou les spécifications, mais également tous les types de flux (onboarding, dev, support). Si vous sautez cette étape, vous n’aurez pas assez de contrôle sur la situation ou une chance de partager votre préoccupation à l’avance avec le client.
Automatiser les routines
Bien sûr, nous avons des processus réguliers et récurrents pour chaque projet. Faire le même travail manuellement à chaque fois n’est qu’une perte de temps, de ressources et d’argent. Si vous avez un processus d’intégration, veuillez le documenter une fois et l’ajuster chaque fois que quelque chose change (étapes de déploiement ou étapes pour obtenir le vidage de la base de données).
Sur la base de notre projet actuel, nous avons une automatisation pour la création de vidages de base de données, la désinfection des vidages de base de données, la vérification, une notification des serveurs en cas de problème, etc. Toutes ces automatisations prennent du temps à mettre en œuvre, mais elles en valent la peine.
En ce qui concerne les demandes fréquentes, si vous en recevez beaucoup du client (sur le dernier statut ou les derniers tickets), créez simplement un document et mettez-y toutes ces étapes.
Résoudre les lacunes en matière de propriété et de responsabilité
Parfois, les goulots d’étranglement et les problèmes les plus critiques et les plus douloureux surviennent lorsque deux personnes sont responsables du même type de travail (comme le chef de projet et le chef d’équipe ou les développeurs frontend et backend). Certains tickets sont combinés, et il est difficile de dire s’il s’agit d’un travail de développeur Frontend ou Backend, et dans ce cas, vous devez vous concentrer sur ces éléments, les allouer et les affecter correctement. Si vous voyez un tel écart, en tant que responsable, vous devez définir qui fera ce travail pour éviter de collecter des tickets difficiles et gênants.
De plus, en tant que responsable technique, vous devez être responsable du résultat et de toutes les erreurs de l’équipe. Gardez à l’esprit que si quelque chose de grave se produit, nous devons commencer par combattre les incendies et résoudre un problème, sans rechercher la raison pour laquelle cela s’est produit.
Mettre en œuvre la surveillance à 360°
Si vous avez tout type d’outils disponibles sur votre projet, ou si vous avez la possibilité de demander au client d’acheter des alertes New Relic, Cloudwatch ou Up bots, c’est une bonne idée de recevoir des notifications dès que possible afin que l’entreprise perde moins d’argent en cas de problème. , tandis que vous comprendrez mieux ce qui se passe…