Problèmes de qualité, de délais, de coûts, de gestion des corrections et de la maintenance sont des défis auxquels sont confrontés tous les éditeurs. Pour y faire face ils se doivent d’industrialiser les processus de développement des logiciels qu’ils réalisent.
Par essence, le logiciel est fortement dépendant du savoir-faire et il est illusoire de vouloir se rendre indépendant des hommes, mais il est possible moyennant la mise en place de méthodes appropriées de dépendre des bonnes compétences, sans dépendre d’individus particuliers en tant que tels.
Dans quelles conditions cette industrialisation est-elle possible ?
C’est par ces moyens que l’on arrive à un processus prévisible et relativement reproductible, moyennant les aléas de la recherche pour certains types de logiciels ou le degré d’innovation et d’incertitude est élevé, même en ce qui concerne la faisabilité.
L’industrialisation recouvre l’ensemble du cycle de développement.
Il ne s’agit pas seulement d’équiper le développeur d’outils ou de générer du code, il faut supporter l’ensemble du cycle de développement, depuis la conception jusqu’aux retours du client qui utilise le logiciel.
L’industrialisation doit se faire sur toutes ces dimensions faute de quoi le niveau d’industrialisation réel de l’offre sera aligné sur le niveau le plus bas de ces éléments du cycle.
La boucle est constituée de 7 volets :
Le niveau d’industrialisation (ou de qualité) du développement d’un logiciel se fait selon 7 axes:
L’industrialisation au niveau développement comprend différents axes.
La gestion de versions est une discipline importante pour un éditeur de logiciels
Lorsque l’on veut faire un logiciel déployé de manière large, il est crucial de le construire dans un environnement dédié appelé « serveur de build ». Ce serveur automatise l’assemblage des composants et la compilation de l’ensemble.
L’expérience prouve qu’une construction régulière du logiciel, par exemple tous les soirs, permet de diminuer le nombre de bogues et d’observer la convergence d’un cycle de développement produit.
Des statistiques sur les erreurs peuvent permettre aussi de faire évoluer les processus de développement, ou de remonter du feedback aux équipes pour améliorer les normes de développement et la qualité en mode « amélioration continue ».
Le déploiement est un processus trop souvent sous-évalué et sous-positionné chez les éditeurs.
Les tests sont naturellement et évidemment un fort levier d’industrialisation
Ce volet comprend les éléments qui peuvent être fait pour reboucler avec le déploiement chez les clients au besoin via le département support de l’éditeur
Des éléments peuvent être introduits directement par conception dans le produit afin de disposer de données sur :
Les enjeux de la mise en œuvre d’un scénario d’industrialisation tourne autour de quatre grands points :
Les technologies et outils qui supportent l’industrialisation sont de plusieurs type :
Visual Studio Team System fournit Team Foundation Server, une infrastructure destinée à supporter l’ensemble du cycle de développement
Sur chaque élément, peuvent aussi se brancher des outils tiers pour approfondir un axe particulier du cycle.
Sites Microsoft
Autres sites
L’AFDEL dispose d’une commission R&D qui mériterait d’être connue de tous les CTO d’éditeurs français:
Xavier COURCHINOUX Partner Technology Advisor DPE – Microsoft France me contacter
Daniel COHEN-ZARDI – SOFTFLUENT daniel.cohenzardi@softfluent.com Découvrez la fabrique logicielle CodeFluent !