• Aucun résultat trouvé

5. Réalisation technique

5.1 Avant le développement

projet a débuté depuis 5 à 6 mois. Cependant il est facile de se précipiter, de partir sur de mauvaises bases et d’avoir par la suite à un système difficile à maintenir. C’est justement ce que nous souhaitons corriger avec cette évolution technologique.

J’ai extrapolé ma vision à tout ce qui peut représenter un obstacle pour Insiide à court, moyen et long terme. Il s’avère que l’aspect juridique ou légal de l’édition de logiciel est très important d’autant plus lorsque l’activité principale consiste à éditer et distribuer des logiciels sur le marché.

5.1.1 Ordonnancement des fonctionnalités

Chacune des parties est liée à une ou plusieurs fonctionnalités. Nous les avons ordonnancées et planifiées dans l’outil de gestion de projet afin d’établir des mises en communs avec les collaborateurs d’Insiide et des livraisons transversales. Le partage de l’information est important dans la démarche car il laisse la possibilité à l’équipe de s’exprimer sur le système à maintenir dans un futur proche.

J’ai été affecté à plusieurs types de rôle afin d’aboutir au développement du serveur d’application en dotNet.

Rôle de développement

Lors de la planification j’ai pris la responsabilité de débuter le développement d’une page blanche pour créer un socle qui guide au maximum le développeur. En effet, lors de la conception, j’ai fait en sorte d’assurer une qualité du code source, commenté, documenté en respectant au maximum les standards sauf s’ils sont vraiment trop contraignant pour une petite équipe.

Rôle de référent technique

À l’intérieur de l’équipe mais aussi en rapport avec les responsables métier ou la direction.

En communication avec les développeurs d’Insiide j’ai fait en sorte d’être un maximum disponible surtout au début. D’une part afin de respecter la planification prévisionnelle à laquelle je tenais tout particulièrement quant à mon engagement. D’autre part, je suis à l’origine de cette évolution technologique, et j’ai à ce titre un devoir moral envers mes collègues afin de les épauler un maximum. La bonne entente à l’intérieur de l’équipe est un moteur incroyable et je pense qu’elle est un des ingrédients de la réussite que nous avons connu.

En communications avec les responsables métier ou la direction, mon rôle est différent. Il consiste essentiellement à faire comprendre les raisons des décisions d’une façon intelligible pour tous. C’est-à- dire dénuées de technicité. J’ai souhaité être transparent sur toutes nos actions, car nous avons tous le même objectif à l’intérieur du groupe et cela aurait créé des tensions inutiles.

Rôle de gestion de projet

Durant le projet j’ai été l’interface entre l’équipe informatique et le reste du groupe, étendue à l’ensemble des activités de ce dernier. C’est bien sûr une lourde tâche d’être l’interlocuteur potentiel de toutes les personnes qui peuvent avoir des demandes. Toute la complexité se situe dans l’analyse de la demande et dans la priorisation en fonction de tous les paramètres. Parfois la décision doit intervenir dans des temps restreints car elle est pour le demandeur d’une priorité élevée.

5.1.2 Outils et plateforme de développement

Une nouvelle technologie implique l’acquisition et l’appropriation de nouvel environnement de développement par les développeurs. La solution qui a été sélectionnée, le Microsoft dotNet implique un environnement de conception et de déploiement.

Acquisition d’un environnement

Dans un objectif de maîtrise des coûts j’ai opté pour une solution commercialisé par Microsoft spécialement intéressante pour les structures dans notre cas. Sous réserve de respecter les conditions requises nous pouvons souscrire à un pack qui se nomme « Microsoft Action Pack9 », désormais « Microsoft Action Pack Development and Design » (MAPDD). Afin d’utiliser ce pack il y a trois étapes préalables :

 rejoindre le réseau « Microsoft Partner Network10 »,  réaliser une évaluation,

 commander l’abonnement.

Ces étapes sont conçues pour limiter la commande aux entreprises de moins de cent employés ayant globalement une activité de développement ou d’intégration de solution informatique.

Nous avons déterminé qu’Insiide respecte les conditions minimale requises et peut donc profiter du contenu de ce pack et plus particulièrement de :

 Visual Studio 201011, environnement de développement,

 Windows Server 200812, environnement serveur d’hébergement d’applications,

Globalement pour trois développeurs si nous n’étions pas passés par le MAPDD l’investissement aurait été presque sept fois supérieur au prix de l’abonnement. C’est donc une solution qui nous permet de débuter le développement dans une cohérence budgétaire raisonnable par rapport aux ressources de l’entreprise.

J’ai accordé de l’importance à cette partie car nous avons tendance à sous-estimer le poids que cela peut représenter et les répercutions que cela peut engendrer. En effet, dans un contexte déjà difficile, alourdir considérablement l’investissement de départ n’est pas viable et aurait pu entraîner l’annulation de ce projet. Dans le meilleur des cas, cet investissement aurait été une source de pression supplémentaire dans la réalisation.

Ce dernier point met en évidence que pour s’engager dans une nouvelle technologie nous devons avoir un minimum de connaissance de cet environnement car durant l’évolution de projet on peut facilement être pris de cours en termes de temps lorsque nous devons systématiquement rechercher une information.

Heureusement pour Insiide et pour le projet, mon expérience dans les deux solutions technologique étudiées m’a permis d’être très réactif sur l’ensemble de ces sujets. J’ai d’ailleurs été fort de proposition pour appréhender un maximum de difficulté. J’ai également pu porter un sentiment de sécurité et de maîtrise de cette évolution technologique afin de rassurer tout particulièrement la direction du groupe.

9 Pack de licence souscrit auprès de Microsoft par le biais d’un abonnement qui donne droit à l’utilisation à des fins de tests et de développements certains produits.

10 Réseau de partenaire de Microsoft qui donne droit à un certain nombre d’avantages, comme être référencé parmi les partenaires officiels. Il existe plusieurs niveaux de partenariat.

La plateforme de développement

La plateforme de développement est composée de deux parties :  le poste de développement,

 l’environnement serveur de compilation et de test des applications.

Le poste de développement peut être perçu comme un détail mais il doit être facilement installé, configuré et maintenu pour être opérationnel. En effet, j’ai l’expérience de préparation fastidieuse dans les technologies actuelles autour de Delphi, car nous avons le RAD Delphi, puis la quantité de composants additionnels à installer et à configurer. De plus, cela est une compétence peu présente chez un technicien système qui aurait la charge de déploiement de poste de travail. J’ai considéré que l’installation et la maintenance du poste de développement devait être revue car elle représente une charge de travail réelle qui n’est présente dans aucune planification mais qui ralenti le développeur au quotidien. C’est également pour cette raison que j’ai limité à une seule suite de composant qui répond à un éventail de possibilités.

L’environnement serveur a été pensé pour assurer une qualité de conception des applications et une rapidité d’utilisation pour le développeur. Toujours par retour d’expérience par rapport au fonctionnement actuel du service je me suis posé la question sur la façon d’améliorer et de résoudre les problèmes rencontrés lors des processus suivant :

 compilation des applications13,

 le déploiement des applications, c’est-à-dire la mise à disposition aux utilisateurs,  test des applications sur une plateforme représentative de la plateforme cible.

Figure 12 – Évolution du déploiement d’application

13 La compilation d’une application consiste à transformer le code source écrit dans un langage de programmation en un autre langage informatique qui puisse être exécuté sur une plateforme cible (le poste de l’utilisateur).

Le déploiement d’application

L’analyse de la Figure 12 nous montre la principale modification que je souhaite apporter au fonctionnement du service lors du déploiement d’application : une station dédiée à la compilation et au déploiement d’application. En effet, j’ai identifié une source de problème lorsque chaque développeur peut indépendamment créer une nouvelle version d’un logiciel.

Cela est fondé sur les constatations suivantes :

 les développeurs ont des configurations spécifiques qui peuvent différer entre environnements de test et de production,

 avec la multitude de composants utilisés sur l’environnement Delphi il arrive qu’un composant soit mal installé ou ai été dégradé sur un poste, dans ce cas l’utilisateur final télécharge une application instable,

 il arrive que le développeur veuille publier une nouvelle version de logiciel alors que sur son poste il a une version du code source qui comporte des modifications qui ne doivent pas être compilés dans une version de production.

J’ai donc pris la décision de soumettre l’idée au Directeur Informatique afin de corriger ce point qui fait défaut dans le service. En effet, les défauts qui peuvent émerger de cette situation, sont une charge de travail supplémentaire et une source de problème que l’on peut pourtant maîtriser en amont.

J’ai à cette occasion apporté une compétence à Insiide en déployant un système serveur dit hyperviseur14, capable d’héberger des machines virtuelles15. Le système VMware ESXI16 nous permet de profiter d’une station de compilation et de déploiement accessible au développeur. Ainsi nous contrôlons les coûts afférant au développement d’application en hébergeant plusieurs machines qui ont des rôles différents sur le même serveur. Mon idée consiste également à créer une plateforme virtuelle de test d’application avant la mise en production et le déploiement d’une nouvelle version.

La seconde modification apportée, correspond à l’uniformisation du système de gestion des sources. Celui-ci héberge la dernière version du code source des applications et la partage à l’ensemble de l’équipe. Nous utilisons deux systèmes différents selon le langage de programmation utilisé, le système Starteam17 pour les applications Delphi et Subversion (SVN18). Nous avons décidé de mutualisé le système de gestion des sources en l’occurrence SVN quel que soit l’environnement de développement.

La réorganisation nécessaire

La nouvelle machine créée pour compiler et déployer les applications est accompagnée d’une réorganisation du service informatique. J’ai été nommé responsable, afin d’apporter de la rigueur dans la création de nouvelles versions logicielles. Pour cela j’ai mis en place quelques règles qui me semblent importantes pour assurer une qualité de service excepté cas de force majeure :

 décrire la raison pour laquelle un développeur modifie un fichier lorsqu’il le stocke sur le serveur de gestion des sources,

 seul le responsable effectue des versions, trace l’historique et gère la notion de version majeure et mineure de chaque application,

 un cycle de test de l’application est impérativement effectué avant tout déploiement d’une nouvelle version.

Il est vrai que ce processus est un peu lourd pour un développeur qui peut parfois effectuer des nouvelles versions en urgence. C’est également pour cette raison que personne ne souhaitait (hormis moi-même) prendre cette responsabilité.

Étant donné que nous allons avoir un système hybride pendant quelques temps, lorsque nous allons avoir une cohabitation des applications Delphi, PHP et dotNet, il fortement recommandé d’effectuer ces évolutions. La plupart avaient été appréhendés durant la période de recherche et développement et de choix de la technologie retenue.

14 Plate-forme de virtualisation qui permet à plusieurs systèmes d’exploitation de travailler sur une machine physique en même temps.

15 Une machine virtuelle est à l’intérieur d’un hyperviseur, une reproduction de composant d’un appareil informatique afin de faire fonctionner le système d’exploitation classique.

L’organisation du service s’est mise en place progressivement, mais le gain pour le développeur est si important que je n’ai pas eu de mal à argumenter cette nouvelle méthode de travail.

Dans ces opérations nous allons faire en sorte de modifier la fréquence entre deux nouvelles publications d’application. Nous avons constaté que celles-ci sont trop nombreuses et pas suffisamment encadrées. L’objectif fixé est de réduire le nombre de version à une par semaine, puis une par mois en fin de projet. Ce temps doit nous permettre de traiter un certains nombres de demandes entre deux versions et d’assurer une cohérence dans les développements.

5.2 Développement et consolidation

Documents relatifs