Qu’est-ce qu’Agile ?
Agile est un terme utilisé pour décrire les approches du développement logiciel mettant en avant la livraison incrémentale, la collaboration au sein de l’équipe, la planification continue et l’apprentissage. Agile s’apparente moins à un processus qu’à une philosophie ou une approche de la planification du travail qu’une équipe doit réaliser. Basé sur le développement itératif, il aide l’équipe à mieux planifier et gérer les changements qui se produisent inévitablement au cours du développement logiciel. Nous allons écouter la discussion que Mara et Andy ont eue après le développement de la dernière version.
Selon elle, Mara a réussi à susciter un peu d’intérêt de l’équipe pour DevOps, ce qui est encourageant, mais les progrès se sont arrêtés là. L’équipe était trop occupée à corriger les bogues dans la dernière version pour pouvoir réfléchir à autre chose.
Souvenez-vous qu’Irwin, le responsable produit, avait transmis à l’équipe des commentaires des clients plutôt critiques sur le site web du jeu de course. Résoudre les problèmes remontés n’a pas été une mince affaire. Andy et Mara devaient écrire le code, puis le transmettre à Amita, la testeuse. Amita n’arrêtait pas de trouver de nouveaux bogues et de renvoyer le code pour correction. Le serveur de builds a planté. Tim n’a pas pu mettre en production le site web du jeu, alors même que les phases de développement et de test étaient terminées. Tout le monde a travaillé de longues heures, y compris durant plusieurs week-ends.
Après avoir réussi à livrer la version, Mara et Andy prennent un café ensemble. Ils sont tous deux fatigués. Mara est découragée, mais Andy a une attitude toute différente.
Andy : Je ne comprends pas pourquoi vous êtes surprise. Sortir un logiciel est difficile. C’est toujours un long et dur travail. Avez-vous déjà expérimenté une autre façon de faire ?
Mara : Oui, et je pense que nous pourrions simplifier les choses ici également. J’ai la ferme conviction que DevOps serait utile.
Andy : Je me souviens que nous avons fait un exercice de cartographie de flux de valeurs, mais quelle est l’étape suivante ? Il faut que nous soyons prêts à démarrer à la prochaine version. Je pensais que nous avions fait le tour de DevOps.
Mara : Il nous reste beaucoup de choses à faire. Je pense que nous devrions essayer la première étape et faire un peu de planification Agile. Nous pouvons utiliser Azure Boards pour nous aider.
Andy : Qu’entendez-vous par Agile ?
Mara : Agile est une approche du développement logiciel. Le terme « Agile » a été employé pour la première fois en 2001 dans le manifeste Agile. Le manifeste a établi plusieurs principes directeurs pour avoir une meilleure approche du développement logiciel. Le manifeste indique ceci :
Nous valorisons :
- Les individus et les interactions plutôt que les processus et les outils
- Les logiciels opérationnels plutôt qu’une documentation exhaustive.
- La collaboration avec les clients plutôt que la négociation de contrat.
- L’adaptation au changement plutôt que le respect des plans
Andy : Écoutez, si vous connaissez une solution magique pour me faciliter la vie, je suis totalement pour. Mes enfants sont généralement déjà au lit quand je rentre du travail. Je ne vois pas comment faire autrement sans solutions concrètes.
Mara : Ce n’est pas magique, mais nous pouvons le faire petit à petit. Azure DevOps nous donne les outils dont nous avons besoin pour implémenter des pratiques Agile. Pour l’instant, nous pouvons utiliser Azure Boards pour notre planification. Tout d’abord, pouvez-vous m’expliquer le processus de build et m’aider à identifier les gros problèmes ?
Après plusieurs cafés, Mara et Andy sont parvenus à identifier les plus gros problèmes dans le processus de build. Tous les problèmes se sont produits lors de la dernière version. Après le départ d’Andy, Mara examine ses notes griffonnées et décide d’effectuer un peu de planification Agile toute seule. Elle choisit d’utiliser le processus De base dans Azure Boards pour centraliser tous les problèmes.
Elle montrera ensuite son tableau à l’équipe et essaiera de les faire participer au processus.
Recommandations pour l’adoption de l’approche Agile
L’équipe se prépare à faire ses premiers pas avec l’adoption de l’approche Agile. Voici quelques recommandations générales pouvant aider n’importe quelle équipe à intégrer l’approche Agile à son organisation.
Créer une structure organisationnelle compatible avec les pratiques Agile
L’adoption de l’approche Agile peut s’avérer difficile pour la plupart des organisations. Cela implique non seulement un changement d’état d’esprit, mais également une évolution culturelle pouvant remettre en cause de nombreux processus et stratégies de l’organisation. D’habitude, la plupart des entreprises utilisent une structure d’équipe horizontale. Dans la pratique, cela signifie que les équipes sont structurées suivant l’architecture logicielle. Par exemple, une équipe peut être responsable de l’interface utilisateur d’une application, une autre équipe responsable des données et une troisième équipe responsable de l’architecture orientée services.
Les équipes verticales produisent cependant de meilleurs résultats pour les projets Agile. Les équipes verticales couvrent l’ensemble de l’architecture et sont alignées sur les résultats du produit. Une équipe, composée de membres issus des trois des disciplines mentionnées précédemment, peut être par exemple responsable de la partie e-mail de l’application. La structure d’équipe verticale offre un autre avantage : la mise à l’échelle s’effectue par ajout d’équipes.
Former les membres d’équipe aux techniques et pratiques Agile
Quand elles commencent à adopter les techniques et pratiques Agile, certaines équipes décident de faire appel à des formateurs externes. Ceux-ci peuvent même travailler avec plusieurs équipes pour éliminer les obstacles et les silos organisationnels. Ils ont donc souvent des compétences en formation et en management. Ils peuvent également former des membres de l’équipe aux techniques Agile, par exemple à la tenue de réunions debout et à la synthèse de réunions. Cependant, au fil du temps, il est important que les membres de l’équipe développent une capacité à s’entraider. Ceci signifie que la majeure partie du travail doit être effectuée de manière collaborative et non par des individus travaillant seuls la plupart du temps.
Favoriser la collaboration au sein des équipes et entre les équipes
Si la collaboration est la clé pour réussir avec Agile, quels sont les différents moyens de l’encourager ? Voici quelques idées.
Changement culturel
Certains points essentiels doivent être pris en considération quand un changement culturel est nécessaire. Il est important que les membres d’équipe disposent d’un environnement de travail calme et confortable. Ils ont besoin d’espaces silencieux où ils peuvent se concentrer sans être dérangés.
Les réunions font partie de la vie professionnelle et peuvent parfois donner l’impression qu’elles empiètent sur le temps de travail de chacun. Pour permettre aux membres d’équipe de mieux contrôler leurs activités, il est important de fixer un agenda et des temps de réunion stricts.
Certains se sentent submergés par les communications asynchrones comme les e-mails et les messages, et pensent même qu’ils doivent y répondre immédiatement. Expliquez clairement que toutes ces communications n’impliquent pas de réponse immédiate.
Le télétravail est devenu la norme dans de nombreuses entreprises. Chacun doit se sentir à l’aise avec les autres membres de son équipe et les traiter de la même manière qu’ils travaillent au bureau ou à distance. Une collaboration axée sur la communication doit s’inscrire dans l’ADN de l’organisation.
On ne saurait trop insister sur l’importance d’une bonne communication, même en cas de désaccords. La résolution des conflits doit être une compétence de toute équipe Agile.
Équipes polyvalentes
S’il est essentiel que les membres d’une équipe travaillent en collaboration, il est tout aussi important que les différentes équipes collaborent entre elles. Les équipes polyvalentes favorisent l’apport de nouvelles compétences et perspectives, qui peuvent accroître la capacité de chacun à résoudre les problèmes de façon créative. Les équipes polyvalentes contribuent également à renforcer la cohésion de l’ensemble de l’organisation. Elles sont moins sujettes aux conflits et encouragent les membres à se projeter dans un objectif commun.
Outils de collaboration
Avec les bons outils, vos membres d’équipe Agile pourront collaborer plus efficacement, non seulement au sein de leur équipe, mais également avec les autres équipes. Voici quelques suggestions d’outils pour vous permettre de démarrer :
- Microsoft Teams : Cette application offre un espace de travail pour la conversation instantanée, les réunions, les notes et le stockage de fichiers.
- Skype : Skype est un excellent outil polyvalent et facile à utiliser. De nombreuses personnes l’ont déjà installée.
- Slack : Slack offre de nombreux canaux de communication distincts au sein d’une interface unique. Vous pouvez organiser ces canaux de nombreuses façons, notamment par projet, par équipe ou par thème. Les conversations sont conservées et peuvent faire l’objet d’une recherche. L’ajout de membres d’équipe internes et externes s’effectue de façon simple. Slack s’intègre directement à de nombreux outils tiers comme GitHub pour le code source.
Google Hangouts, Asana, Trello, GoToMeeting et monday.com sont d’autres outils courants. Essayez de vous familiariser avec ces différentes options pour déterminer celles qui répondent aux besoins de votre équipe et de votre entreprise.