Pourquoi ce séminaire ?
Les directions générales demandent aux directions informatiques de doter leurs entreprises de véritables « usines à projets ». Afin d’atteindre ces objectifs, les chefs de projet doivent :
- Répondre à des niveaux d’exigence croissants (gestion de plus en plus proche de ce que l’on trouve dans le domaine industriel)
- Garantir la prédictibilité des livrables et des délais
- Assurer la « réversibilité » de leurs développements
- Contrôler l’exploitation et l’évolution des investissements logiciels.
Afin de les aider dans ces tâches ambitieuses, des méthodes d’amélioration de processus fournissent un cadre lisible pour tous. Au delà de ces méthodes structurant la démarche globale, des outils et des pratiques doivent être adoptés. Le but étant de mettre le concept d’ « Intégration Réversible » au centre des projets. Celle-ci doit assurer la reprise des livrables de n’importe quel projet par n’importe quelle équipe. Le système d’information devient alors standardisé et indépendant des prestataires, éditeurs et équipes internes qui l’on construit.
A qui s’adresse ce séminaire ?
Ce séminaire s’adresse aux Directeurs Informatiques, Architectes techniques, Responsables Méthodes/Qualité, Chefs de projet.
Programme de la journée :
1. Méthodes d’amélioration des processus
- Contributions pratiques des méthodes aux projets
Présentation des objectifs principaux des méthodes d’amélioration de processus (CMM-I, SPICE …).
Les bénéfices immédiats que peuvent apporter de telles méthodes dans un contexte projet nouvelles technologies. Cas pratique.
Utilisation du support SPICE afin de clarifier le partage des tâches entre les équipes de développement et les entités architecture transverses.
- Les processus de développement et de déploiement
Le processus de développement. Mise en place des plates-formes techniques (environnement de développement, gestionnaire de versions sources et documentation, serveur de build, serveur d’intégration, etc.). Les tests unitaires. Les tests de montée en charge. L’auto-documentation de code…
Le processus de déploiement. Mise en place des plates-formes techniques (serveur d’intégration, serveur de base de données, serveur de qualification, serveur de monitoring, serveur de production …).
Rôles et responsabilités autour des plates-formes.
- La mise en place d’une stratégie de réutilisation/ mutualisation
Intérêt de la réutilisation logicielle et de la mutualisation d’environnement.
Les barrières de l’adoption : Equipes de développements, chefs de projets et managers doivent tous participer à la démarche.
Calcul du retour sur investissement d’une démarche de réutilisation. Comment le calculer ? Comment mesurer les différents coûts ?
Un processus d’industrialisation. Mise en place des équipes. Fonctionnement des équipes elles-mêmes et entre elles.
La prévention des problèmes : plusieurs applications partageant une même plate-forme, la gestion de compatibilité ascendante d’un framework et des applications bâties sur ce framework.
2. Méthodologie et meilleures pratiques
- L’organisation des équipes de développement
La manière de travailler d’une équipe s’établit en fonction des compétences techniques de ses membres (beaucoup de « techniciens », davantage de développeurs « fonctionnels »).
La direction de projet doit rester sur une approche concrète, les équipes de développement doivent pouvoir se concentrer uniquement sur leurs tâches.
Le travail intensif des équipes de développement dès le début d’un projet est souvent contre productif. Seules les phases de finalisation se prêtent au « coup de reins ». Les premières phases des développement doivent être réfléchies et mûries.
- L’utilisation de méthodologies de conception adéquates
Utiliser une méthodologie de conception et de représentation des conceptions doit convenir à l’équipe (par exemple, une conception UML très complète ne sert à rien si les développeurs ne la comprennent pas).
Il n’existe pas UNE méthodologie de conception. Il faut catégoriser les projets par type d’applications et utiliser une méthodologie correspondant aussi bien au type de projet qu’à la nature de l’équipe de développement.
Chaque méthodologie doit permettre un dialogue et une souplesse suffisante pour ne pas être ressentie comme un « carcan ».
- Assurer un réutilisation maximale
Aujourd’hui, il ne sert à rien d’écrire toutes les briques d’une application. Il est nécessaire de connaître les ressources pérennes et réutilisables (framework lié au serveur d’applications, briques logicielles libres, développements effectués sur d’autres projets).
Pour réutiliser certaines portions existantes, un dialogue permanent doit exister entre les différentes équipes projets (développeurs, chefs de projets, etc.).
La réutilisation a un coût qu’il faut assumer (contrainte de délai de livraison, attente de certaines fonctionnalités par d’autres développeurs, etc.) et nécessite un soin organisationnel particulier. Préservation des investissements logiciels grâce à l’ « intégration réversible »
L’applicatif seul du projet ne suffit pas à garantir l’évolutivité et la maintenance des projets. La livraison de l’application doit être accompagnée de livrables tels qu’une solution de versionning de source, un outil de remontée de bugs, des tests unitaires, une solution d’auto-documentation, des tests de montée en charge « rejouable » …
Le monde du logiciel libre amène de beaux exemples de gestion de projet inscrit dans cette démarche qualitative. Présentation des principaux outils Java, .Net et PHP: Junit, Maven, JavaDoc, PHPDoc, Ndoc, dotProject, Mantis, CVS, Subversion …
Démonstration d’un atelier « intégration réversible » issu de l’agrégation de différents outils utilisés sur les principaux projets Open Source.
Prix public : 750 euros HT