Mise d'un logiciel en Tierce Maintenance Applicative ou TMA

La Tierce Maintenance Applicative consiste à transférer à un tiers, une prestataire externe, la maintenance d'un logiciel d'une application. Elle implique trois acteurs l'éditeur du logiciel, son client l'utilisateur et le prestataire qui exécute la TMA.

L'éditeur du logiciel peut alors se concentrer sur ces nouveaux développements sans que ses ressources ne soient occupées, chargées par les corrections la maintenance d'un logiciel déjà livré.

On met le logiciel en Tierce Maintenance Applicative il peut alors être installé sur un environnement différent de l'environnement de développement. La mise en Tierce Maintenance Applicative du logiciel permet à l'éditeur de faire la liste exhaustive de ce qu'il faut pour "faire tourner" le logiciel.

On comprends que cette pratique ait eu du succès entre les entreprises du logiciel. Le principal atout pour l'éditeur, c'est de pouvoir focaliser ses équipes R&D sur des développements des futures releases et non sur la relation avec la client une fois que le logiciel aura été livré.

On peut voir la TMA comme un avantage pour le client utilisateur du logiciel qui est face à une équipe dédiée pour résoudre ses éventuels problèmes avec le logiciel. 

Le prestataire acquière des compétences particulières génération déploiement du logiciel qui n'intéressent pas forcément les ressources R&D de l'éditeur.

La TMA se déroule en trois phases :

Transition

C'est la phase pendant laquelle l'éditeur qui a réalisé la première livraison et le premier déploiement en production, transmet son savoir faire au prestataire de TMA qui devient capable de faire des corrections du logiciel et de déployer une nouvelle version. 

Maintenance

Phase pendant laquelle le prestataire de TMA est face au client, à corriger les bogues éventuellement restants et à maintenir le logiciel en conditions opérationnelles.

Réversibilité

Si la phase de transition s'est bien passée cette phase devrait bien se passer également. L'éditeur peut vouloir changer de prestataire de TMA ou reprendre en interne la phase de maintenance.

Assurer la réussite d'une TMA

Il est indispensable d'utiliser un outil de gestion de projet pour centraliser toutes les demandes faites par le client et un outil de gestion des versions et des codes sources pour centraliser toutes les modifications effectuées sur les codes sources.

Comment réaliser un audit logiciel

Mettons nous en situation de réaliser un audit logiciel au sein d'une société. Pourquoi faut-il élargir cet audit à tout le service développement logiciel et ne pas se cantonner seulement au logiciel proprement dit ?

Un logiciel ce n'est pas seulement le code source, ce sont les documents et les procédures associées, sans lesquels vous ne pourrez pas continuer de faire vivre votre logiciel comme éditeur.

Réaliser un audit logiciel

Un logiciel ce sont également les gens qui sont autour et qui détiennent le savoir-faire pour faire évoluer et maintenir votre logiciel en conditions optimales d'utilisation.

Donc faire un audit logiciel ce n'est pas seulement faire un état du logiciel mais c'est également regarder comment est organisé, taillé, le service développement logiciel, sinon vous ne pourrez pas continuer de faire les préconisations nécessaires à la poursuite du développement du logiciel dans de bonnes conditions.

Fixer les objectifs de l'audit logiciel

Il est très important de fixer les objectifs de l'audit logiciel car en fonction des entreprises et de ses équipes l'audit logiciel peut prendre des directions tout à fait opposées et devenir trop vaste pour les ressources mises en place et pour l'audit décidé.

Faire un état des lieux précis et vrai, le vrai est important le ressenti des équipes peut-être tout à fait différent de la réalité et les suppositions peuvent mener à des erreurs importantes.

Lister les écarts par rapport à une situation qui serait plus idéale cela permettra à termes de préconiser les améliorations nécessaires.

Un logiciel est certes drivé par les tests du point de vue de l'équipe de développement mais il est surtout drivé par les clients du point de vue des équipes marketing. Cet antagonisme peut créer un certain de situations de déséquilibre. A l'autre bout de la chaîne vous avez les Opérationnels, ceux qui sont en contact direct avec les clients sur le terrain.

L'audit technique ou audit logiciel, concerne généralement le service R&D de développement logiciel car c'est là que se cachent la plupart des secrets qu'aimerait bien connaitre la direction.

Comment convaincre d'un audit logiciel

Vous vous trouverez le plus souvent dans une situation où l'audit logiciel n'obtient pas forcément l'adhésion de tous, soit le patron vous dira : "non ce n'est pas la peine tout va pour la mieux dans mon service logiciel", soit le DSI vous dira : "je contrôle parfaitement la situation".

L'audit logiciel doit être réalisé avec l'objectif d'améliorer la situation de tous fasse au logiciel. Le patron a surement une question à propos du logiciel qui le taraude proposez lui de trouver la réponse. Le DSI aimerais surement éclaircir ou automatiser tel ou tel procédé proposez lui de trouver la solution.

C'est en trouvant des réponses et des solutions aux problèmes autour du logiciel que arriverez à convaincre que l'audit logiciel est sinon nécessaire du moins utile.

Questions à poser à l'équipe soft

Peut-être qu'il faut dans le cadre de l'audit logiciel assurer à tous que leurs réponses aux questions que les échanges lors de l'entretien resteront confidentiels que leur nom ne sera pas cité, une sorte de clause de confidentialité. Suivant les questions plus au moins délicates.

Es-tu bien dans ton travail ? Facilité pour effectuer les tâches quotidiennes as-tu les moyens ?
Quand tu te pose une question, trouves-tu l'interlocuteur adéquate ?

As-tu à ta disposition les moyens matériels de réaliser la tâche qui t'es confiée ?

Vous pouvez trouver d'autres questions à poser en fonction de l'environnement, de ce que vous savez, du service développement logiciel et de la société.

Sur la documentation

Que penses-tu du niveau de documentation ? Est-elle suffisante ?

Est-ce clair, s'y retrouve t-on facilement ? Toutes les parties du développement sont-elles documentés lesquelles ne le sont pas ?

Que ferais-tu pour améliorer la documentation.

Architecture logicielle

Maintenabilité : à souvent à voir avec les tests, si une application est parfaitement testée, elle sera maintenable et évolutive.

L'architecture logicielle est-elle décrite ? Entièrement ou partiellement, sous quelle forme schéma papier, logiciel.

Vous allez rencontrer des gens qui vont vous dire que cela ne sert à rien de décrire l'architecture qu'il a tout dans la tête.

Est-elle scalable : effets d'échelle dépend des marchés sur lesquels vous souhaitez déployer l'application.

L'équipe forces et faiblesses

forces : motivation; intérêt métier, intérêt technique les bonnes technos sont utilisées.

faiblesses; équipe trop jeune manque de maturité

points noirs : seul un ou deux possède le savoir des différentes procédures.

Evaluer les risques d'évolution

Est-il facile ou difficile de faire évoluer le logiciel ? Que faudra t-il faire pour ajouter ou retirer des fonctionnalités.

Codes spaghetti, non maintenable. Utilisation d'outils maison trop complexes. Utilisation de modules externes anciens, non maintenus.

Mesure de la dette technique

Elle peut se mesurer par rapport à une situation idéale à définir en évaluant l'écart qu'il y a par rapport à cette situation idéale.

Dette technique elle augmente ou elle diminue, la dette technique fait aussi partie de l'analyse des risques. Il y a là des points que doit soulever l'audit s'ils entraînent une trop forte augmentation de la dette technique. 

Couldification

Si je dois tout mettre dans le Cloud que faudra t-il faire, certains processus certaines technologies sont plus facile à migrer vers le Cloud, d'autres sont quasiment impossibles à mettre dans le Cloud sauf à tout reconstruire.

Quid de la Containérisation ?

Stratégie de l'audit logiciel

Vous le comprenez en lisant ces lignes que l’extrême difficulté de l'audit logiciel vient de la confrontation à l'existant, de la confrontation à ceux sont en place, à l'équipe managériale aux dirigeant de l'entreprise.

Vous marchez sur des œufs chaque pas en avant, chaque avancé est un risque, le risque de vous retrouver à découvert sans protection au fond d'un marécage que l'on vous aura concocté. C'est l'image que vous devez avoir en permanence à l'esprit avant de faire progresser votre audit logiciel.

Audit logiciel conclusion

Voilà comment convaincre, comment démarrer votre audit logiciel. C'est une première approximation, vous êtes sur le site commercial de la SoDevLog n'hésitez pas à nous contacter, à nous écrire.

Merci de laisser votre commentaire.