Qu'est-ce que les utilisateurs d'Agile ne disent pas et peut-il assurer la planification et la mise en œuvre des tâches dans les délais prévus?

Principes d’Agile

Comme nous l'avons décrit ci-dessus, l’Agile implique:

  • La souplesse à des modifications constantes, ce qui devrait être plus important que de suivre le plan initial.
  • L’acceptabilité de modifications apportées aux conditions, même aux étapes avancés du développement du projet!
  • Une prestation continue d'un produit fonctionnant.

Ce sont des principes vraiment cools. Ils permettent de réagir avec souplesse à la situation actuelle, aux tendances actuelles et aux besoins réels des clients. Les versions constantes offrent la possibilité de vérifier et d’adapter instantanément des idées nouvelles. L’accent mis sur les fonctionnalités les plus importantes, assure une gestion efficace des ressources disponibles et une fourniture rapide des services les plus actuels et des fonctionnalités les plus demandées.

Cette approche est extrêmement efficace et progressive dans presque tous les domaines, et en particulier dans les technologies de l’information!

Questions typiques de gestion

Cela semble parfait, mais examinons ce processus du point de vue du budget et des délais. En effet les managers et les propriétaires d’entreprise ont besoin de comprendre par qui, quand et dans quel délai telle ou telle fonctionnalité sera réalisée. Ceci est nécessaire pour garder ses priorités dans l'ordre, pour la planification des versions, ainsi que pour prendre des décisions stratégiques relatives au développement de l'entreprise et la gestion des ressources.

Voici un exemple des questions typiques, auxquelles les réponses sont extrêmement importantes pour prendre des décisions de gestion:

  • Nous voulons ajouter certaines fonctions importantes au produit. Combien de temps nous y mettrons?
  • Nous devons lancer la première version d’un nouveau produit, combien de temps cela prendrait-il et quel en serait le coût?
  • Nous avons un budget fixe. Quelle fonctionnalité pout-on implémenter sans en dépasser les limites?
  • Nous avons une date de sortie, qu’est-ce qu’on a le temps de faire jusqu’à cette date? Comment le contenu planifié changera-t-il, si nous ajoutons 10 personnes à l'équipe?
  • Et ainsi de suite...

Planification dans l’Agile

Cependant, c’est avec ces réponses que l’agile a des problèmes... Il est très difficile de faire des prévisions ou d'évaluer les travaux futurs dans un environnement agile: agile n'a pas de plans précis et clairs, ni de spécifications, ni de délais. De plus, même si une estimation approximative est donnée, il est extrêmement difficile d’en garantir la réalisation pendant le cycle de développement: le contenu initialement prévue changera et sera ajusté constamment après chaque itération. Des idées super originales et fraîches, diverses corrections, recommandations qu’il faudra exécuter obligatoirement en premier lieu. Oui, c’est exactement le fonctionnement d’agile.

Les adeptes d’agile pourraient s'y opposer - pourquoi avons-nous besoin de délais et de budgets? Après tout, agile assure des fonctions les plus prioritaires sans interruption! Après chaque itération, nous lancerons de nouvelles fonctionnalités qui fonctionneront immédiatement, engendreront des profits et donneront la possibilité de recueillir des retours d’une expérience réelle!

Importance de la gestion de projet

Cependant, nous osons ne pas être d'accord avec cet avis.

Déployer continuellement de nouveaux développements dans l’environnement de production après chaque itération n'est pas toujours une bonne approche! Très souvent, une fonctionnalité ou un produit n’est pas attractif pour le client tant qu’un minimum de fonctionnalités n’est pas implémenté. Utiliserez-vous un produit comportant uniquement une page d'accueil et un compte personnel? Allez-vous revenir à la boutique en ligne qui ne vous donne pas la possibilité de commander des produits après avoir dépensé du temps à parcourir et à choisir le produit?

Et qu’est-ce qu’on peut faire sans prévoir les délais de mise en œuvre de fonctionnalités? D'habitude, avant de lancer un produit ou une nouvelle fonctionnalité, divers événements médiatiques et de marketing, qu’il faut planifier et organiser à l’avance, sont organisés. Ou bien, il est nécessaire d’effectuer des corrections de la nouvelle fonctionnalité dans divers domaines de votre application, qui seront réalisées par d'autres services ou équipes, et cette activité doit être synchronisée.

L'absence du budget convenu est en général une approche très dangereuse lors de la mise en œuvre des projets. De toute façon, tous les participants ont certaines attentes concernant le montant du budget. Et dans ce cas, la divergence inévitable entre le budget effectif et le budget prévu causera tout un tas de problèmes: la méfiance et la tension entre les participants au projet augmenteront, un contrôle supplémentaire sera introduit dans le processus où le contrôle n’est pas particulièrement nécessaire. Et dans certains cas, le dépassement du budget peut entraîner la suspension du développement d’un produit ou la résiliation du contrat de travail avec une partie de l’équipe, ce qui est bien sûr très triste.

Agile n’est applicable que dans des projets «idéaux»?

Tout ceci conduit à penser que agile n’est applicable que dans les cas des projets «idéaux»: lorsque nous avons un produit qui fonctionne bien, des budgets illimités, des clients totalement fidèles et l’absence de situations de gestion complexes.

Dans des projets plus réels: quand nos budgets et ressources ont des limites raisonnables, les délais exactes de la mise en œuvre de nouvelles fonctionnalités doivent être déterminés et respectés avec un minimum d'erreur, quand notre produit n'est pas encore devenu leader dans son segment et que les conséquences de l'introduction de fonctionnalités inadaptées ou incomplètes peuvent être assez douloureuses - il convient d’utiliser des méthodologies plus conservatrices assurant plus de prévisibilité et de contrôle.

Approches hybrides

En fait, ce n'est pas le cas! Agile convient parfaitement bien à toute entreprise, équipe et projet! Cependant, si les questions de planification jouent un rôle important dans votre projet ou entreprise, vous devriez utiliser une approche dite hybride - agile incluant un certain nombre de meilleures pratiques issues de la gestion de projet. Actuellement, l'approche hybride est le meilleur choix pour les organisations qui commencent à implanter agile chez eux!

Éléments de gestion de projet à inclure dans agile

Considérons alors les éléments de gestion de projet à inclure dans agile propre pour l’adapter à toute entreprise, minimiser le risque de problèmes potentiels et augmenter les chances de réussir le projet.

  • Le projet doit être évalué!

    Il n’est pas nécessaire d’évaluer le projet aussi précisément que possible, il suffit d’effectuer une évaluation approximative de haut niveau. Par ailleurs, si on s’attend à un projet à long terme, il n’est pas nécessaire d’évaluer l’ensemble du projet, il suffit d’évaluer le contenu d’une ou de plusieurs phases prochaines.

    Une telle évaluation est très importante pour les raisons suivantes:

    • Elle permet de déterminer et de formuler ses attentes de la partie intéressée vis-à-vis du projet.
    • Elle permet de créer un contenu de haut niveau et d’obtenir le budget prévu du projet.
    • Au cours de l’estimation, l'équipe analysera le contenu global des travaux à effectuer, ce qui favorisera la qualité et les délais de la mise en œuvre du projet.
  • Le projet doit avoir une feuille de route valide
    Il faut établir une feuille de route de haut niveau en fonction de l'évaluation, des ressources disponibles et des attentes des parties intéressées.
    • Cela permettra d’estimer la durée approximative du projet et de créer des attentes réalistes, relatives au délai de la mise en œuvre!
    • Cela permettra de vérifier la santé du projet et d’observer l’efficacité de son déplacement le long des points de contrôle.
    • Cela donnera une vision claire des délais quand telle ou telle fonction sera prête pour la démonstration.
  • Gérer de manière souple la taille des itérations

    • Au début du projet ou de la phase, il est souhaitable de faire de longues itérations pour donner à l'équipe la possibilité d'accélérer. À cette étape, de courtes itérations ne sont pas nécessaires, et même défavorables, car l'équipe se concentrera principalement sur des problèmes fondamentaux et tâches architecturales.
    • Plus on s’approche à la date de finalisation du projet, plus les itérations doivent être courtes, afin de pouvoir réagir rapidement et de corriger l’aspect final du produit.

  • Soyez prêt à apporter des modifications et des corrections continues au plan initial.

    Par ailleurs, nous devons soit garder la feuille de route établie sans modifications, soit la changer soigneusement en fonction de nouveaux objectifs globaux! Cependant, le changement de la feuille de route et les conséquences de ces changements devraient être complètement transparentes et compréhensibles pour tous les participants.

    C'est probablement l’élément le plus important! Comme nous l’avons répété plusieurs fois, le changement des priorités et du contenu est attendu et souhaitable dans le développement agile, et en général, quand on parle des changements du contenu, nous entendons son élargissement. Dans ce cas, la tâche principale de l’équipe de projet est de reconstruire correctement le triangle dit de projet, qui se compose d’un contenu, de termes et de ressources. L’élargissement du contenu peut être effectué en ajoutant des ressources ou en modifiant la date de la version finale, mais le plus souvent, la correction se fait par la révision du contenu: après chaque modification des priorités ou ajout d’une nouvelle fonctionnalité, l'équipe de projet doit analyser toutes les tâches planifiées pour la prochaine grande version et élaborer un nouveau contenu et une nouvelle feuille de route. Le succès de la mise en œuvre du projet dépend quasi totalement de la manière appropriée et transparente de ces corrections!

  • Utilisez des applications modernes de gestion de projet.

    Comme les corrections de priorités et du contenu sont assez fréquentes, la révision constante du contenu deviendra un processus difficile et problématique pour l'équipe de projet et les parties intéressées. En effet, il sera nécessaire de prendre en compte les dépendances entre les tâches, leur importance, leur complexité et de prendre la décision ce qu’on pourrait ajourner et comment. N'oublions pas également que la taille de notre équipe peut changer: augmenter ou diminuer, les gens vont prendre des congés, tomber malades, partir en vacances ... et tous ces changements doivent également être pris en compte dans la feuille de route mise à jour.

    C’est pourquoi il est extrêmement important d'utiliser des applications de gestion de projet modernes (comme TBB, Jira, Azure DevOps ou autres). Cela permettra d'économiser beaucoup de temps lors du traitement des modifications, rendra le processus de révision du contenu transparent et compréhensible pour tous les participants, et permettra de ne pas oublier ni de manquer aucune nuance ou tâche importante.

  • Adapter et appliquer des approches souples en fonction des recommandations ci-dessus.

    Et vous serez agréablement surpris de voir à quel point agile est puissant, souple et rapide!

Bilan

  • La gestion des budgets, des délais et des ressources est importante dans le cas de chaque projet, quelle que soit la méthodologie utilisée.
  • Agile propre a des problèmes d’effectuer une évaluation approximative de haut niveau et de respecter les délais.
  • Du point de vue de la gestion de projet, une livraison continue de fonctionnalités opérationnelles et un changement constant des priorités constituent une approche plutôt problématique.
  • Les approches hybrides sont le meilleur choix pour les entreprises qui commencent à implanter agile ou pour celles où le planning stratégique joue un rôle important.
  • L’évaluation, la feuille de route, la préparation à des changements contrôlés sont des facteurs clés pour la réussite de tout projet.
  • L’utilisation des applications modernes de gestion de projet (comme TBB, Jira, Azure DevOps ou autres) est particulièrement importante et utile dans les cas de travail avec tout type de projet et de méthodologies.

Pour plus d’informations sur l’un des outils de gestion de projets mentionnés ci-dessus ou pour accéder à nos autres articles, cliquer sur le lien.

Dans notre prochain article, nous allons examiner les problèmes liés à l’utilisation d’agile au sein des équipes réparties sur les zones géographiques, ainsi que les meilleures pratiques de la constitution des équipes motivées.

A suivre...