Je travaille sur un projet logiciel principalement en solo depuis plus de 5 ans. C'était un gâchis au début (je suis le troisième ou le quatrième développeur à y travailler), et bien que ce soit moins un désordre maintenant, il est toujours incroyablement désorganisé. Le rythme des progrès pour le maîtriser est glacial et je commence à me sentir découragé par l'état dans lequel il se trouve. Comment puis-je vraiment commencer à le réparer?
Spécificités du projet: Il s'agit d'un programme de vente écrit presque entièrement en Visual Basic Classic (VB6) avec un back-end MySQL et un moteur de reporting écrit en C #. Le module de création de rapports C # est un plaisir de travailler, il n'a été écrit que ces deux dernières années et avant que tous les rapports aient été effectués dans Crystal Reports 9 (oui, nous avons encore certains rapports qui en dépendent).
Cependant, le programme lui-même est un désastre complet. Il n'y a pas tout à fait 90k LOC et environ 10k lignes de commentaires (surtout pas de documentation, mais de l'ancien code qui a été commenté). 158 fichiers de formulaire et 80 fichiers de module. Je n'ai aucune idée du nombre de ceux qui sont réellement utilisés, car certaines fonctionnalités du programme sont simplement obsolètes et (euh, parfois) notées comme telles sans que le code associé soit supprimé du programme. Je suppose que seulement 50% du code est réellement utilisé de manière productive.
J'ai peur de toucher une grande partie du code simplement parce que je ne sais pas si je casse quelque chose sur lequel un client obscur s'appuie, cela s'est produit plus d'occasions que je ne peux en compter. C'est comme s'il y avait des mines terrestres disséminées dans tout le code.
Il n'y a pas vraiment de structure au projet. Il n'est pas orienté objet, sauf dans les rares endroits où j'ai eu la patience de réformer jusqu'à présent. Si vous avez besoin d'obtenir des données sur un formulaire, vous instanciez un objet de base de données, déclarez votre requête directement dans la fonction, l'exécutez et faites ce que vous voulez avec l'ensemble de données.
Lorsque j'ai commencé à travailler sur le projet, aucun contrôle de code source n'était utilisé. J'ai essayé d'encourager les autres personnes sur lesquelles je travaillais à l'utiliser, mais j'étais le nouveau gars et mes tentatives pour amener les gens à utiliser la subversion ont échoué. Le développeur principal de la société a finalement détecté un bug mercurial au cours des deux dernières années et il s'est assuré que tous les développeurs utilisent le contrôle de code source sur tous les projets, donc au moins c'est un progrès.
Je pense que si je pouvais travailler à la réforme du projet à plein temps, je pourrais faire des progrès décents et peut-être même avoir une estimation du temps qu'il me faudrait pour refaire complètement le projet, mais il est en cours d'utilisation et je suis constamment demandé d'éteindre des incendies, de corriger des bogues, d'ajouter des fonctionnalités, etc. etc.
Alors, comment puis-je vraiment réparer ce projet? Essayez d'utiliser l'outil VB6 avec une autre langue? Essayez de réécrire le programme pendant mon temps libre? Ou est-ce complètement désespéré?
Mise à jour
Après ce poste, je suis retourné au projet avec un zèle renouvelé, mais je suis retombé dans le désespoir en quelques mois après avoir vu un rythme si lent de progrès. J'ai ensuite répété ce cycle 2 ou 3 fois de plus au cours de la prochaine année.
Depuis, je suis passé à un autre emploi. Bien qu'après tant d'années de vb6, et seulement une expérience périphérique avec d'autres technologies, la recherche ait été difficile et j'ai fait face à de nombreux refus en cours de route (une dizaine d'interviews au cours d'une année). Mon conseil aux autres dans cette situation est d'envisager de partir seul pour ce facteur. Considérez les dommages que vous pouvez faire à votre carrière en restant dans une impasse comme celle-ci.