Od prawie 2 lat pracuję w dużej firmie (ponad 8000 pracowników) i zostałem zatrudniony zaraz po ukończeniu studiów.
Każdy tutaj musi codziennie radzić sobie ze starszym kodem, który często jest bardzo źle zaprojektowany i pełen hacków. Na początku utrzymywałem niski profil, starając się nie krytykować zbyt wiele rzeczy. Jednak obecna sytuacja stała się bardzo trudna i wydaje się, że nikt nie chce ulepszać / wymieniać narzędzi, których używamy.
Aby być bardziej precyzyjnym, mamy:
- Przestarzałe narzędzie kontroli źródła (Visual SourceSafe)
- Zwykłe stare pliki makefile, które obsługują tylko pełną odbudowę
.def
pliki, które muszą być obsługiwane ręcznie i osobno dla wszystkich istniejących architektur- monolityczne pliki nagłówków i projekty z bardzo małą liczbą różnych plików (ale każdy zawiera około 3000 linii kodu, co czasem zajmuje się bardzo różnymi zadaniami)
- brak korzystania z „nowych” języków (cóż,
std::string
nie jest tak nowy, ale nikt oprócz mnie z niego nie korzysta)
Kilka miesięcy temu postanowiłem coś z tym zrobić, projektując nowe środowisko kompilacji. Mogłem uzyskać przyrostowe kompilacje do niezawodnej pracy, szybsze czasy kompilacji, lepiej ustrukturyzowane projekty, automatyczne .def
generowanie plików. Utworzyłem nawet mostek z / do Git do / z Visual SourceSafe.
Pokazałem swoje osiągnięcia kilku kolegom i naszemu szefowi, ale było tak, jakby nikogo to nie obchodziło. Wszyscy mówili: „Cóż… ludzie są przyzwyczajeni do robienia tego w ten sposób. Dlaczego mielibyśmy to zmieniać?”
Zmiany, które zasugerowałem, zostały zaprojektowane tak, aby umożliwić łagodne przejście ze starego systemu do nowego. Każde ulepszenie można zastosować osobno i bezpiecznie.
Próbowałem nawet zaangażować niektórych moich współpracowników w zmiany. Ale jak dotąd brak sukcesu.
Czy miałeś już podobną sytuację? Co można zrobić, gdy „dawanie przykładu” nie działa?