Mi sono trovato in una situazione difficile fino a tardi. Ho lavorato su un gioco con un compagno di programmazione per quasi 8 mesi. Entrambi abbiamo iniziato come programmatori principianti verso agosto dello scorso anno, è uno studente CS del 2 ° anno, sono una tecnologia di supporto IT commerciale e sono un programmatore autodidatta con una moltitudine di libri e abbonamenti online.
Il problema che ho constatato costantemente è che mentre scriviamo un pezzo di codice, spesso sarà un po 'compromesso insieme, avrà molti fallimenti e se è un concetto nuovo di zecca per uno di noi, pieno di soluzioni ingenue. Questo va bene, stiamo imparando, mi aspetto che entrambi i nostri codici vengano un po 'hackerati insieme sul primo o secondo passaggio. Il problema si presenta quando si tratta di correggere e refactoring quei comportamenti compromessi insieme.
Il mio partner manterrà il suo comportamento appena acciottolato, rifiutando palesemente di vedere qualsiasi errore nel momento in cui inizia a funzionare. Rivendicando la perfezione da un pezzo di struttura non posso nemmeno provare a usare anche se avesse commenti e metodi e campi appropriatamente denominati. Non importa quanto ci provi, non riesco proprio a fargli vedere i difetti palesemente ovvi che impediranno ulteriori cambiamenti o espansioni del comportamento senza romperlo completamente e tutto ciò a cui è così strettamente accoppiato potrebbe anche essere nella stessa classe. Le soluzioni hackerate rimangono perennemente hackerate, i progetti mal concepiti restano come quando concepiti e testati per la prima volta.
Passo tanto tempo a fare da babysitter a un nuovo codice quanto a scriverlo da solo, sono una perdita di cosa fare. Il mio partner lo ha perso stanotte e ha chiarito che, qualunque cosa accada, qualunque sia il punto di riferimento, qualunque sia la pratica comune, qualunque sia la prova inconfutabile, il suo codice rimarrà come prima. Anche se interi libri sono stati scritti sul perché vuoi evitare di fare qualcosa, rifiuterà di riconoscere la loro validità affermando che è solo l'opinione di qualcuno.
Ho un interesse acquisito nel nostro progetto, tuttavia non sono sicuro di poter continuare a lavorare con il mio partner. Mi sembrano avere tre opzioni aperte per me.
- Smetti di preoccuparti del funzionamento della base di codice oltre il punto di compilazione e affronta il tentativo di mantenere e analizzare il comportamento che a malapena cammina. Sperando che una volta che le cose inizino a rompersi seriamente, lo vedrà e proverà a fare qualcosa di più che mettere semplicemente un cerotto sul design fondamentalmente difettoso.
- Continuate con gli infiniti argomenti su questioni che sono state decise dieci anni fa da altre persone molto più capaci.
- Smetti di programmare su questo progetto, abbandonando quasi 10.000 righe del mio codice e innumerevoli ore schiacciando il design e provando a trovare un nuovo progetto per conto mio.
Quale approccio posso adottare per determinare se vale la pena continuare con questo progetto con questa persona? O quali fattori dovrebbero influenzare la mia decisione? Abbiamo scritto un sacco di codice e non voglio rinunciare a meno che non sia necessario.