dimanche 1 novembre 2009

J’ai découvert les méthodes agiles chez Docubase qui les a mise en place à la fin de l’année 2008.
Ce fut une révélation. Je découvrais une approche réaliste des projets informatiques.

Je ne suis pas informaticien de formation. J’ai appris la programmation par la maintenance d’une application en C (programmation procédurale) que je n’ai jamais comprise en entier et grâce au livre de Kernighan et Ritchie.

J’ai ensuite suivi une formation sur la programmation objet. Ce fut ma première révélation. Lors de cette formation, j’ai compris pourquoi la programmation procédurale n’est pas une solution à la création de logiciel mais sert uniquement à programmer de petit utilitaire jetable. Je parlerais ailleurs de la réalisation de logiciel.

Après cette formation, j’ai réalisé des programmes conçus par des chefs de projet. J’ai progressivement pris en charge la conception de modules en suivant leurs exemples et étudiant dans des livres.

J’ai suivi une formation classique d’analyse. L’enseignement en 2004 présentait encore les méthodes prédictives. Il me restait un problème non résolu : Comment gérer les besoins fluctuants des clients.

La découverte des méthodes agiles m’a permis de comprendre que ce problème est inhérent non pas clients mais à l’approche prédictive.

La méthode prédictive affirme que tout projet informatique peut être analysé dans sa totalité. Un projet se réalise en 5 étapes successives :
• L’analyse du besoin.
• La rédaction des spécifications.
• La réalisation du projet.
• Les tests.
• La livraison.
Elle est dite prédictive car elle affirme qu’il est possible de prédire toutes les situations d’utilisation du projet informatique.

Les méthodes agiles proposent une approche totalement différente. Elle propose de construire le projet en étapes courtes qui finissent toutes par une livraison partielle sauf la dernière.

La force de ces méthodes est d’impliquer le client et les utilisateurs dès le départ du projet. Il dispose aussi très rapidement d’un produit utilisable même s’il est incomplet.Les utilisateurs peuvent tester l'application très rapidement. Ils peuvent donc très rapidement informer l’équipe de réalisation des adaptations nécessaires à l’approbation du projet.
Depuis que j’ai découvert les méthodes agiles, je pense qu’elles sont naturelles autant que pragmatique. Mais je n’arrivais pas à expliquer ce sentiment.

Puis en lisant le journal « la recherche », un article sur la physique quantique m’a permis de comprendre. Cet article parlait en particulier du principe d’incertitude.
L’un des énoncés de ce principe est :
L’état d’un système dépend de l’observateur. La principale illustration de cet énoncé est l'expérience du chat de Schrödinger. Voir cet article sur Wipikédia http://fr.wikipedia.org/wiki/Chat_de_Schr%C3%B6dinger
Nous sommes bien loin de l’informatique. Pourtant ce principe universel a une formulation en informatique.

Le besoin d’un client change dès que ce besoin commence à être exprimé et étudier.

Si cette hypothèse est vraie, la méthode prédictive ne peut plus être appliquée car le besoin qui est étudié n’est jamais le besoin réel du client.
En effet, à chaque étape la méthode predictive étudie un besoin que le client n’attend plus. C’est l’explication la plus simple au fait que les projets informatiques qui sont livrés avec cette approche sont soumis systématiquement à des modifications dès leur livraison.

Les méthodes agiles fournissent une solution à cette hypothèse. En effet, elle considère le changement comme faisant partie du projet et met en place des outils pour l’accepter et le gérer.

Mon expérience et celle des chefs de projet avec qui j’ai travaillé me montre que cette hypothèse est réelle. Cette hypothèse ne remet pas en cause la capacité de l’informatique à résoudre des problèmes complexes. Elle considère simplement la capacité d’adaptation de l’homme.

Le processus qui fonde cette hypothèse est qu’un individu ou un groupe d’individus s’adapte systématiquement aux changements du monde qui l’entoure.
Lorsque un client décide d’informatiser une fonction de l’entreprise, il commence par étudier cette fonction. À partir de cet instant, cette fonction va se transformer. D’abord, il existe toujours de petit dysfonctionnement. Ensuite, l’informatique en tant qu’outil impose des contraintes qui vont modifier la façon de travailler. Ces éléments peuvent être gérés par les méthodes prédictives. Mais le changement dans les mentalités des utilisateurs et des clients n’est pas perceptible pendant l’étude, mais n’apparaisse qu’à la prise en main de l’outil informatique livré.

Pour pouvoir livrer l’outil le plus performant et le mieux accepté, il faut faire s’exprimer le plus rapidement possible ces changements et le seul moyen est de mettre à disposition le plus rapidement possible l’outil mais incomplet
.