La situation

Vous êtes décideur, chef d'entreprise dans une petite ou moyenne structure, investisseur dans un projet à caractère digital et vous constatez que ce projet n'avance pas ou n'avance plus. Chaque jour vous découvrez de nouveaux bugs, ou de nouvelles régressions. Vous tentez de dialoguer avec les dévelopeurs qui travaillent sur le projet mais vous sentez qu'ils vous cache des choses ou qu'ils "enveloppent un peu" l'état réel de la plateforme.

programmeur cybersecurite axe ecriture code rencontre defaillance du systeme lors analyse algorithme assis au bureau ingenieur systeme ayant erreur compilation inattendue lors creation logiciel1

Ce genre de situation arrive malheureusement trés fréquemment, les développeurs qui travaillent sur un projet se sont lentemment enfoncés en acceptant toutes les demandes même les plus complexes, sans jamais tirer la sonnette d'alarme.
Ils ont alors bricolé et bricolé jusqu'à obtenir un produit qui fait "presque" ce que vous attendiez mais le produit est tellement fragile qu'ils sont obligés de vous dire comment l'utiliser pour être sur que vous ne déclenchiez pas les bugs.

 

Nos solutions

 

Notre approche sur ce type de problématique se fait sur plusieurs axes. Il faut tout d'abord avoir à l'esprit que nous allons vous proposer des olutions en fonction de vos attentes mais aussi de votre budget, de votre calendrier, et plus globalement de vos contraintes.

Nous allons dans un premier temps vous proposer d'effectuer un audit du code, cela prend en principe quelques jours et nécessite que nous puissions avoir accès à la totalité de votre codebase. Une simple analyse du code est probablement le critère le plus pertinent et permet d'avoir quelques précieux indicateurs :
- La niveau de qualité du code
- Le volume de code
- Un chiffrage approximatif de la dette technique
- Le niveau global de compétence des développeurs du projet
A l'issue de l'audit nous serons en mesure de vous proposer différents types de solution en fonction de notre analyse et de vos contraintes (calendrier, budget, compétences, ...).

 

Ré-écriture partielle et modulaire du code


Si l'audit nous améne à constater que la dette technique est trés importante, mais, qu'une partie du code peut/doit être conservée, alors nous pourrons vous proposer de ré-écrire de manière modulaire les fonctionnalités pour lesquelles le code est devenu "legacy" et ne peuvent plus évoluer. Cela nécessite de mettre en oeuvre les bonnes pratiques, la refactorisation, les design pattern ...
L'avantage de ce type de solution du point de vue l'utilisateur, est la transparence, les modules sont ré-écrit "à la volée" et l'utilisateur ne sait pas si il utilise un module ancien ou pas. En revanche, cette solution est assez longue et peut s'avérer couteuses en temps et en argent.
En paralélle il est absolument nécessaire d'effectuer la montée en compétences des développeurs qui seront ensuite amené à travailler sur le projet afin qu'ils prennent les bons réflexes.

 

Ré-écriture globale du projet

 

Dans le cas ou la dette technique est trop importante, la ré-écriture partielle n'est pas possible et vous ferez perdre du temps et de l'argent. C'est souvent l'issue redouté par les clients, mais il faut bien s'y préparer, si vous faites appel à nous c'est aussi pour entendre la vérité et trouver des solutions. Dans ce cas nous serons contrants d eproposer une ré-écriture totale du projet en partant de 0 car ca sera plus rapide et permettra de générer un codebase trés propre.
En paralélle il est absolument nécessaire d'effectuer la montée en compétences des développeurs qui seront ensuite amené à travailler sur le projet afin qu'ils prennent les bons réflexes et respectent le code nouvellement livré.

Montée en compétences

 

C'est en générale la partie la plus importante, qui est souvent, à tort,  laissé de côté.  Assez globalement vos soucis viennent souvent de vos développeurs qui n'ont pas reçu une formation initiale suffisante et manque donc de compétences. Ils développent mais "la tête dans le guidon" sans jamais prendre de recul sur le projet, chaque fonctionnalité nouvelle est codée dans son entiéreté sans jamais tenir compte de l'existant, ce qui construit doucement mais surement une "usine à gaz".
Notre travail c'est aussi et surtout de les accompagner et de réussir à les faire penser différemment , à se poser des questions chaque fois que c'est nécessaire. Notre mission consiste aussi à "évangéliser" vos équipe, apprendre ou ré-apprendre les bonnes pratiques (syntaxe, factorisation, principes SOLID, PSR, utilisation de linter, ...).
Il est donc pour nous et avant tout primordiale de receuillir l'adhésion de vos développeurs dans cette démarche sinon rien n'est possible.

 

Si vous souhaitez obtenir un devis pour un audit

Contactez nous