Ho lavorato per una grande azienda (8000+ dipendenti) per quasi 2 anni e sono stato assunto subito dopo aver terminato il mio corso di studi.
Tutti qui devono confrontarsi quotidianamente con un codice legacy che è spesso progettato in modo molto brutto e pieno di hack. All'inizio, ho mantenuto un basso profilo, cercando di non criticare troppo le cose. Ma la situazione, così com'è, è diventata molto difficile da vivere e sembra che nessuno sia disposto a migliorare / sostituire gli strumenti che usiamo.
Per essere più espliciti abbiamo:
- Uno strumento di controllo del codice sorgente obsoleto (Visual SourceSafe)
- Semplici makefile che supportano solo la ricostruzione completa
-
.def
di file che devono essere gestiti manualmente e separatamente per tutte le architetture esistenti - intestazioni monolitiche di file e progetti con pochissimi file diversi (ma ognuno ha circa 3000 righe di codice, che a volte si occupano di compiti molto diversi)
- nessun uso delle "nuove" strutture linguistiche (beh
std::string
non è nuovo ma nessuno tranne me lo usa)
Ho deciso, qualche mese fa, di fare qualcosa al riguardo, progettando un nuovo ambiente di compilazione. Potrei ottenere build incrementali per lavorare in modo affidabile, tempi di compilazione più veloci, progetti strutturati migliori, generazione automatica di file .def
. Ho persino creato un bridge da / a Git per / da Visual SourceSafe.
Ho mostrato i miei risultati a diversi colleghi e al nostro capo, ma è stato come se nessuno se ne curasse. Erano tutti come "Beh ... le persone sono abituate a farlo in quel modo ora, perché dovremmo cambiare le cose?"
Le modifiche che ho suggerito sono state progettate in modo da consentire una transizione graduale dal vecchio sistema a quello nuovo. Ogni miglioramento potrebbe essere applicato separatamente e in sicurezza.
Ho persino cercato di coinvolgere alcuni dei miei colleghi nelle modifiche. Ma finora, nessun successo.
Hai già affrontato una situazione simile? Cosa si può fare quando "guidare con l'esempio" non funziona?