Lavoro per una grande azienda (8000+ dipendenti) da quasi 2 anni e sono stato assunto subito dopo aver finito il mio corso di studio.
Tutti qui hanno a che fare quotidianamente con il codice legacy che è spesso mal progettato e pieno di hack. All'inizio, ho mantenuto un profilo basso, cercando di non criticare troppo le cose. Ma la situazione, così com'è, è diventata molto difficile da convivere 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)
- Vecchi makefile semplici che supportano solo la ricostruzione completa
.def
file che devono essere gestiti manualmente e separatamente per tutte le architetture esistenti- file e progetti di intestazioni monolitici con pochissimi file diversi (ma ognuno ha circa 3000 righe di codice, che a volte si occupa di compiti molto diversi)
- nessun uso delle "nuove" strutture linguistiche (beh
std::string
non è così 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ù rapidi, progetti meglio strutturati, .def
generazione automatica di file. Ho persino creato un bridge da / a Git a / da Visual SourceSafe.
Ho mostrato i miei risultati a diversi colleghi e al nostro capo, ma era come se a nessuno importasse. Erano tutti come "Beh ... le persone sono abituate a farlo in questo modo adesso. 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 anche cercato di coinvolgere alcuni dei miei colleghi nelle modifiche. Ma finora, nessun successo.
Hai già affrontato una situazione simile? Cosa si può fare quando "dare l'esempio" non funziona?