Nous vivons à une époque où la technologie a évolué bien au-delà du simple divertissement pour devenir une partie intégrante de nos vies. Des applications telles que Waze, Uber, Bolt, Outlook,  Gmail, WhatsApp, Spotify et Apple Pay sont devenues indispensables dans nos routines quotidiennes. Cependant, pour que ces applications soient si efficaces qu'elles apportent une réelle différence dans nos vies, il était nécessaire pour les entreprises de comprendre les "points de douleur" de la société et d'investir du temps et des ressources dans le développement de ces applications.


Quelque chose de fondamental était nécessaire tout au long de ce processus : la communication. C'est précisément ce sur quoi nous nous concentrons aujourd'hui - comment la communication influence le cycle de vie du logiciel et contribue au développement Agile.


Tout d'abord, il est important de comprendre la communication dans sa forme la plus pure. La communication n'est rien de plus qu'un échange d'informations entre deux individus ou plus. Le secret d'une communication réussie réside dans la manière dont l'autre partie reçoit l'information, ce qui est le résultat direct de la clarté avec laquelle elle est transmise - plus c'est clair, simple et détaillé, plus il est facile de l'interpréter et de la comprendre.

 

 

 

Comment appliquer la communication au développement logiciel ?

Nous comprenons maintenant ce qu'est la communication, mais la question demeure : si c'est vraiment le fondement du développement logiciel Agile, pourquoi certains produits ne connaissent-ils pas autant de succès que d'autres ?


Il existe bien sûr de nombreux aspects qui contribuent au succès ou à l'échec d'un produit, mais le fait est que le type de logiciel qui atteint le sommet et devient une référence, comme ceux  mentionnés précédemment, a su appliquer la communication de manière très efficace tout au long du processus de développement.

 

Cette approche va bien au-delà des réunions quotidiennes ou d'autres cérémonies - il est nécessaire d'écouter ce que le client attend, de comprendre la concurrence et de mettre en pratique les idées.

 

Ce processus dépend du niveau d'interaction entre chaque membre de l'équipe et, surtout, entre les personnes clés dont la responsabilité est de s'assurer que chaque membre comprend ce qui doit être fait et comment cela doit être fait.


Le secret ne réside pas dans ce qui est écrit mais dans la manière dont l'information parvient à son destinataire. Surtout dans le domaine du développement, où nous travaillons souvent à distance, il est crucial de s'assurer que les autres comprennent ce qui doit être fait. Par conséquent, une communication constante et détaillée devrait être priorisée.

 

Rôles clés

Pour une communication efficace tout au long du processus de développement logiciel, les participants suivants sont fondamentaux :

  • Product Owner (PO)
    La personne responsable de comprendre ce dont les clients ont besoin et pourquoi ils ont besoin d'une fonctionnalité spécifique. Le PO doit recueillir des informations précises et détaillées - plus il y a d'informations, mieux c'est.

  • Business Analyst (BA)
    Tout comme le PO, le BA doit également comprendre les attentes des clients et est responsable d'intégrer la dimension commerciale avec la dimension technique du développement. Le BA crée des cas d'utilisation, et plus la clarté dans l'écriture de chaque cas et de ses étapes est grande, mieux les développeurs peuvent comprendre ce qui est nécessaire, en assurant que le développement soit étroitement aligné sur les attentes des clients.

  • Designer UX/UI
    Le "magicien" qui donne vie aux rêves. Le designer UX/UI est responsable de la création de prototypes qui garantissent l'identité et la marque du produit, offrant une expérience client agréable, innovante et mémorable. C'est là que le client devient fasciné par le produit, que ce soit par sa simplicité et son innovation ou par la facilité d'utilisation du logiciel.

  • Spécialiste Assurance Qualité (QA) / Testeur
    Le QA joue l'un des rôles les plus cruciaux dans ce flux, garantissant un produit avec le moins d'erreurs possible, en effectuant des tests qui simulent la façon dont le client pense dans différents scénarios, que ce soit manuellement ou automatisé. Le spécialiste QA, après une batterie extensive de tests, donne le verdict sur la préparation ou non du produit à atteindre le client.

 

En plus de ces personnages clés, il est également important de mentionner les Développeurs Back-end et Front-end, les Architectes, les Ingénieurs de Fiabilité du Site (SRE) et d'autres qui  travaillent en coulisse. Ils utilisent leur expérience technologique basée sur les informations transmises par les autres membres pour garantir des applications légères et rapides.


Remarquez que le processus de développement logiciel va bien au-delà d'écouter simplement le client et de commencer immédiatement à développer - il nécessite de passer par certains "filtres" qui explorent des possibilités pour que le produit dépasse les attentes du client. Pour cela, la communication doit être aussi simple et claire que possible.

 

 

Méthodologie et processus Agile

Maintenant que nous avons identifié les roles clés, essayons de comprendre comment les "connecter". Pour cela, nous devons nous plonger dans une méthodologie extrêmement efficace et bien connue dans le monde du développement logiciel : le Manifeste Agile. Au fil des ans, ce document est devenu la bible du développement Agile et est soutenu par quatre valeurs essentielles :

  • Les individus et leurs interactions plus que les processus et les outils 
    Maintenir la communication tout au long du processus de développement logiciel est crucial pour réduire les problèmes potentiels et rapprocher les personnes. Les outils et les processus sont importants mais doivent être utilisés de manière pragmatique.

  • Un logiciel fonctionnel plus qu'une documentation exhaustive 
    Un logiciel entièrement fonctionnel est plus important que de suivre strictement le plan. Un logiciel fonctionnel et sans erreur est le meilleur indicateur d'un excellent travail. Les clients paient pour des résultats, pas pour des plans bien élaborés qui peuvent ne jamais se concrétiser.

  • La collaboration avec le client plus que la négociation de contrats 
    Le client devrait faire partie de notre équipe et jouer toujours un rôle de premier plan. Le but de cette relation est la collaboration. Tout comme une équipe travaille vers un objectif commun, nous devons également nous assurer que nos décisions sont entièrement alignées sur les objectifs du client.

  • Répondre au changement plus que suivre un plan 
    Utiliser les retours d'informations reçus pendant le processus, ainsi que l'analyse des scénarios, est essentiel pour fournir des réponses rapides sur le déroulement des opérations. Cependant, cela ne nous dispense pas d'avoir un plan, qui devrait être prêt pour tout changement.

 

Au sein de la méthodologie Agile, il existe différents cadres de travail qui contribuent à ce processus de développement fluide. Examinons deux des plus populaires.

 

Scrum

Avec un nom dérivé des concepts d'équipe de rugby, Scrum aide à structurer l'équipe en définissant les rôles et les comportements à travers ses trois artefacts : le carnet de produit, le carnet de sprint et l'incrément de produit. Les expliquer brièvement :

  • Product Backlog
    Une liste dynamique de fonctionnalités, de besoins, d'ajustements et de corrections servant de prévisualisation pour le sprint backlog.

  • Sprint Backlog
    Avant tout, un "sprint" est le terme utilisé pour définir le cycle de développement du produit, d'une durée généralement de 30 jours, toujours dans le but de livrer quelque chose qui ajoute de la valeur au client. Par conséquent, le carnet de sprint est la liste des livrables - cas d'utilisation et corrections de bugs - sélectionnés par l'équipe pour être livrés pendant le sprint.

  • Product Increment
    Souvent identifié comme "Terminé", l'incrément est ce qui a été réalisé et est prêt pour la prochaine version du produit.

 

Pour que ce processus fonctionne, certaines rituelles - appelées "cérémonies" - doivent être effectuées pour s'assurer que tous les "engrenages" sont alignés et fonctionnent parfaitement. Parmi les cérémonies figurent le Planning , le Daily, la Review et la Retrospective :

  • Planning
    Où tous les personnages mentionnés précédemment se réunissent pour définir les éléments sur lesquels travailler pendant le sprint, en fonction des priorités de chaque élément.

  • Daily
    Des réunions de 15 minutes tenues chaque jour du sprint en cours pour discuter de l'avancement, des obstacles ou de tout autre aspect pouvant affecter la livraison.

  • Review
    Une réunion où tous les membres présentent ce qui a été réalisé lors du dernier cycle, et le PO décide et formalise ce qui entrera dans la liste pour la prochaine revue.

  • Retrospective
    Le moment où l'équipe se réunit pour analyser les aspects positifs et négatifs qui se sont produits lors du dernier cycle de développement et, à partir de là, apporter des améliorations.

Kanban

Une méthodologie qui fait également partie de l'univers Agile et vise à surveiller et contrôler le processus de développement. Avec cette approche, nous pouvons suivre l'état de chaque tâche et garantir l'efficacité de la livraison, car chaque membre de l'équipe peut travailler sur la même tâche à différents moments.

 

Un excellent outil pour le Kanban, largement utilisé, est Jira, qui facilite l'ensemble du processus et offre d'autres avantages tels que le support pour les tests automatisés, l'Intégration Continue/la Livraison Continue (CI/CD), entre autres.

 

Le flux de travail Kanban fonctionne comme suit :

  •  Après que les étapes ont été définies pour une tâche spécifique, et après les exigences du BA et les maquettes créées par l'UX, la tâche passe du backlog à l'état "En cours", où les développeurs back-end et front-end travaillent.
  • Elle passe ensuite à l'état "Test", où les spécialistes en assurance qualité réalisent une batterie de tests.
  • Elle atteint enfin l'état "Terminé", où après la revue, le PO peut passer à "Terminé" tout ce qui répond aux attentes et est prêt pour la mise en œuvre.

 

Ce processus peut sembler quelque peu chronophage, mais nous avons constaté qu'il est bien détaillé et encourage tous les membres de l'équipe à interagir. Cela facilite la compréhension de ce qui est fait, permet de connaître l'état des livrables, et garantit qu'à chaque nouveau sprint, l'équipe est plus forte et mieux préparée, sur la base des retours de la retrospective.

 

Conclusion

Dans cet article, nous avons vu comment une communication claire et précise peut influencer le développement efficace et rapide de logiciels. Il est à noter que l'interaction doit être constante tout au long du développement d'un produit logiciel (comme le préconise la méthodologie Agile), et plus elle est facile à interpréter, meilleurs seront les résultats et la livraison.

 

En utilisant des méthodologies telles que Scrum et Kanban, ainsi que des rituels tels que la planning, le daily, la reiview et la retrospective, les équipes peuvent maintenir une communication efficace, éliminer les obstacles, et s'assurer que le produit final répond aux attentes des clients.

 

Il est également essentiel d'utiliser des outils tels que Jira pour suivre et contrôler le processus de développement, et de se concentrer sur l'amélioration continue grâce à des rétrospectives régulières.

 

En conclusion, une communication claire et cohérente est la clé du succès dans le développement logiciel Agile, permettant aux équipes de livrer des produits de haute qualité dans des délais rapides et de répondre aux besoins changeants des clients.

Partager cet article