L’organisation des équipes de développement
– L’équipe doit être organisée en fonction des compétences de ses membres
– Les développeurs doivent pouvoir se concentrer sur leurs tâches
– Les premières phases des développements doivent être réfléchies et mûries. Seules les phases finales se prêtent au « coup de reins ».
L’utilisation de méthodologies de conception adéquates
– Les méthodologies d’analyse de processus de type BPMN. Positionnement par rapport aux méthodologies de conception d’applications telles qu’UML. Cartographie d’un système d’information.
– La méthodologie de conception et de représentation des conceptions doit convenir à l’équipe.
– Il n’existe pas UNE méthodologie de conception. Il faut catégoriser les projets et utiliser une méthodologie correspondant aussi bien au type de projet qu’à la nature de l’équipe.
– Chaque méthodologie doit permettre un dialogue et une souplesse suffisante pour ne pas être ressentie comme un « carcan ».
Assurer une réutilisation maximale
– Pourquoi réutiliser. Identifier les ressources pérennes et réutilisables (framework lié au serveur d’applications, briques logicielles libres, développements effectués sur d’autres projets)
– La réutilisation suppose un dialogue permanent entre les différentes équipes projets
– La réutilisation a un coût (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 »
– Pour garantir l’évolutivité et la maintenance des projets, une application doit être livrée avec un ensemble d’outils (une solution de versionning de source, un outil de remontée des bogues, des tests unitaires, une solution d’auto-documentation, des tests de montée en charge « rejouables », etc.)
– Exemples de cette démarche (notamment dans le monde du logiciel libre). 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.