Points Clés
- Avoir des processus de test non unifiés peut accélérer le développement, augmenter l'autonomie de l'équipe et mieux répondre aux besoins de l'équipe, mais cela peut également créer de la confusion, des demances râtées et un sentiment d'isolement parmi les équipes lorsqu'elles ne sont pas bien faites.
- Les processus individuels profitent non seulement à l'équipe qui les met en œuvre, mais également à vos clients, à d'autres équipes de développement et à votre entreprise en général car ils augmentent l'efficacité et la qualité.
- Les processus individuels peuvent ne pas fonctionner pour tout le monde. Le contexte de votre équipe et de votre produit détermine si les processus individualisés vous conviennent ou pas. Si vous comprenez les exigences produit/contractuelles et les compétences de votre équipe, vous pouvez faire en sorte que tous les besoins soient satisfaits et ainsi rendre possible cette hausse de la productivité.
- En mettant en œuvre des processus de manière itérative, en réduisant les lacunes dans le processus actuel, enfin en répétant correctement ces tâches à une cadence régulière, vous augmentez les chances de succès et réduisez les possibles répercussions négatives.
- En mettant en place des pratiques telles que des communautés de pratique, un programme d'observation et une documentation à jour, vous pouvez faire en sorte que les processus individuels aient un impact positif sur votre entreprise et réduire le risque de confusion ou tout autre impact négatif.
On demande souvent aux gens qui travaillent dans l'industrie du logiciel - en particulier du côté des tests - : "Alors, c'est quoi votre processus de test *insérez le nom de l'entreprise ici* ?" Les gens veulent savoir comment vous fonctionnez au sein de votre entreprise ; par pure curiosité, c'est aussi une façon pour eux d'ajuster leurs compétences, ou pour y découvrir des situations que vous pourriez peut-être résoudre en changeant "juste une chose". Mais que se passe-t-il lorsque la réponse est « Cela dépend » ?
De nombreuses entreprises de l'industrie du logiciel ont mis en place des procédures qui sont utilisées par l'ensemble de l'entreprise. Il y a une approche spécifique qu'il est nécessaire de suivre pour le développement, les tests, le déploiement etc. Mais la plupart du temps, il existe un processus défini pour chaque "étape". Le problème c'est que chaque équipe n'est pas la même, alors pourquoi les méthodes sont-elles toutes identiques ?
Dans cet article, nous allons analyser les procédures individuelles composées à partir du cadre professionnel et de l'équipe elle-même et ce qu'elles peuvent apporter aux équipes. Que veut dire avoir des processus différents? Qu'allez-vous y gagner (ou perdre) en utilisant cette approche ? Comment peut-on déterminer s'il convient à votre entreprise ? Par où commencer si vous souhaitez évoluer vers des procédures individuelles ? Et comment devez-vous préparer votre entreprise pour réussir tout en vous éloignant d'une approche unifiée ? Ceux sont là toutes les questions auxquelles nous allons répondre dans les prochaines parties.
Que veut dire exactement processus d'équipe individuelle ?
Les processus d'équipe individuelle sont des processus qui sont spécifiques au contexte et aux besoins d'une équipe donnée. Chaque équipe est unique ; de part le travail qu'elle exerce et des personnes qui composent cette équipe. Il existe des contextes et des compétences qui varient d'une équipe à l'autre au sein d'une même entreprise. C'est pour cette raison qu'avoir un ensemble de processus suivi par chaque équipe peut être préjudiciable.
Un exemple évident c'est la différence entre une équipe qui travaille sur l'interface utilisateur et une équipe backend. Ces deux équipes ont des exigences différentes et des résultats attendus différents. Le processus de l'équipe de conception de l'interface utilisateur peut inclure une étape autorisant le concepteur à examiner les nouveaux composants de l'interface utilisateur mais qui est ignoré par l'équipe backend. Pendant ce temps, l'équipe backend peut avoir des exigences en matière de tests de sécurité correspondant à différents types d'attaques, tests qui ne seraient pas réalisés par l'équipe qui travaille sur l'interface utilisateur. En les laissant définir les procédures qui ont du sens pour eux, ils peuvent veiller à ne pas perdre de temps et se concentrer pour identifier leurs propres lacunes et améliorer leurs processus lié au contexte.
Il est également important que ces processus aient la capacité d'évoluer dans le temps. Au fur et à mesure que les priorités d'un projet changent ou que les membres qui composent une équipe changent, leurs processus doivent changer également. Si on donne aux équipes l'autonomie nécessaire pour contrôler leurs processus, on peut les revoir régulièrement et ainsi leur permettre d'apporter les changements nécessaires afin de s'assurer qu'il n'y ait pas de problèmes particuliers qui viendraient ralentir leur travail. Cela garantit l'efficacité qu'ils su gagner et qu'ils garderont dans la durée.
Une chose importante à noter à propos des processus d'équipe individuelle c'est qu'ils ne doivent jamais être complètement uniques. Il y aura toujours des croisements entre les équipes dans certains domaines. Par exemple, chaque équipe doit avoir dans son processus de développement, son code révisé par un autre membre de l'équipe. Il s'agit très probablement d'une exigence organisationnelle dans la plupart des entreprises. Cela va donc apparaître dans le processus de chaque équipe, ce qui ne signifie pas que les équipes n'ont plus de processus individuels ; cela signifie simplement qu'il existe encore des aspects communs pour un meilleur alignement organisationnel. C’est parce que les éléments, qui ne sont pas obligatoire au cadre professionnel de l’équipe, sont ajoutés et supprimés que le processus individuel est rendu possible.
Quels sont les risques avec cette approche ?
Bien qu'il existe d'autres risques sur lesquels nous devons travailler à partir du processus d'équipe individuelle, le plus important reste néanmoins le manque d'alignement organisationnel. Par exemple, vous pourriez avoir des équipes tellement concentrées sur leur propre processus et convaincues d'être les seules à l'utiliser qu'elles tentent un "nouveau" cadre de test mais ne partagent pas cette information. Vous pourriez avoir une autre équipe qui fait la même chose en redoublant d'effort et qui ne partage aucune des leçons apprises, tels que des défis, des trucs et astuces, etc.... pour mettre ce cadre en place et le faire fonctionner. Il est important de faire comprendre aux équipes qu'elles ont la possibilité de choisir les processus qui leur conviennent et que ces processus ne doivent pas être obligatoirement de nouveaux processus. Apprendre des autres équipes, savoir tirer parti de leurs idées et mettre en place des processus qui ont été testés et approuvés, aide tout le monde et peut toujours être adapté à votre équipe mais aussi à celles des autres. En effet, il devient vite plus nuisible que bénéfique sans cette collaboration et le partage des processus individuels. Nous analyserons plus loin comment les mettre en place pour réduire encore plus ce risque.
Certains risques, qui valent pourtant la peine d'être pris en compte, sont vus comme un manque potentiel de transparence dans les processus, telle que la confusion des équipes lorsque vous modifiez les processus, l'augmentation du temps de montée en puissance pour les mouvements inter-équipes et la difficulté à suivre les demandes d'audit. Certains de ces risques sont particulièrement répandus dans les entreprises notamment celle qui ont des obligations contractuelles strictes. Pour des choses comme les demandes d'audit loupé, vous pouvez toujours vous assurer qu'elles sont présentes dans tous les processus, de la même manière que j'ai mentionné ci-dessus la nécessité de revoir le code. La plupart des autres risques s'alignent également sur le manque de collaboration, aussi, si vous vous assurez que les informations sont bien partagées et que les équipes discutent entre-elles, vous pouvez également gérer ces risques. Bien qu'ils s'ajoutent au travail demandé pour faire fonctionner les processus individuels, cela peut toujours se faire si c'est ce à quoi l'équipe s'est engagée.
Quels sont les avantages des processus d'équipe individuelle ?
Ces processus spécifiques au contexte tel que présenté représentent des avantages non négligeables dont les équipes peuvent tirer profits. En effet, cela passe par une efficacité accrue, dont l'entreprise et les clients en bénéficient, à un sentiment d'appartenance pour les contributeurs individuels d'une équipe, et qui profite à la satisfaction et à la croissance des employés.
Si on laisse les équipes s'approprier les processus plus souvent et si on leur donne l'occasion de s'exprimer sur la mise en place de ces processus qui font partis de leur quotidien, on constate généralement une amélioration de la qualité des fonctions qui sont produits, une augmentation de leur efficacité, une satisfaction réelle et moins de frustration sur des processus qui ne s'alignent pas et ne correspondent pas à leurs besoins. De nouvelles approches innovantes peuvent être adoptées en termes d'outil et de cadre de travail leur permettant d’étudier plus facilement ces processus et d’ajouter de la flexibilité pour les ajuster au mieux aux modifications. Cette liste n'est pas non plus exhaustive. Ce sont les points communs que j'ai pu constater auprès de presque toutes les équipes avec lesquelles j'ai travaillé sur cette approche. Néanmoins, certaines équipes y voient leurs propres intérêts comme le fait de pouvoir communiquer plus facilement au sein de l'équipe, d'avoir des objectifs alignés bien meilleurs, etc.
Pour moi, le plus grand avantage que je vois pour les équipes c'est la réduction des frictions lors de discussions sur les tests et la qualité. Lorsque les exigences en matière de test et de qualité correspondent au contexte du travail réalisé par l'équipe, elles sont alors beaucoup plus ouvertes à ces processus. Les équipes comprennent le pourquoi des approches que nous adoptons et cela permet d'avancer beaucoup plus facilement. J'ai constaté un changement très positif dans l'attitude des équipes vis-à-vis des processus de test notamment lorsque les équipes sont capables de déterminer les processus qui ont du sens et qui fonctionnent.
Comment savoir si les processus d'équipe individuelle conviennent à mon équipe ?
Déterminer si les processus individuels sont le bon choix ou la bonne solution pour votre équipe est une étape cruciale. Peu importe à quel point ils peuvent sembler intéressants ou à quel point vous êtes enthousiaste à l'idée de les mettre en œuvre, il est important de prendre en compte le contexte actuel de l'entreprise et des équipes qui la composent avant de tenter de passer à des processus d'équipe individuelle. Donc, je vais commencer par parler de certains indicateurs potentiellement mauvais.
Certains indicateurs que j'ai vus et qui étaient utilisés pour les processus d'équipe individuelle au sein d'une entreprise et qui ne fonctionnent pas bien sont : avoir des obligations contractuelles strictes, avoir des processus en cascade stricts, avoir une structure étroitement couplée et avoir des problèmes de communication inter-équipes. La raison pour laquelle ils sont généralement considérés comme les plus grands signaux d'alerte pour les équipes c'est quand vous avez des processus et des demandes plus stricts. On peut facilement oublier quelque chose notamment si les équipes travaillent en fonction de leurs propres processus qui est spécifique à leur environnement. Surtout s'il existe déjà des problèmes de communication au sein d'une entreprise, les équipes peuvent ne pas comprendre pourquoi certains points du processus doivent être maintenus dans chaque équipe et pourraient les supprimer, ce qui peut avoir des conséquences à grande échelle.
Par exemple, une entreprise qui travaille avec des fichiers de données médicales sur la base de réglementations gouvernementales. En effet, pour éviter tout problème de confidentialité, il est important de suivre des processus très stricts. Les entreprises dont les structures sont liées entre-elles peuvent également rencontrer des problèmes notamment quand les équipes ne suivent pas les processus demandés, et qui peut être aggravé par un manque de communication. Pour que les équipes de cette configuration puissent prospérer grâce à des processus d'équipe individuele, il doit y avoir un niveau de communication très sain entre toutes les équipes
Maintenant que j'ai parlé de situations où les processus individuels ne sont pas forcément les mieux adaptés, comment savoir quand ils le seront ? Les indicateurs les plus performants pour savoir si les processus individuels sont parfaitement adaptés sont : avoir des équipes autonomes et performantes, avoir ou évoluer vers une structure découplée, avoir des équipes frustrées car incapables d'essayer de nouveaux processus et avoir des équipes qui ont déjà commencé à faire ça.
Je vais commencer par creuser ce dernier point. Dans de nombreux cas, les équipes le font déjà d'une manière ou d'une autre. Si la méthode est utilisée à l’échelle de l’entreprise et que certains aspects ne s’appliquent pas aux équipes, les nouveaux employés peuvent sauter cette partie ou bien s’ils parlent souvent de choses qui ne s’appliquent pas à eux. Cela signifie que l'équipe détermine ses propres processus mais sans pour cela en faire une pratique courante. Il l'utilise surtout pour identifier les lacunes dans le processus existant et apporter les modifications nécessaires répondant au mieux à leurs besoins. Cela montre clairement à quel point ils pourraient profiter de processus individuels.
Vers des processus d'équipe individuelle
Si vous accordez un essai au processus d'équipe individuelle, je vous suggère fortement de les accompagner dans leur travail. Se précipiter et laisser les équipes définir ses propres processus peut entraîner des risques comme évoqués précédemment. En évoluant lentement vers cette approche, vous pouvez identifier les problèmes et les résoudre tout en travaillant à cet objectif.
La première étape consiste à définir le processus actuel. En s'assurant que tout est bien défini, l'approche actuelle permet aux équipes d'identifier les problèmes au sein des processus ou d'identifier les besoins qui nécessitent d'être ajoutés aux processus. Une fois le processus à l'échelle de l'entreprise défini, les équipes doivent l'examiner et ajouter à cette stratégie toutes les étapes supplémentaires nécessaires pour combler les problèmes identifiés. Une fois terminé, les équipes doivent partager ces besoins avec les autres équipes et déterminer si ça peut profiter à d'autres équipes.
Une fois que les équipes sont à l'aise avec l'approche organisationnelle et leurs spécialisations, elles peuvent commencer à travailler sur la suppression des éléments. Elles peuvent le faire en réexaminant le processus d'équipe actuelle, mais cette fois en recherchant les étapes qui ne répondent pas aux besoins ou au contexte de l'équipe et en les supprimant du processus. Une fois ces étapes identifiées par les équipes, elles doivent partager ces modifications avec d'autres équipes afin d'obtenir des retours et s'assurer que ces étapes ne sont pas requises par une obligation contractuelle dont l'équipe n'était pas au courant. À ce stade, les équipes ont un processus d'équipe individuelle qui correspond à leur contexte !
La dernière étape pour les équipes consiste à revoir ces processus régulièrement. En les examinant de façon répétée, les processus peuvent continuer à évoluer au fur et à mesure que l'équipe le fait. Au fur et à mesure que les demandes et les membres de l'équipe changent, assurez-vous que ça correspond bien au contexte. Comme toujours, si des modifications sont apportées au processus, ces mises à jour doivent aussi être partagées avec les autres équipes.
À ce stade, les équipes travailleront en processus d'équipe individuelle. Ensuite, les équipes pourront observer les bénéfices que leur apporte cette approche et s’assurer, avec le support de l’ensemble des équipes, que cette approche fonctionne et que tout le monde travaillent ensemble.
Comment pouvons-nous nous préparer au succès ?
Puisque nous savons les manques de collaboration et de cohésion sont les plus grands risques pour le maintien des processus individuels sains, comment pouvons-nous anticiper sur les risques et nous préparer au succès ? Je le décompose généralement en trois approches : documentation, observation et communauté de pratique.
Avoir une documentation à jour et compréhensible des processus d'équipe est très important. La documentation permet non seulement aux équipes d'en savoir plus sur vos processus, mais également de vérifier que vous êtes tous sur la même longueur d'onde concernant sur les processus que vous avez définis. Il est important pour l'équipe de revoir régulièrement cette documentation et de la maintenir à jour mais aussi de partager les mises à jour lorsque vous y apportez des changements. Par ailleurs, il est important de faire en sorte qu'elle soit dans un endroit accessible au public pour permettre un alignement au sein des équipes.
L'observation est un excellent moyen pour les équipes d'avoir un regard plus personnel sur vos processus et de savoir si elle conviendrait ou non à vos équipes. En demandant à deux personnes de se jumeler et de se suivre pendant qu'elles travaillent dans les processus de développement et de test, vous obtenez une meilleure idée de l'apparence de ces processus en action et cela peut aider à combler les problèmes que vous auriez trouvés dans la documentation qui a été enregistrée.
Le dernier point c'est d'avoir des communautés de pratique. Il s'agit généralement d'un forum ouvert où les individus peuvent discuter autour d'un sujet donné. J'aime diviser les communautés de pratique en communautés spécifiques à un rôle. Il peut donc y avoir une communauté de pratique pour les tests et la qualité, par exemple les équipes peuvent venir partager des idées et des informations sur ces sujets. Elles deviennent un lieu idéal pour les équipes qui peuvent discuter de leurs processus (processus de développement dans une communauté de pratique de développement, processus de test dans une communauté de pratique de qualité, etc.). Ils établissent un espace sécurisé pour parler des succès, des défis, des astuces, etc., et permettent aux autres équipes de voir si de nouveaux processus mis en place par d'autres équipes pourraient également fonctionner pour leur équipe !
Bien que vous ne puissiez utiliser qu'une ou deux de ces approches, j'ai constaté que les résultats étaient plus efficaces quand les 3 étaient utilisées en même temps. Elles permettent aux individus d'en savoir un peu plus sur l'environnement qui lui conviendrait le mieux. Par exemple, certaines personnes apprennent mieux en lisant, d'autres par une conversation en tête-à-tête et d'autres apprécient un groupe plus large pour discuter de ces sujets. En combinant les trois, vous êtes le mieux placé pour réussir !
Alors qu'est-ce que tout cela signifie ?
En fin de compte, avoir des équipes qui travaillent à partir de processus correspondant au contexte de leur travail et de leur équipe comporte de nombreux avantages. Mais, comme beaucoup de choses dans la vie et au bureau, cela demande aussi du travail.
En permettant aux équipes de créer et d'établir des pratiques adaptées à leur contexte, vous garantissez plus d'autonomie à l'équipe mais aussi plus d'efficacité et un travail qualitatif du produit. Cela permet aux processus et aux pratiques utilisées dans une équipe de se développer au fur et à mesure que l'équipe évolue, et aux équipes d'expérimenter et de mieux partager avec les autres équipes de l'entreprise. Les équipes verront également diminuer les demandes qui n'ont tout simplement pas de sens pour ce qu'elles font au quotidien. En se mettant au travail et si vous laissez plus de contrôle, ce sont les collaborateurs, l’entreprise et nos clients qui en bénéficieront.