La manutenzione legacy sviluppa il desiderio dello sviluppatore di buone pratiche
Voglio solo aggiungere la prospettiva di uno sviluppatore principale, perché come sviluppatore sono d'accordo con non voler mantenere il codice legacy, ma come sviluppatore principale Non sostengo che alcuno sviluppatore lo eviti.
Userò un esempio pratico per esporre il mio caso. In qualità di consulente, vengo spesso inviato in un'azienda / progetto con problemi di qualità del codice, dove il mio lavoro è sistemare le cose. Come sospetterai, un codice errato porta a molta manutenzione legacy.
È stata la mia esperienza predominante che gli sviluppatori che scrivono codice errato si trovino in uno dei due campi seguenti:
- Coloro che non conoscevano meglio
- Coloro che pensano di fare la cosa giusta
Il primo gruppo è facile da affrontare, perché migliorerà immediatamente quando mostri loro una buona pratica. Quest'ultimo gruppo, tuttavia, è molto più difficile da convincere in quanto non vedono i benefici delle buone pratiche, che spesso richiedono maggiori sforzi a breve termine. Ripaga i dividendi nel lungo periodo, ma quest'ultimo gruppo spesso non riesce a raggiungere questo punto.
Quasi tutti gli sviluppatori con cui ho avuto a che fare che erano in quest'ultimo campo erano sviluppatori che sono riusciti a passare da un progetto all'altro saltare la manutenzione del proprio codice . Poiché non hanno mai dovuto affrontare le conseguenze delle loro decisioni di progettazione imperfette, non sono mai stati incentivati a cercare di evitare che questi problemi si verificassero prima che si verificassero, quando l'applicazione è stata inizialmente creata.
La soluzione è semplice: gli sviluppatori devono assumerne la proprietà . Se scrivi codice difettoso, gestirai i bug che ne derivano. Se non vuoi spendere il tuo tempo a correggere i bug, spetta a te scrivere codice che non li produca.
Questo crea un incentivo molto semplice per gli sviluppatori a migliorare se stessi, invece di essere spinti in esso contro la loro volontà e senza la loro comprensione del motivo per cui è l'approccio migliore.
Quello che voglio che tu sappia da questo è che la manutenzione precedente è essenziale per gli sviluppatori per ricordare perché hanno bisogno di buone pratiche .
Per analogia, un generale che è in trincea con i suoi uomini prenderanno decisioni migliori (per i soldati) di un generale che siede comodamente in un palazzo dall'altra parte del paese. Uno sviluppatore deve sporcarsi le mani in modo che quando è il generale (= costruisce la nuova applicazione) sa qual è l'impatto delle sue decisioni di progettazione.
Ripulire dopo gli altri
Tu, tuttavia, non devi affrontare i tuoi bug, ma piuttosto quelli delle persone che sono venute prima di te. Al momento mi trovo sulla stessa barca e sono d'accordo con te sul fatto che questa non è una situazione sostenibile.
A nessuno piace la manutenzione legacy e sembrerebbe che il tuo manager non abbia preso in considerazione il fatto che tu esegui esclusivamente la manutenzione legacy sia influenzando il tuo morale e lo sviluppo della tua carriera personale.
Ho passato 3 anni a fare la manutenzione tradizionale, ma è stato un lavoro comodo con una politica di lavoro da casa molto libera. Mi ci è voluto un po 'per capire che mentre l'equilibrio vita / lavoro non era male, la mia carriera era in stallo perché non stavo acquisendo conoscenze di attualità per il settore. Se fossi stato licenziato da quel lavoro dopo 5 anni, il mio bagaglio di competenze sarebbe così obsoleto per altre aziende che dovrei affrettarmi per recuperare il tempo perso.
D'altra parte, qualcuno deve supportare questo progetto. Quindi non puoi semplicemente adottare un approccio "non io", perché ogni sviluppatore promuoverà lo stesso approccio "non io" e quindi la direzione è passibile di nominare qualcuno che abbia disegnato la paglia corta (questo potrebbe essere il modo in cui sei finito in questa posizione per cominciare).
Risolvere il problema
Avvicinati al tuo manager e spiegagli che mentre capisci che il progetto legacy richiede supporto, è uno spreco di morale quando non fai altro ma gestisci il vecchio codice. Chiedi se il tuo manager considererebbe la possibilità di assegnarti un progetto part-time diverso (non legacy).
Nella mia esperienza, i manager più ragionevoli lo capiranno (probabilmente sei stato assegnato a questo perché gli altri 5 sviluppatori che hanno lasciato tutti hanno sostenuto lo stesso punto) e vedranno il vantaggio di tenerti (qualcuno che sa già il progetto legacy) sul progetto part-time, invece di doverti lasciare e dover trovare un nuovo sviluppatore che non conosce il progetto legacy.
Ma nella mia stessa esperienza, ci sono anche aziende in cui il morale dei dipendenti è notevolmente più basso nell'elenco delle priorità, dove impiegano un approccio più rigoroso "fai quello che ti diciamo di fare".
L'unico consiglio che posso dare qui è di lasciare un ambiente così tossico. Non lasciare che la tua carriera si sprechi facendo un lavoro che odi per un'azienda che non apprezza la tua soddisfazione lavorativa (in misura ragionevole).