Processus de développement et nouvelles technologies Didier Girard Improve Didier.Girard@improve.fr
Quels enjeux Les Nouvelles Technologies sont utilisées sur tous types de projets Applications B2E, B2B, B2C Produits Client-Serveur
Quels enjeux Quelles technologies XML J2EE, .Net, Linux/Apache/MySQL/PHP HTML, JavaScript SOAP, CORBA, DCOM Multi-threading Avec des exigences fortes Robustesse Sécurité Évolutivité Sur des architectures variées Architecture N tiers Fat / Thin Client Du PC au Terminaux mobiles Même si le monde informatique bouge constamment, on remarque qu’il y a quelques éléments qui ne changent pas en informatique de gestion : Données : SGBDR et site central Réseau : TCP/IP et le Web Languages : Objet (Java, .Net)
Quels enjeux Projet Besoins Réalisation Production Évolutions
Quels enjeux Projet Nouvelles Technologies Technologies Besoins Réalisation Production Évolutions Technologies nouvelles : on ferait un projet OS390 pour la première, ce serait la même problématique Nouvelles technologies :
Quels enjeux Projet Nouvelles Technologies Technologies Nouvelles Besoins Réalisation Production Évolutions Nouvelles nouvelle infrastructure, formation, nouvelle méthode, prototypage, maquettes Technologies nouvelles : on ferait un projet OS390 pour la première, ce serait la même problématique Nouvelles technologies :
Projet Nouvelles Technologies Quels enjeux Nouvelles Projet Nouvelles Technologies Technologies Besoins Réalisation Production Évolutions Nouvelles nouvelle infrastructure, formation, nouvelle méthode, prototypage, maquettes , briser les rêves modéliser, nombreux intervenants, prospection technologique robustesse, sécurité Technologies nouvelles : on ferait un projet OS390 pour la première, ce serait la même problématique Nouvelles technologies : De l’Objet, discours marketing et pas de recul transfert de compétences
Les enjeux Il est nécessaire d’adapter son processus de développement pour répondre à ces enjeux technologiques
Adapter son processus de développement Phase projet Spécifications Conception Réalisation Chef de projet Utilisateur Spécificateur Analyste - Concepteur Analyse des besoins Rédaction des spécifications générales Rédaction des spécifications détaillées validation ok ko Cahier des charges Analyse - Conception Exemple très sommaire de processus de développement: On voit l’enchaînement des phases et les documents à échanger.
Processus en cascade Processus en cascade Propose de dérouler les phases projet de façon séquentielle Cité pour des raisons historiques Points forts Distingue clairement les phases projet Points faibles Non itératif Ne propose pas de modèles de documents Analyse Conception Programmation Test Maintenance
RUP RUP Promu par Rational Le RUP est à la fois une méthodologie et un outil prêt à l’emploi (documents types partagés dans un référentiel Web) Cible des projets de plus de 10 personnes Analyse des besoins Élaboration Construction Transition Processus projet Processus organisationnels Spécifications Analyse & Conception Implémentation Tests Déploiement Support du projet Configuration Gestion du projet Environnement Phases Itérations Itération Préliminaire Iter. #1 #2 #n #n+1 #n+2 #m #m+1
RUP RUP Promu par Rational Le RUP est à la fois une méthodologie et un outil prêt à l’emploi (documents types partagés dans un référentiel Web) Cible des projets de plus de 10 personnes Points forts Itératif Spécifie le dialogue entre les différents intervenants du projet : les livrables, les plannings, les prototypes… Propose des modèles de documents, et des canevas pour des projets types Points faibles Coûteux à personnaliser : batterie de consultants Très axé processus, au détriment du développement : peu de place pour le code et la technologie
XP XP Ensemble de « Bests Practices » de développement (travail en équipes, transfert de compétences…) Cible des projets de moins de 10 personnes
XP XP Ensemble de « Bests Practices » de développement (travail en équipes, transfert de compétences…) Cible des projets de moins de 10 personnes Points forts Itératif Simple à mettre en œuvre Fait une large place aux aspects techniques : prototypes, règles de développement, tests… Innovant: programmation en duo, kick-off matinal debout … Points faibles Ne couvre pas les phases en amont et en aval au développement : capture des besoins, support, maintenance, tests d’intégration… Élude la phase d’analyse, si bien qu’on peut dépenser son énergie à faire et défaire Assez flou dans sa mise en œuvre: quels intervenants, quels livrables ?
2TUP 2TUP S’articule autour de l’architecture Propose un cycle de développement en Y Détaillé dans « UML en action » Cible des projets de toutes tailles Le 2TUP propose un cycle de développement en Y, qui dissocie les aspects techniques des aspects fonctionnels. Illustré en figure 4, le processus en Y s’articule autour de 3 phases,: · une branche technique · une branche fonctionnelle · et une phase de réalisation
2TUP 2TUP S’articule autour de l’architecture Propose un cycle de développement en Y Détaillé dans « UML en action » Cible des projets de toutes tailles Points forts Itératif Fait une large place à la technologie et à la gestion du risque Définit les profils des intervenants, les livrables, les plannings, les prototypes Points faibles Plutôt superficiel sur les phases situées en amont et en aval du développement : capture des besoins, support, maintenance, gestion du changement… Ne propose pas de documents types
Open Source http://www.samoore.com/teach/cis320/fall2000/documents/open-source-decision.jpg
Open Source L’open source fait référence à tout programme dont les sources sont disponibles pour modification par les utilisateurs. L’idée de base est simple : quand les programmeur sur internet peuvent lire, redistribuer et modifier le source, il évolue dans le bon sens. Les développeurs améliorent, adaptent et corrigent.
Open Source et XP Les quatre valeurs : communication, principe de base de l’open source simplicité, gage de réussite d’un projet open source, le code complique n’est pas relu feedback, principe de base courage, travailler pour la reconnaissance est un gage de courage.
Open Source et XP Conception Simple Remaniement Tests Refactoring Pair Programming Responsabilité collective du code Règle de codage Métaphore Intégration continue Livraison fréquentes Planification itérative Client sur site 40 Heures par semaine
Adapter son processus de développement Travailler de façon itérative et incrémentale Que ce soit au niveau des plannings, des spécifications, ou des développements… L’itératif permet une gestion efficace des risques, Aborder dès les premières itérations, les points difficiles Par exemple, les premières itérations de la phase technique aborderont les aspects sécurité et transaction. L’itératif permet de présenter rapidement des éléments de validation aux utilisateurs Réaliser des prototypes de validation
Résumé Les processus peuvent se compléter plus qu’ils n’entrent en concurrence Analyse des besoins Élaboration Construction Transition Processus projet Processus organisationnels Spécifications Analyse & Conception Implémentation Tests Déploiement Support du projet Configuration Gestion du projet Environnement Phases Itérations Itération Préliminaire Iter. #1 #2 #n #n+1 #n+2 #m #m+1 RUP 2TUP XP
Conclusion Ne passez pas des mois à définir votre méthodologie de développement ! Prenez connaissance des processus les plus utilisés pour en intégrer un ou plusieurs à votre méthodologie de projet. Exemple Les valeurs d’XP et quelques règles (communication, simplicité, feedback et énergie) Les documents types du RUP et leur enchaînement La branche technique du 2TUP Des prototypes marquant la fin d’une itération