Les méthodes agiles: témoignage d’intoPIX

Les méthodes agiles: témoignage d’intoPIX

Les méthodes agiles: témoignage d’intoPIX

Témoignage de Pascal Pellegrin, Scrum Master chez intoPIX S.A.

Pourquoi mettre en place l’agilité au sein de son entreprise?

« La notion d’agilité dans une entreprise est liée à sa faculté à répondre aux changements. En effet, les besoins fluctuants des utilisateurs, l’environnement du marché, les risques technologiques sont autant de raisons de voir les projets de développement changer de direction.

Les produits sont développés afin de satisfaire des besoins utilisateurs concrets au travers de fonctionnalités. Le développement se veut itératif et incrémental, de nouvelles fonctionnalités étant intégrées au produit au fil du temps. Une fonctionnalité est considérée finie lorsque le développement, le test et l’intégration au produit ont été réalisés. L’avancement du projet de développement se mesure par la quantité de fonctionnalités livrables aux utilisateurs.

Le produit n’est jamais fini mais se voit livré régulièrement aux utilisateurs afin de satisfaire leurs besoins et de recevoir leur feedback. Sont-ils pleinement satisfaits? Doit-on améliorer la fonctionnalité ? Est-ce qu’ils n’ont pas changé d’avis entre temps ou trouvé de nouvelles idées ? Les réponses à toutes ces questions doivent permettre d’améliorer le produit au plus vite.

Il est indispensable de prendre en compte les incertitudes (sur la fin et sur les moyens) au moment d’aborder un nouveau projet. Il ne s’agit pas de les résoudre d’emblée, mais d’accepter que l’on ne sait pas tout et de planifier son travail en mettant la priorité sur les fonctionnalités les plus importantes. Quand on atteint une certaine agilité, on s’aperçoit que les priorités changent très souvent, pour le bien du produit.

Les équipes sont organisées afin que toutes les compétences soient présentes pour amener une fonctionnalité complète au produit. On parle souvent d’équipe autogérée car on lui laisse énormément de liberté sur la manière dont les tâches sont partagées entre les membres de l’équipe et l’allocation de leur temps. Le rôle du management et des gestionnaires de produit est essentiellement de prioriser les fonctionnalités, non de répartir les tâches au sein de l’équipe ni d’imposer une date de fin stricte.

Un ensemble de méthodes permettent de garder les équipes synchronisées dans ce contexte de changement fréquent d’orientation. La méthode la plus connue est la méthode SCRUM. L’équipe va travailler par ‘sprint’ de 2 à 4 semaines durant lequel elle va se concentrer sur un ensemble de fonctionnalités déterminé.

Au démarrage de sprint, l’équipe reçoit la liste des fonctionnalités les plus importantes aux yeux des utilisateurs et va décider du nombre qu’elle peut réaliser durant celui-ci. L’équipe détermine les tâches à réaliser et va ensuite se fermer aux interventions externes pendant la durée du sprint, afin de pouvoir se concentrer sur le développement.

Une mêlée (scrum en anglais) quotidienne est organisée pour que les développeurs se partagent les tâches au jour le jour. Les problèmes techniques rencontrés par les développeurs sont listés et les besoins d’interaction identifiés.

À la fin du sprint, les fonctionnalités terminées et intégrées au produit sont présentées à toute l’organisation et, si possible, aux utilisateurs lors d’une démonstration. L’équipe se réunit finalement pour une rétrospective où elle cherche des manières d’améliorer son fonctionnement pour les sprints à venir.

Basé sur les résultats de l’équipe et sur tout ce qu’il a pu se passer sur le marché ou chez les utilisateurs, les gestionnaires produit et le management vont refaire la liste des fonctionnalités les plus prioritaires pour le sprint suivant.

Cette méthode allie le besoin de concentration des développeurs et la possibilité de changer de direction du projet ».

 

Comment démarrer son adoption des méthodes agiles?

 » La première étape est de centrer ses équipes sur les besoins utilisateurs beaucoup plus que sur la technique. L’essentiel du développement n’est pas de modifier telle ou telle classe ou de développer tel ou tel module, mais bien d’amener une fonctionnalité à des utilisateurs.

Les personnes liées au marché et aux clients doivent prendre la responsabilité d’identifier ces besoins, de bien les comprendre, de juger leur importance et de les faire passer à l’équipe de développement de la manière la plus simple possible, sans aspects techniques, au bon moment.

Cette seule étape peut parfois permettre d’éliminer une quantité gigantesque de travail inutile réalisée par l’équipe technique. Il a été mesuré lors de certaines études (Johnson 2002) que 64 % des fonctionnalités intégrées dans les produits sont rarement, voir jamais utilisées.

Souvent, les gestionnaires produit listent toutes les fonctionnalités que le produit devrait pouvoir faire à la fin, avant de donner cette énorme liste non-priorisée à une équipe de développement qui travaille dessus jusqu’à ce que le produit soit considéré « fini ». Dans d’autres cas, les développeurs vont juger que telle ou telle caractéristique de leur produit lui apporte beaucoup de valeur, même si cela nécessite beaucoup de temps pour l’entretenir.

La vérité se trouve dans la tête des utilisateurs. Le principal pour parvenir à cette vision utilisateur est de se simplifier la vie en éliminant tout ce qui ne leur apporte pas de valeur. Si l’adoption agile va vers cette simplification, les équipes vont prendre le pas avec bonheur. Les méthodes agiles n’aident pas le développeur à développer, mais elles l’aident à ne pas développer.

Une fois l’orientation utilisateur atteinte, le reste découle naturellement. Les équipes vont accepter le changement et mettre tout en œuvre pour satisfaire leurs utilisateurs car cela apporte énormément de sens à leur travail. Grâce aux rétrospectives, les développeurs vont apprendre à organiser leur code afin de pouvoir le retravailler régulièrement.

En établissant une communication régulière entre les équipes marché et techniques, l’équipe marché va commencer à comprendre si une fonctionnalité est facile ou difficile à réaliser (sans avoir besoin des détails). Elle va alors pouvoir réagir en conséquence. Petit à petit, on en arrive à une communication agile vers le client, lui proposant alors des points de livraison intermédiaires et intégrant les modifications qu’il demande au plan de développement.

Chez intoPIX, l’adoption des méthodes agiles a été une merveilleuse aventure humaine. Elle a amené beaucoup de sens au développement de nos solutions. La totalité des fonctionnalités développées sont intégrées chez les clients très rapidement après leur développement.

L’agilité nous a notamment permis d’introduire la technologie Tico sur le marché du broadcast avec succès. Il a été indispensable de s’adapter à des besoins urgents de nos clients que nous n’avions pas pu identifier au début du projet, pour obtenir leur soutien au niveau de l’industrie. Cela a été une des clés du succès de la technologie Tico sur son marché ».

Pascal Pellegrin, Scrum Master, intoPIX S.A.