Blog

Développement d’applications mobiles : l’indispensable collaboration !

Développement d’applications mobiles : l’indispensable collaboration !

Le mot « collaboration » vient du latin « cum » qui signifie « avec » et du verbe « laborare » qui veut dire « travailler, faire des efforts, prendre de la peine ». La collaboration est donc l'action de collaborer, de coopérer, de travailler « dur » avec une ou plusieurs autres personnes, en vue d’un objectif commun.

En Agilité, la collaboration est une valeur clé. Il s’agit de la collaboration,

  • entre l’équipe en charge du développement (qu’elle soit interne ou externe) et le client (entreprise ou service à l’origine de la demande) ;
  • entre individus, au sein même de l’équipe de dev ;
  • entre individus, au sein de l’équipe projet chez le client.

En Agilité, on parle donc beaucoup de collaboration, mais qu’en est-il réellement ? Car il ne suffit pas de dire qu’on collabore pour collaborer (un peu comme Monsieur Jourdain* qui fait de la prose sans le savoir). Alors,

  • Comment collabore-t-on dans un projet de développement d'applications mobiles ?
  • Pourquoi collabore-t-on ? Quels bénéfices en attendre ? Et gagne-t-on (vraiment) du temps à collaborer ?

C’est à ces questions que nous nous proposons de répondre dans la suite de cet article.

 

Comment collabore-t-on dans un projet de développement d'applications mobiles ?

Tout d’abord, collaborer ne se décrète pas. Cela s’organise !

 

Collaborer, c’est commencer par s’entendre sur un objectif commun.

Autrefois, lorsque le développement s’appuyait sur les méthodes dites en « v » ou en « cascades », le client rédigeait un cahier des charges complet qu’il fournissait au prestataire ou aux équipes de développement internes. Ces approches ne permettaient pas réellement de « collaborer » avec le client tout au long du développement. Et il arrivait fréquemment qu’il y ait un écart notable entre le « produit fini » et ce qui était attendu par le client.

L’agilité remédie à cette problématique en permettant au client d’intervenir tout au long du développement. Si l’approche agile est plus souple que les anciennes méthodes, elle nécessite tout de même d’établir entre le client (Maîtrisé d’ouvrage ou MOA) et l’équipe de développement (Maîtrise d’œuvre ou MOE), un « contrat agile » définissant :

  • l’objectif et le cadre du projet,
  • ses « exigences » (en termes de ressources, de délai de réalisation, de budget…)
  • son « périmètre fonctionnel » exprimé en terme de « User stories » ou d’histoires utilisateurs. Dans le cas où le client éprouve une difficulté pour préciser et prioriser ses besoins, la mise en œuvre d’ateliers de co-création (Design Thinking), intégrant toutes les parties prenantes du projet peut faciliter ce cadrage fonctionnel.

Le contrat agile prévoit que le périmètre fonctionnel puisse fluctuer de manière à prendre en compte les idées (améliorations ou nouvelles fonctionnalités) qui surviennent en cours de route.

Cependant, les modalités de cette « fluctuation » sont à expliquer en toute transparence au client, afin de cadrer d’éventuelles dérives (et ne pas impacter le budget ou le planning). Notamment, le périmètre fonctionnel de l’appli peut évoluer en cours de développement, mais le périmètre d’un sprint ne peut pas évoluer en cours de sprint.

Dans ce cadre, il est important d’inclure dans les réunions intermédiaires tout au long du développement, les utilisateurs (qui sont centrés sur leurs besoins et leurs attentes) mais aussi le(s) commanditaire(s) qui veille(nt) au respect des exigences du projet.

On comprend donc ici que la collaboration dans un projet Agile nécessite d’instaurer transparence et confiance dans la relation entre l’équipe de développement et le client. Pour ce faire, il faut « configurer la communication » dès le départ, c’est-à-dire définir et partager ses règles.

 

Collaborer, c’est définir et partager des règles de fonctionnement

Collaborer avec le client

Comme nous l’avons vu, l’agilité implique une collaboration en continu entre le client et les équipes de développement. Pour la rendre efficace et productive, il est important d’observer une certaine discipline et de préciser :

  • qui sont les interlocuteurs chez le client (Product owner, utilisateurs Métier, décideur…)
  • quel est leur rôle et
  • de quelles informations ils doivent être destinataires ;
  • enfin, quels sont les moyens de communication qui seront utilisés,
  • quand et
  • par qui cette communication est mise en œuvre (Scrum master).

Les outils sur lesquels s’appuient la collaboration entre l’équipe de dev et le client sont :

  • Le « backlog » qui est la liste ordonnancée (ou priorisée) de toutes les User stories de l’application à développer
  • Les wireframes (représentation filaire d’une interface) et les mockups (prototype plus ou moins abouti de l'application) permettant de visualiser le parcours utilisateur de l’application mobile, avant même que les développeurs n’aient commencé à travailler
  • Les versions intermédiaires de l’application

Dans les règles de fonctionnement de cette collaboration, l’équipe de développement s’engage à :

  • impliquer le client en lui livrant régulièrement des portions « viables » de l’appli mobile pour qu’il en visualise l’avancée et se projette dans son utilisation ;
  • prendre en compte ses commentaires ou améliorations demandées au fur et à mesure qu’elles surviennent, dans le cadre du contrat agile défini au préalable (à « iso » budget et sans changer le planning). Cela signifie que si une adaptation ou une nouvelle fonctionnalité apparaît, elle pourra donner lieu à une négociation et venir, par exemple, remplacer une fonctionnalité prévue non encore développée et de moindre priorité.

 

Collaborer au sein de l’équipe de dev

Au sein de l’équipe de développement, le fonctionnement de la collaboration s’appuie sur des outils, des pratiques et une organisation spécifiques, favorisant l’entraide, l’échange d’information, la levée de doutes, la résolution constructive des problèmes rencontrés et l’amélioration continue :

  • Utilisation d’outils de gestion de projet informatique pour planifier et faciliter la collaboration au sein de l’équipe de dev.(ex. Jira) Capture d’écran d’un projet Jira
  • Mise en œuvre de pratiques permettant d’enrichir la qualité des développements et de déceler les imperfections (programmation en binôme ; revue de code) ; de capitaliser sur les connaissances de chacun (quelle que soit l’expérience des uns et des autres) ; de favoriser la communication entre les individus ; de permettre de faire émerger et de partager les bonnes pratiques
  • Organisation des « rituels » propres à l’agilité : réunions de lancement de Sprint (qui permet au scrum master de planifier le sprint avec l’équipe de développement) ; scrums (réunions quotidiennes de courte durée) permettant à l’équipe de faire le point sur les travaux réalisés la veille et de planifier ceux de la journée ; rétrospective (réunion qui se déroule à la fin d’un sprint) pour analyser le travail réalisé, évaluer la collaboration pour l’enrichir ou l’améliorer.

 

Quels bénéfices attendre de cette collaboration ? Et gagne-t-on (vraiment) du temps à collaborer ?

Mettre en place la méthode Agile et les outils permettant de faciliter la collaboration des différentes parties prenantes peut sembler chronophage ; il pourrait même arriver que les urgences et la pression qu’elles engendrent fassent apparaître les rituels de l’agilité comme non prioritaires.

Pourtant, il est important de ne pas y déroger au risque de provoquer des pertes de temps beaucoup plus importantes encore.

Les autres bénéfices qu’apporte la collaboration sont :

  • La capacité de se mettre à l’écoute du client, au plus près de ses besoins
  • La rapidité de mise à disposition d’un MVP (Minimum Viable Product) répondant aux besoins prioritaires du client et lui permettant de se projeter très vite dans l’utilisation du produit ;
  • Une meilleure capacité pour l’équipe de développement à appréhender et à gérer les risques et les incertitudes liées au projet de développement mobile : en effet, l’équipe adopte une posture souple et adaptable pour prendre en compte les changements en cours de développement, tout en restant dans le cadre sécurisant du contrat agile ;
  • Le partage en toute transparence auprès de toutes les parties prenantes, d’une vision claire de l’état d’avancement du projet ;
  • La capacité à livrer vite et de manière cadencée des releases, tout en maintenant un haut niveau de qualité des livraisons.

*Monsieur Jourdain est un personnage de la comédie-ballet « Le Bourgeois Gentilhomme », de Molière

 

+d’infos :

 

Vous avez un projet de développement d'application mobile ? N’hésitez pas à nous contacter.