Je me suis retrouvé dans une situation difficile ces derniers temps. Je travaille sur un jeu avec un copain de programmation depuis près de 8 mois maintenant. Nous avons tous deux commencé en tant que nouveaux arrivants à la programmation vers août de l'année dernière, il est un étudiant CS de 2e année, je suis un technicien de support informatique par métier et je suis un programmeur autodidacte avec une multitude de livres et d'abonnements en ligne.
Le problème que j'ai constamment vu est que lorsque nous écrivons un morceau de code, il sera souvent un peu piraté ensemble, aura de nombreux défauts, et s'il s'agit d'un tout nouveau concept pour l'un d'entre nous, plein de solutions naïves. C'est bien, nous apprenons, je m'attends à ce que nos deux codes soient un peu piratés ensemble au premier ou au deuxième passage. Le problème se pose lorsqu'il s'agit de corriger et de refactoriser réellement ces comportements piratés.
Mon partenaire conservera son comportement fraîchement pavé, refusant ouvertement de voir toute erreur au moment où elle commencera à fonctionner. Prétendant la perfection à partir d'un morceau de structure, je ne peux même pas essayer d'utiliser même s'il y avait des commentaires et des méthodes et des champs correctement nommés. Peu importe mes efforts, je ne peux pas lui faire voir les défauts manifestement évidents qui empêcheront d'autres changements ou une expansion du comportement sans le casser complètement et tout ce qui y est si étroitement lié pourrait aussi bien être dans la même classe. Les solutions piratées restent perpétuellement piratées, les conceptions mal pensées restent telles qu'elles étaient lorsqu'elles ont été conçues et testées pour la première fois.
Je passe autant de temps à garder du nouveau code que je l'écris moi-même, je ne sais plus quoi faire. Mon partenaire l'a perdu ce soir et a clairement indiqué que peu importe quoi, peu importe la référence, quelle que soit la pratique courante, quelle que soit la preuve irréfutable, son code restera comme il l'avait fait pour la première fois. Même si des livres entiers ont été écrits sur les raisons pour lesquelles vous voulez éviter de faire quelque chose, il refusera de reconnaître leur validité en prétendant que ce n'est que l'opinion de quelqu'un.
J'ai un intérêt direct dans notre projet, mais je ne suis pas sûr de pouvoir continuer à travailler avec mon partenaire. Il me semble que trois options s'offrent à moi.
- Arrêtez de vous soucier du fonctionnement de la base de code au-delà du point de compilation, et essayez simplement de maintenir et d'analyser un comportement à peine boiteux. En espérant qu'une fois que les choses commenceront à se casser sérieusement, il le verra et essaiera de faire plus que simplement mettre un panda sur le design fondamentalement défectueux.
- Gardez les arguments sans fin sur les problèmes qui ont été résolus il y a une décennie par d'autres personnes beaucoup plus capables.
- Arrêtez de programmer sur ce projet, abandonnant près de 10 000 lignes de mon code et d'innombrables heures asservies à la conception et essayez de trouver un nouveau projet par moi-même.
Quelle approche puis-je adopter pour déterminer s'il vaut la peine de poursuivre ce projet avec cette personne? Ou quels facteurs devraient influencer ma décision? Nous avons écrit beaucoup de code et je ne veux pas y renoncer à moins que cela ne soit nécessaire.