You are on page 1of 12

Processus de dveloppement Objet et Nouvelles Technologies

1/12

Processus de dveloppement Objet : Best Practices


SI LES NOUVELLES TECHNOLOGIES FONT BRILLER LES YEUX DES DEVELOPPEURS, LE CHEF DE PROJET SE TROUVE QUANT A LUI EN PROIE A DE NOMBREUSES INTERROGATIONS : MON PROCESSUS DE DEVELOPPEMENT EST-IL DEPASSE ? COMMENT GERER LA COMPLEXITE TECHNOLOGIQUE ? COMMENT ORGANISER MES EQUIPES ? EN NOUS APPUYANT SUR NOS RETOURS DEXPERIENCE,
TECHNOLOGIQUE. NOUS

PRESENTERONS COMMENT ADAPTER SON PROCESSUS DE DEVELOPPEMENT DE FAON A CONCILIER QUALITE DES REALISATIONS ET COMPLEXITE

CET ARTICLE SADRESSE A DES CHEFS DE PROJETS TOUTES EXPERIENCES CONFONDUES.

Auteur
Stve SFARTZ est directeur du dveloppement de la socit IMPROVE. De formation Tlcoms, ingnieur ENST de Bretagne, Stve ralise depuis 1996 des missions de dveloppement et de conseil en architecture Objet, Java, Web, XML Par ailleurs, Stve anime rgulirement des confrences et formations sur ces thmes.

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

2/12

Mon processus de dveloppement est-il dpass ?


La construction du macro-planning est une tape clef du projet : le chef de projet dfinit le processus de dveloppement (illustration figure 1), compos dune succession de phases, et propose pour chacune dentre elles, une dure, des moyens mettre en uvre, des documents produire et des profils dintervenants. Le succs du projet dpend ds lors, de ladquation du projet au processus de dveloppement.

Phase projet Spcifications Phase projet Ralisation Phase projet Conception

Chef de projet Utilisateur

Spcificateur

Analyste Concepteur

Analyse des besoins

Rdaction des spcifications gnrales ko validation ok Rdaction des spcifications dtailles ko validation ok Spcifications

Cahier des charges

Analyse Conception

Figure 1 : Exemple de processus de dveloppement, et dtail dune phase

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

3/12

Le chef de projet est libre de dfinir son propre processus projet, ou bien den choisir un parmi ceux proposs par les diteurs. La figure 2 prsente une synthse des processus les plus en vogue dans la communaut Objet et Nouvelles Technologies.

Description
= Propose de drouler les phases projet de manire squentielle Cit pour des raisons historiques Promu par Rational. Le RUP est la fois une mthodologie et un outil prt lemploi (documents types partags dans un rfrentiel Web) Cible des projets de plus de 10 personnes =

Points forts
Distingue clairement les phases projet = =

Points faibles
Non itratif Ne propose pas de modles de documents Coteux personnaliser : batterie de consultants Trs ax processus, au dtriment du dveloppement : peu de place pour le code et la technologie

Cascade

= = =

= =

RUP Rational Unified Process

Itratif Spcifie le dialogue entre les diffrents intervenants du projet : les livrables, les plannings, les prototypes Propose des modles de documents, et des canevas pour des projets types Itratif Simple mettre en uvre Fait une large place aux aspects techniques : prototypes, rgles de dveloppement, tests Innovant: programmation en duo, kick-off matinal debout

XP eXtreme Programming

Ensemble de Bests Practices de dveloppement (travail en quipes, transfert de comptences) Cible des projets de moins de 10 personnes

= = =

Ne couvre pas les phases en amont et en aval au dveloppement : capture des besoins, support, maintenance, tests dintgration Elude la phase danalyse, si bien quon peut dpenser son nergie faire et dfaire Assez flou dans sa mise en uvre: quels intervenants, quels livrables ? Plutt superficiel sur les phases situes en amont et en aval du dveloppement : capture des besoins, support, maintenance, gestion du changement Ne propose pas de documents types

2TUP Two Track Unified Process

= = =

Sarticule autour de = larchitecture = Propose un cycle de dveloppement en Y Dtaill dans UML = en action (voir rfrences) Cible des projets de toutes tailles

Itratif Fait une large place la technologie et la gestion du risque Dfinit les profils des intervenants, les livrables, les plannings, les prototypes

Figure 2 : Synthse des mthodologies utilises dans le cadre de dveloppement Objet et Nouvelles Technologies

Force est de constater que toutes ces mthodologies proposent de travailler de faon itrative, que ce soit au niveau des plannings, des spcifications, ou des dveloppements

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

4/12

Si litratif sest impos, cest parce quil rduit la complexit de ralisation des phases, en travaillant par approches successives et incrmentales. Il est alors possible de prsenter rapidement aux utilisateurs des lments de validation. De plus, litratif permet une gestion efficace des risques, en abordant ds les premires itrations, les points difficiles. Par exemple, les premires itrations de la phase technique aborderont les aspects scurit et transaction.

Best Practice Dfinir pour chaque phase, le nombre ditrations et leur contenu prcis. Exemple : Dans le cadre dun projet Web qui comporterait un module de personnalisation, la ralisation de ce module pourrait tre compos des itrations suivantes : = Itration n1 (longue / technique): cration du moteur de personnalisation des interfaces Web (spcifications des besoins de personnalisation, laboration de lergonomie, modlisation du moteur en adquation avec larchitecture applicative, dveloppement des composants logiciels, dveloppement dune maquette des fins de validation) Itration n2 (courte / technique): revue de lergonomie suite la dmonstration et intgration de nouveaux lments la maquette (mise jour de lergonomie, mise jour de la modlisation du moteur, mise jour des composants logiciels, ralisation de la maquette des fins de dmonstration) Itration n3 (courte / fonctionnelle): intgration dlments fonctionnels (dfinition dune charte graphique et adaptation de la maquette des fins de validation).

Au-del de litratif, on notera que les mthodologies prsentes en figure 2 mettent laccent sur des phases projets diffrentes. Le RUP couvre lensemble du processus en spcifiant les inter-actions entre chacune des phases, XP se concentre sur la phase de dveloppement, tandis que 2TUP fait une large place lanalyse et larchitecture. Aussi, ces processus peuvent se complter plutt quentrer en concurrence, comme lillustre la figure 3.

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

5/12

Figure 3 : Projection de XP et de 2TUP sur la matrice du RUP

Pour rpondre aux exigences des nouvelles technologies, ne pas hsiter complter sa mthodologie de projet en sinspirant des aspects des processus RUP, XP et 2TUP. Dans le cadre de cet article, nous vous proposons de nous attacher aux aspects : = matrise de la technologie, = et organisation des quipes.

Best Practice Ne passez pas des mois dfinir votre mthodologie de dveloppement. Prenez connaissance des processus les plus utiliss pour en intgrer un ou plusieurs votre mthodologie de projet. Exemple : Dans le cas dun projet Nouvelles Technologies, on pourra intgrer : = Les valeurs dXP et quelques rgles (communication, simplicit, feedback et nergie) = les documents types du RUP et leur enchanement = la branche technique du 2TUP

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

6/12

Comment grer la complexit technologique ?


La meilleure faon daborder un problme, cest de sy attaquer de front. Cest ce que propose le 2TUP en faisant une place part entire la technologie dans le processus de dveloppement ! Le 2TUP propose un cycle de dveloppement en Y, qui dissocie les aspects techniques des aspects fonctionnels. Illustr en figure 4, le processus en Y sarticule autour de 3 phases,: = une branche technique = une branche fonctionnelle = et une phase de ralisation

Figure 4 : Cycle de dveloppement en Y

La branche technique est ne de la constatation que les plate-formes de dveloppement (C++ / Corba, J2EE, .Net ) ne proposent pas de modle dimplmentation pour rsoudre les problmes de scurit, de monte en charge, de gestion de la touche Back du navigateur www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

7/12

Lobjectif de la branche technique est donc de : 1. Rassembler les besoins techniques (scurit, monte en charge, intgration lexistant, ) dans un dossier, 2. Elaborer une architecture logicielle et applicative qui rponde aux contraintes prsentes dans le dossier technique, 3. Identifier les besoins en frameworks techniques afin de palier aux manques de la technologie (gestion de la touche Back des navigateurs, formulaires de saisie inter-actifs, personnalisation de linterface graphique, moteur de persistance Objet / Relationnel avec expressions SQL / Objet, ), 4. Proposer des rgles de dveloppement afin dindustrialiser limplmentation (gestion de exceptions, rgles de nommage, rgles de codage, ...) Cependant, la mthodologie ne peut elle seule, rduire le risque technologique. Pour vous assurer que vos quipes ont une bonne matrise de la technologie, vous pourrez demander la ralisation de prototypes techniques ou fonctionnels. Le prototype technique permet de sassurer du respect des contraintes du dossier technique, en laissant de ct les aspects fonctionnels. Quant au prototype fonctionnel, il a pour objectif de juger de la capacit des dveloppeurs intgrer larchitecture applicative, monter en comptences sur les frameworks techniques, comprendre la conception et suivre les rgles de dveloppement. Nous vous recommandons par ailleurs de dployer le prototype fonctionnel, afin de vous heurter au plus tt aux contraintes de production. A travers le prototype fonctionnel, cest donc lensemble du cycle de dveloppement qui est valid ! Enfin, avant de dmarrer litration suivante, on sattardera sur le prototype fonctionnel pour : = approfondir certaines rgles de dveloppement comme le traitement des erreurs ou la gestion des niveaux de logs, = juger du niveau de maintenabilit de lapplication = et au vue de la productivit des ressources, r-estimer le planning du projet, ou modifier lorganisation des quipes de dveloppement.

Best Practice Le processus de dveloppement doit faire une place importante la matrise des Nouvelles Technologies. Sous-estimer cet aspect, cest rsoudre les problmes techniques au fil des dveloppements, avec des risques importants de remise en cause des ralisations (dcalage de planning, dmotivation des quipes, ). Exemple : Faire reposer la phase de ralisation sur un processus en Y, en sattachant intgrer les risques ds les premires itrations isoler les solutions techniques dans des frameworks valider lavancement par des prototypes fonctionnels

Nous avons insist sur la place accorder la technologie. Cependant, cela se traduit de faon diffrente selon le type de ralisation. Par exemple, dans le cas dune application Intranet de gestion de Forum, on privilgiera les aspects monte en charge sur les aspects scurit. De plus, on pourra remettre en question la ncessit www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

8/12

de dvelopper des frameworks techniques ou de formaliser les rgles de dveloppement ?! La figure 5 dfinit les objectifs de la branche technique du cycle de dveloppement en Y en distinguant trois types dapplications : One-Shot , Dpartementale et Produit .

Composantes de la branche technique Exigences


= = = Maintenabilit Robustesse Pas de rutilisation Maintenabilit Robustesse Rutilisation =

Equipe
Dveloppeurs seniors sur les technologies retenues Distinction des rles : Chef de projet technique, Architecte, Dveloppeur =

Architecture
Dfinie par les dveloppeurs =

Rgles de dveloppement
Rgles de codage et de nommage

Application One-Shot

= = =

= =

Applications dEntreprise

Dfinie par larchitecte Bibliothques de composants fonctionnels

= = =

Ralisation de prototypes Rgles de codage, de nommage Stratgie de gestion des exceptions

= = =

Maintenabilit Robustesse Configurabilit

Produit

Distinction des rles : Chef de projet technique, Architecte, Dveloppeur technique, Dveloppeur fonctionnel

= = =

Dfinie par larchitecte Frameworks techniques Frameworks fonctionnels

= = =

Ralisation de prototypes Rgles de codage, de nommage Stratgie de gestion des exceptions et des logs

Figure 5 : Objectifs et organisation de la phase technique selon le type dapplication

Selon le type dapplications ralises, on observe des exigences diffrentes en terme dquipe, darchitecture et de rgles de dveloppement. Cest pourquoi, ce nest quaprs la ralisation de ces exigences, que le chef de projet a une vision prcise de la suite de son projet : cest alors le moment de ractualiser le macro-planning partir des lments rvls par la phase technique, notamment la productivit des quipes.

Best Practice En rgle gnrale, on peut tre confiant quant la russite du projet lorsque le prototype fonctionnel est valid et test. En effet, cette tape, les quipes de dveloppement sont productives (formes sur les frameworks techniques, bibliothques de composants et rgles de dveloppement).

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

9/12

Comment organiser mes quipes ?


Dans la plupart des projets Nouvelles Technologies, la gestion des ressources se rvle rapidement un vritable casse-tte : = Les experts ne sont jamais disponibles, = Les quipes de dveloppement sont sur-dimensionnes sur certaines phases et sous-dimensionnes sur dautres, = Les transferts de comptences nont pas lieu si bien que les ressources critiques restent les mmes tout au long du projet, Nous prsentons ci-dessous quelques rgles pour viter de tomber dans ces piges :

Best Practice Se concentrer sur la phase de dveloppement en cours ! Ne pas essayer de nourrir ses quipes tout prix : il est normal que certaines ressources ne soient pas affectes sur certaines phases du projet. Mieux vaut parfois les laisser vacantes, que de leur demander de lancer leur dveloppement en dpit du manque dinformations, ou pire encore, les affecter des tches qui ne sont pas de leur ressort (car cest autant dnergie en gestion de ressources, transfert de comptences, qui ne vont pas directement au bnfice du projet). Exemple : Les spcifications ont pris du retard. Les experts techniques sont en train de travailler sur les problmes de scurit des sessions utilisateurs sur HTTP, et linterfaage des transactions CICS. Plusieurs dveloppeurs nont pas de tches affectes : Ne pas leur demander de commencer lire les spcifications et dmarrer le dveloppement ! Pourquoi ne pas laisser ces dveloppeurs vacants (formation, revue de code existant) ? Etudier sil est possible de les affecter aux jeux de tests ou la rcupration de lexistant ?

Best Practice Rechercher la simplicit ! Ne pas regretter de ne pas avoir que des experts techniques. En effet, les dveloppeurs seniors sont une menace pour le projet. Dune part, ils risquent de produire du code non maintenable, car trop labor, trop Objet ! Dautre part, ils deviennent inluctablement des ressources critiques. 1. identifier les besoins en expertise technique, 2. faire raliser des dveloppeurs seniors des bibliothques de composants ou des modles de dveloppement qui puissent tre rutiliss par les quipes moins exprimentes.

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

10/12

Best Practice Ractualiser son planning de faon itrative ! Sil faut prendre le temps de bien dfinir son processus de dveloppement en dbut de projet, et proposer un macro-planning raliste, il faut rester conscient que les charges estimes voluent rgulirement jusqu la validation du prototype fonctionnel, moment partir duquel on a une bonne ide de la productivit des quipes. Aussi, plutt que de mettre constamment jour ses plannings, le revoir plutt la fin de certaines itrations.

Best Practice Spcialiser ses quipes de dveloppement ! Le temps dapprentissage des nouvelles technologies peut se rvler interminable (Java + XML + HTML + JavaScript + JDBC + SQL + EJB + Objet Distribu + Suivi de session) sans parler de lapprentissage du fonctionnel ! Aussi, nous conseillons de : ne pas chercher le mouton 5 pattes ! spcialiser ses quipes (Interfaces graphiques ou Code Mtier, ce qui correspond assez bien aux aspirations de chacun) et libre ensuite chacun de changer de spcialit, profiter des phases de spcifications et danalyse pour former ses quipes de dveloppement, placer des dveloppeurs senior et junior en paire pendant quelques heures ou jours dapprentissage se rvle souvent plus efficace que deffectuer des relectures de code !

Best Practice Dmarrer tt la phase darchitecture ! Exemple : Aussi longtemps que le travail darchitecture nest pas termin, les dveloppements sont bloqus, en attente des lments techniques (choix de produits tiers, frameworks, rgles de dveloppement). Pourquoi ne pas lancer en parallle les phases de spcifications et darchitecture ?!

Enfin, la meilleure garantie de succs, cest de sassurer que chaque intervenant remplit au mieux le ou les rles qui lui sont attribus, tel que lillustre la figure 6.

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

11/12

Fonction
=

Best Practices
= = = Etre ferme face aux demandes des utilisateurs Trancher dans le sens de la simplification Etre sensible aux contraintes de ralisation Se plonger dans le modle physique pour cerner le niveau dadquation avec lexistant Creuser les points fonctionnels plutt qu attendre les retours de lanalyse, et ce afin de minimiser le nombre ditrations Expert Objet et Nouvelles Technologies Assist par les consultants des technologies tierces slectionnes Faire valider larchitecture par un consultant externe Prendre connaissance du fonctionnel et assister le concepteur sur les premires modlisations Bonne connaissance de lObjet Bonne connaissance du fonctionnel et des donnes (SQL, Site central) A fait lexprience dun projet Objet et Nouvelles Technologies Expert Objet et Nouvelles Technologies Valide les modles de conception Assistance technique aux quipes de dveloppement Relecture de code Expert Objet et Nouvelles Technologies Forme les quipes fonctionnelles sur les ralisations techniques Bonne connaissance du fonctionnel Spcialis sur un domaine : Interface Graphique ou Composants Mtiers

Chef de projet

= = = =

Chef de projet utilisateur

Spcificateur

Elabore le processus de dveloppement et le macroplanning Rend compte de lavancement du projet Recueille le besoin des utilisateurs Participe llaboration des spcifications fonctionnelles Rdige les spcifications fonctionnelles gnrales et dtailles Identifie les flux de donnes

= =

= =

Architecte

= = =

Concepteur

= =

Chef de projet technique Dveloppeur technique Dveloppeur fonctionnel

Recense les besoins techniques dans le dossier technique Elabore les architectures logicielle et applicative Argumente ses choix technologiques Identifie les besoins en produits tiers et frameworks techniques Ralise les modles de conception selon larchitecture applicative Identifie les besoins dvolutions de lexistant (modle de donnes, interfaces, batchs) Assure le suivi des plannings de dveloppement Responsable de la qualit des dveloppements Ralise les bibliothques de composants et les frameworks techniques en collaboration avec larchitecte Ralise les applications dcrites dans les spcifications fonctionnelle, en tenant compte de larchitecture applicative, des frameworks techniques et des rgles de dveloppement

= = = = = = = = = = =

= = = =

Figure 6 : Rles et Best Practices des intervenants du projet

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001

Processus de dveloppement Objet et Nouvelles Technologies

12/12

Conclusion
Nous esprons vous avoir clair sur les processus de dveloppement Objet et Nouvelles Technologies, et surtout sur la faon de matriser le risque, tout en travaillant de faon itrative. A vous maintenant de doser ces exigences en fonction de votre type dapplication (One-Shot, entreprise ou produit), et du cadre de sa ralisation (Rgie, Forfait, ou rgie forfaite). Bonne aventure

Rfrences
From Waterfall to Iterative Lifecycle - A tough transition for project manager http://www.rational.com/media/whitepapers/TP173A.pdf Completing the Unified Process With Process Patterns by Scott W. Ambler

http://www.ambysoft.com/unifiedProcess.html
A Comparison of RUP and XP

http://www.rational.com/media/whitepapers/TP167.pdf
Prsentation du processus 2TUP

UML en action , Pascal Roques et Franck Valle, Edition Erolles


Prsentation de leXtreme Programming

http://www.extremeprogramming.org
Le mythe du mois-homme, Essais sur le gnie logiciel

Frederick P. Brooks, Jr, Thomson Publishing

www.application-servers.com , votre portail sur les serveurs dapplications Copyright Improve, 2001