Comme nous l'avons décrit ci-dessus, l’Agile implique:
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!
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:
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!
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.
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.
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!
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.
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:
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!
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.
Et vous serez agréablement surpris de voir à quel point agile est puissant, souple et rapide!
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...