Nos services

Notre mission

Optimisation des logiciels

On a vu trop souvent des pages qui demandent de patienter pour charger, dans les logiciels des entreprises. 10 secondes, 30 secondes, 1 minute ou plus, parfois des erreurs timeout qu'on est censé de contourner. Que ce soit à intérieur de certaines applications internes, ou pire, dans des pages accessibles par les clients, c'est toujours une mauvaise expérience. Multipliez les temps d'attente avec le nombre des fois qu'on doit s'en servir et on arrivera à des statistiques délicates coté emploi du temps. Des coûts auxiliaires dus à la fracturation du temps du travail et au mélange d'une certaine frustration quotidienne avec l'activité professionnelle deviennent malheureusement des facteurs auxquels on doit s'habituer. Le pire, c'est qu'on parcourt une pente de la dégradation des performances des applications déjà lentes, avec l'augmentation du nombre d'utilisateurs et le cumul des données dans les systèmes.

Pour chaque requête qui traine, un serveur ou une pile de serveurs chauffe et consomme plus d'énergie, augmentant ainsi l'empreinte carbone directe ou indirecte de l'entreprise. Cela nuit à l'effort global visant à tendre vers le développement durable.

De manière traditionnelle, les solutions envisagées pour regagner le contrôle vont sur les ressources hardware : augmenter le nombre ou la puissance des machines virtuelles ou des serveurs qui font tourner les applications Web, de manière permanente ou temporaire. Equilibreurs de charges, réplications des données ou autres améliorations de l'architecture physiques promettent des progrès considérables.

Mais est-ce qu'on extrait toujours le maximum de l'application existante avant de repenser l'architecture infra ou les ressources serveur ? Est-ce qu'on a besoin de tout ce qu'on calcule dans nos applications ? On fait ces calculs d'une manière raisonnable ? On ne peut pas trouver des solutions plus simples avant de lancer des gros chantiers pour les améliorations ?

On a commencé notre mission suite aux constats faits pendant les années, ayant interagi avec des diverses plateformes Web Microsoft. Que ce soit des dettes techniques héritées ou des complexités excessives suite aux implementations incrémentaux dans un logiciel, il avère qu'on peut faire souvent des "tours de magie", par la refactorisation de certaines méthodes ponctuelles qui affectent l'ensemble. Certes, les marges d'optimisation varient d'une application à l'autre, mais il ne faut jamais oublier d'analyser le code en vue de l'optimisation, avant d'aller plus loin pour chercher des ameliorations.

assez
image

Nos activités

Analyse des points sensibles du code, pour l'amélioration

Prérequis :Accès a l'environnement de développement pour l'application concernée, comprenant le code source et une version anonymisée de la base de données. Il faut pouvoir lancer la solution depuis cet environnement, afin de pouvoir faire des tests, des vérifications, du débogage.

Déroulement :Se concentrer sur les zones critiques du logiciel en termes de performances, pour essayer de trouver des alternatives d'amélioration.

Résultat :Un dossier d'analyse comprenant des descriptions de l'existant, des recommandations générales et spécifiques de changement dans le code ou dans la base de données.

image

Nos activités

Proposition des solutions pour l’amélioration

Prérequis :Exécution en préalable de l'analyse, la présence du dossier d'analyse après avoir parcouru l’étape précédente.

Déroulement :A partir des recommandations du dossier d'analyse, on propose des changements concrets dans le code et dans la base de données, pour améliorer des performances. Les changements devront être intégrées dans le logiciel par l'équipe technique du bénéficiaire.'

Résultat :Résultat: Code source en format archive ou branches attachées au référentiel du code existant.

image

Nos activités

Implication dans l'implémentation des améliorations

Prérequis :Prérequis: exécution en préalable de l'analyse et de l'élaboration des solutions pour amélioration, après avoir parcouru les étapes précédentes.

Déroulement :Assistance pour l'équipe technique du bénéficiaire en ce qui concerne l'intégration dans le logiciel des solutions proposées. Les changements devront être ramenées dans les branches de base du répertoire de code source, des scripts complets devront être construits pour lancement contre la base de données afin de la mettre à jour. Passage des tests d'acceptance avec l'outillage présent dans l'environnement du bénéficiaire. Garantie et support après déploiement en production. Contenu:

Résultat :Le logiciel optimisé.