Będę naprawdę szczera ...
- Czy jesteś odpowiedzialny za programistów w tej pracy?
- Czy jesteś liderem projektu?
- Ile „udziałów” mają deweloperzy w projekcie?
- Jakie jest Twoje uzasadnienie biznesowe dla przepisania?
- Co takiego jest w bazie kodu, która sprawia, że jest ona całkowicie bezużyteczna i nieodwracalna?
Stwierdziłeś, że właśnie rozpocząłeś pracę, a jednak wydajesz się być panem sytuacji. Być może źle zrozumiałem cel twojego pytania, ale mam wrażenie, że podjąłeś pracę, w której widzisz wiele problemów, i doszedłeś do najłatwiejszego wniosku, w którym kod jest zepsuty, a jedynym wyjściem jest przepisać, ale czy naprawdę zastanawiałeś się nad kosztami poniesionymi przez pracodawcę?
Z każdą istniejącą bazą kodu - bez względu na to, jak zły jest stan - właściciel zwykle będzie miał znaczną inwestycję w produkt (y), które reprezentuje kod. Z bazą kodu wiążą się zarówno bezpośrednie, jak i pośrednie koszty, a przepisywanie jest często ostatnią rzeczą, którą chcesz zrobić jako programista, ponieważ ryzykujesz dewaluacją zasobów kodu, a tym samym uzyskujesz niższy zwrot z wszystkich poprzednich starania.
Weźmy na przykład system operacyjny Windows. Z każdą nową wersją powstaje duża część kodu przeniesiona z poprzedniej wersji. Czasami całe biblioteki i interfejsy API są przeciągane do przodu przez kilka generacji systemu operacyjnego. Czemu? Ponieważ programiści wiedzą, że te elementy działają, zostały przetestowane, zostały załatane i naprawione, aby zapobiec problemom z bezpieczeństwem i pamięcią, oraz ponieważ kosztują dużo pieniędzy, aby dostać się do tego stanu. Nikt nie chce wyrzucać działającego kodu, gdy zarabia na nich pieniądze, nawet jeśli koszty utrzymania są stosunkowo wysokie, koszt rozpoczęcia od zera zawsze będzie nadal wyższy, aw firmie takiej jak Microsoft, mają miliardy w banku, który pozwalają im zacząć od początku, jeśli chcą, ale nie ponieważ chcą zmaksymalizować zwrot z inwestycji. Twój pracodawca nie różni się niczym od Microsoftu, z wyjątkiem tego, że masz miliardy gotówki do wydania w projekcie.
Więc kod jest bałaganem i wygląda na to, że istnieją problemy z komunikacją i granicami między różnymi obszarami firmy. Co ty lub twoi koledzy możecie z tym zrobić?
Jedną z opcji jest po prostu kontynuowanie pracy zespołu i liczenie na cud w przyszłości. Prawdopodobnie nie jest to dobry pomysł i może tylko zwiększyć frustrację i stres.
Lepszą opcją jest po prostu rozłożenie się i wykonanie zadań, ale w ramach tego szukania możliwości dodania testów do obsługi tych obszarów kodu, które wydają się najbardziej kruche, a następnie refaktoryzuj je, aż staną się bardziej stabilne. Łatwiej będzie ci przedstawić przekonujący argument, aby ulepszyć inwestycję firmy, zamiast argumentować, że po prostu ją wyrzucisz.
Jeszcze lepszą opcją jest zorganizowanie się w zespół i upewnienie się, że masz kogoś z wystarczającym stażem pracy, aby mógł zrobić dobry przypadek, aby umożliwić zespołowi większą elastyczność w planowaniu czasu na ulepszenie bazy kodu. Nie obchodzi mnie, jak bardzo firma jest zajęta lub jak sztywny wydaje się harmonogram, zawsze zdarzają się „przerwy” w działaniu, które można wykorzystać do wprowadzenia poprawy lub dwóch ulepszeń. Jest jednak jeszcze lepiej, jeśli ulepszenia można wprowadzić podczas wykonywania innych zadań. Gdybym to był ja, przytuliłbym się do menedżera i przedstawiłbym je pojęciom w niektórych kanonicznych książkach czytanych przez programistów. Wyczyść kodjest prawdopodobnie tym, którego najbardziej potrzebuje Twój zespół. Posadź kilka nasion o tym, jak poprawić kod i podaj kilka przykładów tego, co masz na myśli. Dobry menedżer zobaczy wartość dodawania przyrostowych ulepszeń do kodu, szczególnie jeśli jesteś w stanie opisać koncepcję długu technicznego . Pomóż swojemu liderowi lub menedżerowi zespołu w uzasadnieniu biznesowym usprawnienia kodu, a on będzie miał lepszą motywację do działania.
Nie wystarczy też powiedzieć „kod jest nieporządny”. Musisz zachęcać swoich kolegów, aby cały czas ćwiczyli kodowanie w czystości, i używaj techniki czystego kodowania, aby zachęcić do trochę porządkowania podczas podróży. Mam mały plakat, który drukuję i zawieszam na ścianie w biurze za każdym razem, gdy podejmuję nową pracę. Mówi: „Zawsze staraj się pozostawiać kod trochę piękniejszy, niż go znalazłeś”. Zaraz obok dodaję kolejny, który mówi: „Lilie nie muszą być złocone”. Oba służą przypomnieniu, że zawsze powinienem starać się poprawić to, co znajduję, ale unikaj po prostu pozłacania jednego problemu innym. Ogromne przepisywania są często najgorszym rodzajem „pozłacania”, ponieważ często są wykonywane z niewłaściwych powodów. Na pewno w pewnym momencie uzasadniona może być całkowicie nowa wersja produktu,