Czy czas poświęcony na refaktoryzację bazy kodu jest warty na dłuższą metę, jeśli chodzi o produktywność programistów?
Wydaje mi się dość jasne, że modyfikacja czystego, dobrze zaprojektowanego systemu jest znacznie prostsza i szybsza niż praca na źle zaprojektowanym systemie, ale szukam pewnych solidnych dowodów. Czy są jakieś badania dotyczące tego tematu?
productivity
complexity
Benny Hallett
źródło
źródło
Odpowiedzi:
Empirycznie trudniej jest utrzymać oprogramowanie o wyższych wskaźnikach złożoności, takich jak złożoność cykliczna. Istnieją badania potwierdzające to z lat 70. („Złożoność programu i produktywność programisty”, ET Chen) . Istnieją również prace sugerujące, że gęstość złożoności, która jest cykliczną złożonością w stosunku do wielkości systemu, dotyczy także czasu konserwacji („Gęstość cykliczności i produktywność konserwacji oprogramowania”, GK Gill, CF Kemerer) , która jest również dostępna tutaj za darmo . Niestety, abonament IEEE jest niezbędny do artykułu Chena, ale możesz spróbować poszukać go w innych źródłach, jeśli jesteś zainteresowany.
Z punktu widzenia jakości często warto poświęcić trochę czasu na refaktoryzację, zakładając, że masz wdrożone ramy testowe, aby zapobiec wprowadzeniu nowych wad. Umożliwi to łatwiejsze wdrażanie nowych funkcji w systemie, dodawanie dodatkowych testów i szkolenie nowych programistów do pracy.
Ostatecznie jednak istnieje presja na dostarczenie nowej funkcjonalności i wartości dodanej. Musisz zrównoważyć refaktoryzację z wdrożeniem nowej funkcjonalności i naprawą wad.
źródło
Więc przestań marnować tutaj swój czas.
Znajdź kod, który jest drogi w utrzymaniu. To jest łatwe. Zobacz bilety problemów swojej organizacji.
Znajdź kod, który jest tani w utrzymaniu. Znajdź kod, który jest często uruchamiany, ale ma kilka zgłoszeń problemów lub nie ma go wcale.
Zmierz złożoność za pomocą dowolnego z powszechnie dostępnych narzędzi do zarządzania złożonością.
Wygrzej się w dowodzie.
Podałeś teraz liczby, aby potwierdzić oczywistość.
źródło