Synoptique sur la gestion de projet

Selon un étude (du Standish Group) de 1995, 84% des projets n'aboutissent pas ou ne rendent pas le service escompté au départ.
D'ou la nécessité de mettre le plus de chance de son coté et pour cela d'observer une méthode
de gestion de projet rigoureuse, mais aussi de connaître et d'appliquer certaines techniques qui n'ont pu être acquises que par l'expérience.
Méthode: Manière de dire, de faire, d'enseigner une chose, suivant certains principes et avec un certain ordre.
Exemple d'application de la méthode :
Quand un problème dans son ensemble est difficilement réalisable, on le découpe en plusieurs problèmes
facilement réalisables dont l'ensemble répond au problème de base.
Projet: Ce que l'on a l'intention de réaliser.
Bien entendu il n'existe pas une méthode unique et universelle, celle-ci doit être adaptée au projet et à
l'entreprise concernée, mais certaines règles de bases sont obligatoires quel que soit la taille et la nature du projet.
Formule de base pour la réussite d'un projet :
Motivation Communication Répartition Organisation Animation
____________________________________________________
Pragmatisme
Cette formule est à lire :
Motivation, communication, répartition, organisation, animation divisées (ou plutôt pondérées) par le pragmatisme.
La première des conditions est la motivation, en effet même un projet parfaitement réalisé, mais n'intéressant
personne ne sert à rien.
La deuxième est la communication, comment peut-on réaliser un projet, si l'on ne peut comprendre très exactement de ce dont
il s'agit, mais aussi suivre l'évolution des réalisations, anticiper les dérives inérentes à tous projets informatiques.
Pour ce faire il est impératif d'utiliser un langage et des représentations compréhensibles par tous les acteurs du projet
(glossaire des termes métier et informatique, modèles conceptuels des flux, traitements et données...)
La troisième est la répartition. En effet, mieux les tâches sont réparties en rapport des ressources et mieux le projet
est optimisé dans le délai.
La quatrième est l'organisation, toutes les composantes du projet doivent être définies et ordonnées.
La cinquième est l'animation, un projet doit être vivant afin que tous les participants se sentent concernés.
La pondération de ces cinq éléments est le pragmatisme :
Même si une forte motivation est souhaitée, celle-ci ne doit pas engendrer de précipitation ou de tension.
Une bonne communication doit être claire et concise, trop d'information tue l'information.
Il faut qu'une ou plusieurs personnes gardent une vue exhaustive et transversale de toutes les tâches à accomplir,
que la répartition ne soit pas trop morcelée et qu'en aucun cas, des tâches ou partie de tâches soient
attribuées de manière redondante.
L'organisation doit aider et ne doit pas engendrer trop de contrainte, il faut trouver l'équilibre entre être
trop procédurier et normalisateur et ne pas l'être assez.
Encore une fois il faut trouver le bon équilibre entre animation et agitation.
Mais avant tout, pour qu'un projet puisse être, il fauts'assurer qu'il soit vraiment utile et voulu.
Il faut donc une demande conjointe des dirigeants et des opérationnels.
De ce fait un projet ne peut être initié sans :
Un comité stratégique comprenant.
Un ou des dirigeants ayant pouvoir de décision dans l'entreprise.
Le(s) dirigeant(s) des opérationnels
Un ou des chefs de projet (dans le cas de plusieurs chefs de projet, un directeur de projet).
Un ou des experts
Un comité de pilotage comprenant.
Le(s) dirigeant(s) des opérationnels
Un ou des opérationnels (facultatif suivant les cas, plutôt présent lors de réunion d'équipe projet ou
d'interview sur les processus métiers).
Un ou des chefs de projet (dans le cas de plusieurs chefs de projet, un directeur de projet).
Un ou des experts (cela peut être le chef de projet).
Bien entendu suivant la taille de l'entreprise, on peut fusionner ces comités en un seul comité de pilotage ou les choix
stratégiques seront validés.
L'importance de cette démarche est liée à l'implication directe dans le projet, à la fois de la direction et des
opérationnels de l'entreprise.
Une fois ces éléments mis en place, la première application de la méthode à un projet, est de définir les
différents constituants de celui-ci :
Les objectifs.
Expression des besoins. (maîtrise d'ouvrage)
Réalisation du service attendu. (maître d'oeuvre)
Les acteurs.
Le ou les dirigeants (toutes personnes ayant les pouvoirs de décisions).
Les opérationnels métier (les futurs utilisateurs et/ou dirigeants).
Les experts (chef de projet, expert technique et/ou méthode, sécurité ...)
Le contexte.
Architecture existante (technique et fonctionnelle).
Processus métier.
Périmètre du projet et/ou priorité.
Amélioration ou refonte de SI (Système d'Information).
Intégration de nouveaux services.
Evolution (d'architecture, technique, fonctionnelle ...).
...
Contraintes.
Les moyens.
Humain.
Matériel.
Financier.
Logistique.
Les délais.
C'est ces constituants que doit maîtriser et gérer le chef de projet.
Pour tous les projets (pris à leur départ) on retrouve les phases suivantes :
Etude de l'existant.
Expression des besoins.
Rédaction du cahier des charges.
Rédaction des spécifications détaillées techniques et fonctionnelles.
Conceptualisation.
Réalisation.
Tests.
Recette.
Intégration.
Mise en production.
Bilan.
Chaque projet a besoin d'une organisation et planification qui lui est spécifique.
Une des techniques dites "d'expérience" est pour la planification de majorer toutes les tâches de 30%, cette majoration est la résultante
du "non emploi".
En effet, on estime, la plupart du temps, la durée d'une tâche en plein temps, sans compter que l'on ne travaille pas à 100%,
le collègue qui vient vous poser une question, celui qui vient vous inviter à boire un café, les coups de téléphone et
tout impondérable dont est constitué une journée de travail.
Cette majoration s'avère à l'expérience systématique, c'est à dire que si on ne la fait pas, et même si le projet
se déroule parfaitement, en général on dépasse les délais de 30%.
Il faut aussi s'aménager certaines sécurités, surestimer légèrement certaines tâches complexes, savoir se créer
de petites réserves situées en fin de projet.
Le projet suivant son importance est morcelé en différentes parties :
Lotissement.
Gros projet (ex: pour la création/refonte d'un SI on défini les processus prioritaires à informatiser, que l'on
réparti par lot )
Phases (regroupement de tāches).
Tout projet comporte des phases, étude, conception, réalisation, intégration, exploitation, bilan, mais l'expression de celles-ci est facultative.
Tâches/ressources.
Eléments fondamentaux de réalisation et ressources en adéquation.
Jalon.
Point clé du projet, dont la non réalisation bloque la réalisation des tâches en aval.
Puis ordonnées suivant le triptyque tâches, délais, moyens.
On formalise cette organisation/planification à l'aide d'un tableau de Gantt.
De nombreux produits de gestion de projets, s'articule autour de ce type de tableau, en y incluant souvent la gestion des ressources, des coûts et du suivi.
Exemple de tableau de Gantt :

Ce tableau est un élément central du projet, il permet d'anticiper ou d'analyser les dérives, d'avoir une vue globale du projet et de
son organisation, compréhensible par tous les acteurs du projet.
Comme il est dit en début de ce document, il est primordiale d'instaurer un langage commun et des représentations synoptiques des flux,
traitements et données, pour ce faire :
On réalise un glossaire ou dictionnaire des termes métiers et informatique.
On schématise les flux, traitement et données.
Exemple d'un modèle conceptuel de traitements :

On remarque dans l'exemple l'utilité du glossaire ou dictionnaire métier/informatique.
Il est souvent intéressant quand les moyens le permettent, de faire la schématisation de l'existant et de le confronter à un modèle
amélioré (modèle futur), afin de parfois mettre en évidence, des améliorations à apporter aux processus métier,
avant de songer à leur informatisation.
On doit autant que possible, profiter d'un projet informatique, pour capitaliser le savoir de l'entreprise et la circulation de l'information.
La phase d'étude de l'existant est la plus importante avec la phase conceptuelle, elle fait un peu partie de celle-ci, puisque c'est dans cette phase que
doit être réalisé la définition (donc aussi la modélisation) exhaustive des processus métier.
On peut corriger la dérive d'un projet dans sa réalisation technique en rajoutant des ressources ou en augmentant le délai, alors qu'une faute
de conception peut invalider le résultat du projet.
La plupart des projets n'aboutissant pas ou ne rendant pas entière satisfaction, sont dus à une mauvaise définition des processus métier.
Dans la phase d'expression des besoins, il est impératif que le demandeur soit aussi l'utilisateur, ou dans un autre cas, il faut être sûr de
l'adéquation entre la demande et la réalité du terrain, il arrive qu'un projet informatique abouti, suivant les spécifications
données, ne donne pas satisfaction à l'utilisateur final, faute de consultation préalable.
La phase de conception, doit être formalisée suivant les règles de l'art et de la méthode utilisée (Merise relationnel,
Merise décisionnel, UML, RAD, méthode maison ...) elle même induite de l'application demandée.
Comme il est dit en début de ce document, il n'existe pas une méthode universelle à tous les projets, on n'utilisera pas la même
méthode, pour une application d'informatique embarquée, une application de gestion et un DataWareHouse.
Avant la phase de réalisation, il est souvent opportun de présenter une maquette (sauf si on utilise la méthode RAD qui est principalement
axée sur le maquettage/prototypage), afin de s'assurer de l'adéquation entre la demande et la future réalisation.
La phase de réalisation doit être pilotée et encadrée par le chef de projet et le ou les experts, qui auront avant cette phase défini :
Les normes de cinématique et d'ergonomie de l'IHM (Interface Homme Machine).
Les normes de nommage du code, du SGBDR et des objets associés (procédures, fonctions...)
Les règles de programmation (non redondance de fonctions, utilisation de composants ...)
La gestion des versions du code, du SGBDR et des objets associés (scripts de création de base, exécutables, composants ...)
Les environnements de développement, de tests, de non régression, d'intégration et de production.
Et qui pendant cette phase, s'assureront du respect des normes établies, animeront et coordonneront leur(s) équipe(s).
La phase de test est une phase critique au même titre que la phase de conception, d'une part parce que personne n'aime tester, d'autre part parce
qu'une infime erreur non découverte pendant cette phase peut avoir des conséquences graves, tant du point de vue de la réalisation
du projet, que de l'impact psychologique néfaste sur l'utilisateur.
En effet celui-ci ne verra pas les 99,9% réalisé correctement, mais ne verra que le 0,1% incorrecte, surtout si ce 0,1% a un impact visuel
(message d'erreur ou pire).
Pour mettre toutes les chances de son coté, il est impératif :
D'établir un plan de test, et des fiches de tests issues de toutes les règles et éléments énoncés dans le
dossier des spécifications détaillées.
D'établir les règles de communication, correction et suivi des anomalies.
Que les modifications apportées soient regroupées et intégrées dans une nouvelle version, après s'être
assuré de leurs validités en environnement de non régression, puis en environnement de test.
D'intégrer dans l'équipe de test un ou plusieurs candides, en effet ceux-ci n'auront pas la même démarche qu'une personne
ayant participé à la réalisation, et de ce fait, trouveront certainement des erreurs ayant échappé aux réalisateurs.
Qu'une personne dans l'équipe de test (de préférence un informaticien) soit dédiée à des tests axés
sur la recherche du plantage de l'application et non de la validité du fonctionnel (beaucoup de failles de sécurité exploitant les "Buffer Overflow"
sont dues à la non exécution de ce style de test).
Effectuer des tests de montée en charge, basés sur les volumes des données et le nombre d'utilisateurs prévus à court,
moyen et long terme.
L'idéal étant d'effectuer ces tests avec des volumes et un nombre d'utilisateurs supérieurs à ceux attendus, afin d'avoir
une marge de sécurité.
La phase de recette est en général résultante de cette phase de tests, quand toutes les anomalies ont été corrigées
et ces corrections validées.
La complexité de la phase d'intégration est proportionnelle à l'environnement existant où doit s'intégrer l'application.
Par exemple, une phase d'intégration dans un environnement neuf et dédié à la nouvelle application, sera plus simple qu'une phase
d'intégration dans un environnement de production déjà existant, imposant des contraintes pour les interventions sur des serveurs
en fonctionnement (planification de l'arrêt de ces serveurs, incompatibilité avec des éléments existant...)
Pour cette raison, il est parfois nécessaire de créer un environnement d'intégration identique à l'environnement de production.
Il est possible aussi, que les tests et recette soit effectuée dans un environnement d'intégration identique à l'environnement de
production, quand les contraintes liées à la production sont trop fortes pour prendre le moindre risque.
Toutes les options sont possibles, j'ai déjà vu des cas où il existait huit niveaux entre le développement et la mise en production.
La phase de mise en production pose en général les mêmes problèmes et les mêmes solutions que la phase
d'intégration, à la différence que l'on n'a plus le droit à l'erreur, d'où l'utilité de la phase
d'intégration devant permettre un sans faute, lors de la mise en production.
La phase de bilan est trop souvent oubliée ou minimisée, c'est pourtant une phase très importante, devant permettre :
Tout d'abord de juger de la réussite du projet, en termes de coûts, délais et services rendus.
D'analyser tous les problèmes rencontrés, et ainsi, capitaliser l'expérience pour les projets futurs.
De donner au chef de projet, s'il ne l'a déjà, l'expérience pratique et de valider ou d'invalider ses bases téoriques
sur la gestion de projet.
De faire l'inventaire des techniques, méthodes et composants réutilisables.
A dessin, je n'ai pas cité le plan d'assurance qualité (dit souvent PAQ), qui aujourd'hui est presque systématiquement inclut dans
les projets, d'une part parce que ce sujet est vaste et complexe à couvrir (normes ISOx), qu'il dépasse de part son champ d'application
celui de la gestion de projet, et que bien souvent, alors qu'il devrait être la référence, il n'est là que pour faire bien et
n'est ni lu, ni appliqué.
Toutefois, tout chef de projet devrait avoir les connaissances de base sur la démarche qualité.
En espérant que ces quelques informations vous aident dans la réalisation de vos projets informatiques.
Retour sur la page informatique
Page d'acceuil