Je vais être très direct ...
- Êtes-vous en charge des développeurs dans ce métier?
- Êtes-vous le chef de projet?
- Quelle «participation» les développeurs détiennent-ils dans le projet?
- Quelle est la justification de votre entreprise pour une réécriture?
- En quoi la base de code la rend-elle entièrement inutile et irrécupérable?
Vous avez déclaré que vous veniez de commencer un travail, et pourtant vous semblez déjà être un maître de la situation là-bas. J'ai peut-être mal compris l'intention de votre question, mais j'ai l'impression que vous avez commencé un travail où vous voyez un certain nombre de problèmes, et vous avez sauté à la conclusion la plus simple dans laquelle le code est cassé et la seule voie à suivre est une réécriture, mais avez-vous vraiment considéré le coût pour votre employeur de le faire?
Avec n'importe quelle base de code existante - quel que soit l'état dans lequel il se trouve - le propriétaire aura généralement un investissement important dans les produits que le code représente. Il y a à la fois des coûts directs et indirects associés à la base de code, et une réécriture est souvent la toute dernière chose que vous voulez faire en tant que développeur de logiciel, car vous risquez de dévaluer vos actifs de code, et donc d'obtenir un rendement inférieur sur tous vos précédents efforts.
Prenons le système d'exploitation de Windows comme exemple. Avec chaque nouvelle version créée, un gros morceau de code a été reporté de la version précédente. Parfois, des bibliothèques et des API entières sont déplacées sur plusieurs générations d'OS. Pourquoi? Parce que les développeurs savent que ces éléments fonctionnent, ont été testés, corrigés et corrigés pour éviter les problèmes de sécurité et de mémoire, et parce qu'ils ont coûté très cher pour entrer dans cet état. Personne ne veut jeter le code de travail quand il leur rapporte de l'argent, même si les coûts de maintenance sont relativement élevés, le coût pour recommencer à zéro sera toujours plus élevé encore, et dans une entreprise comme le cas de Microsoft, ils ont des milliards à la banque qui leur permettre de recommencer depuis le début s'ils le souhaitent, mais ils ne le font pas t parce qu'ils veulent maximiser leur retour sur investissement. Votre employeur n'est pas différent de Microsoft, à l'exception du peu d'avoir des milliards en espèces à jeter sur un projet.
Le code est donc un gâchis, et il semble qu'il y ait des problèmes de communication et de limites entre les différents secteurs de l'entreprise. Que pouvez-vous ou vos collègues faire à ce sujet?
Une option consiste simplement à continuer comme l’a été l’équipe et à espérer un miracle à l’avenir. Ce n'est probablement pas une bonne idée et cela ne fera qu'augmenter votre frustration et votre stress.
Une meilleure option consiste simplement à vous arrêter et à faire votre travail, mais dans le cadre de cette recherche, recherchez des opportunités d'ajouter des tests pour prendre en charge les zones de code qui semblent être les plus fragiles, puis modifiez-les jusqu'à ce qu'elles deviennent plus stables. Vous aurez plus de facilité à faire un argument convaincant pour améliorer l'investissement de l'entreprise au lieu de vous contenter de tout jeter.
Une option encore meilleure consiste à être organisé en équipe et à vous assurer d'avoir quelqu'un avec assez d'ancienneté pour pouvoir présenter un bon dossier afin de permettre à l'équipe plus de flexibilité pour planifier du temps afin d'améliorer la base de code. Peu m'importe à quel point une entreprise est occupée ou à quel point le calendrier semble rigide, il y a toujours des «accalmies» occasionnelles dans l'activité qui peuvent être utilisées pour intégrer une amélioration ou deux. C'est encore mieux si les améliorations peuvent être apportées lors de l'exécution d'autres tâches. Si c'était moi, je serais en contact avec un manager et je leur présenterais les concepts de certains livres canoniques que les développeurs de logiciels lisent. Code propreest probablement celui dont votre équipe a le plus besoin. Plantez quelques graines sur la façon d'améliorer le code et donnez quelques exemples de ce que vous voulez dire. Un bon gestionnaire verra la valeur de l'ajout d'améliorations incrémentielles au code, surtout si vous êtes en mesure de décrire le concept de dette technique . Aidez votre chef d'équipe ou votre gestionnaire à faire une bonne analyse de rentabilisation pour améliorer le code, et ils auront une meilleure motivation pour agir en conséquence.
Il ne suffit pas non plus de dire "le code est en désordre". Vous devez encourager vos collègues à pratiquer le codage propre tout le temps et à utiliser une technique de codage propre pour encourager un peu de rangement au fur et à mesure. J'ai une petite affiche que j'imprime et que je suspends au mur de mon bureau chaque fois que j'entreprends un nouveau travail. Il dit "Efforcez-vous toujours de laisser le code un peu plus beau que vous ne l'avez trouvé". Juste à côté, j'ajoute un autre qui dit "Les lys n'ont pas besoin d'être dorés". Ils me rappellent tous les deux que je devrais toujours essayer d'améliorer ce que je trouve, mais éviter simplement de plaquer l'or un problème avec un autre. Les réécritures massives sont souvent le pire type de "dorure", car elles sont souvent effectuées pour de mauvaises raisons. Bien sûr, une toute nouvelle version du produit pourrait être justifiée à un moment donné,