Ho un collega che è stato praticamente l'unico collaboratore di un servizio per diversi anni. Per la maggior parte, fa un lavoro sopra la media. Funziona in modo abbastanza affidabile, è stato accuratamente testato ed è relativamente facile da leggere riga per riga.
Il software ha anche molto spazio per miglioramenti. I dettagli non contano davvero per questa domanda, ma i difetti sono completamente indiscutibili per gli altri con cui li ho discussi. Cose come analizzare una grammatica altamente annidata con espressioni regolari. Inoltre, porta il disaccoppiamento all'estremo, a scapito di altri principi di progettazione altrettanto importanti.
Questi problemi si sono accumulati nel tempo, al punto che ora apportare modifiche richiede molto più tempo del previsto e il mio collega ha davvero bisogno di aiuto per evitare che il backlog cresca.
Il problema è quando qualcun altro cerca di dare una mano, prende personalmente le modifiche, diventa molto difensivo sul suo codice, ha difficoltà ad ammettere che c'è qualcosa di sbagliato nel suo design e incolpa i problemi dell'errore dell'utente o del codice scritto da altre persone. In altre parole, sembra completamente cieco di fronte ai difetti del suo codice.
È gentile e simpatico, ma anche molto testardo, e manterrà la sua posizione per giorni, nonostante più persone non siano d'accordo con lui. Se ci avviciniamo a lui prima di apportare le modifiche, è anche peggio, perché ha difficoltà a visualizzare il risultato. Non abbiamo tecnicamente bisogno del suo permesso per apportare miglioramenti, ma è una cosa cortese da fare.
È un processo faticoso per tutte le persone coinvolte e, francamente, non lo so Non voglio più spendere le energie. Come posso approcciarmi ad apportare miglioramenti al suo codice senza dover litigare (educatamente) per giorni prima di ottenerlo?