Je travaille actuellement pour une petite entreprise qui a peu de produits techniquement compliqués. Je suis le seul et unique développeur pour l'un d'eux. Il y a environ un an, j'ai obtenu la version héritée du produit et j'ai commencé à la "prendre en charge".
Le client ne parle que de nouvelles fonctionnalités, de valeur commerciale et d'autres de ce type. Le problème est que, bien que le code soit en C #, il est assez procédural. Il n'y a pas d'abstractions, les classes ne sont utilisées que lorsque Visual Studio en a besoin - Formulaires, par exemple. Les implémentations de ces classes sont vraiment horribles et le code est vraiment difficile à maintenir.
Pendant toutes ces années, je passe mon temps à refactoriser. Dans la dernière version, il y a de jolies abstractions et autres. J'ai dû réimplémenter un certain nombre de composants à partir de zéro et je pense vraiment que l'ajout de nouvelles fonctionnalités ou le changement de comportement à ces composants est BEAUCOUP plus facile qu'à d'autres.
Le problème est que je passe mon temps. J'aime vraiment les résultats, mais je n'aime pas travailler 12 heures par jour. Avez-vous déjà été dans une situation similaire? Que dois-je essayer? J'ai déjà essayé d'en discuter, mais toujours pas de succès.
J'ai juste peur du moment où nous décidons de mettre en œuvre la nouvelle fonctionnalité qui nécessite de nombreuses modifications du code hérité. Cela pourrait choquer le client: pourquoi avez-vous besoin de 8 heures pour changer ces icônes? Le client ne se soucie simplement pas qu'il y ait 500 places dans le code que je dois changer. Et je devrais aussi trouver tous ces 500 places en premier.
Des idées?