Praca z cudzym kodem jest trudna. Nawet jeśli nie jest to kod legacy. Nawet jeśli jest nieźle napisany, ma testy, a jego twórcy pracują ciągle w tym projekcie. Zderzenie się z cudzymi pomysłami może być wyzwaniem. Są też czterej wrogowie efektywnej pracy z takim kodem. Czterej jeźdźcy apokalipsy. Jeśli wysadzisz ich z siodła, Twoja praca będzie dużo bardziej przyjemna.
1. Pośpiech
Wykrywacie błąd. Trzeba to szybko naprawić. Szybko. Starasz się więc ogarnąć kod po łebkach i dostarczyć poprawkę. Nie przygotowujesz należycie środowiska, bo nie ma na to czasu. Jeśli coś nie wychodzi, masz żal do siebie, że nie umiesz tego ogarnąć. Stres sprawia, że myślisz wolniej i błędne koło się zamyka.
2. Zarozumiałość
Masz już kilka lat doświadczenia, więc ogarnięcie tego kodu to pestka. Ty nie dasz rady? Zdarzyło Ci się pracować z setkami takich modułów, więc na pewno zrozumiesz wszystko w mig. Nie ważne, że ten moduł ma akurat masę zakamarków. Po co masz kogokolwiek prosić o pomoc? Jeśli coś nie działa, szukasz rozwiązań na StackOverflow i wklejasz kolejne kawałki kodu, z których żaden nie działa. Rośnie w Tobie wściekłość. Co za kretyn pisał ten kod?
3. Zachłanność
Masz wprowadzić nową funkcjonalność. Zaczynasz pisać, ale w kodzie jest mały zamęt. Zaczynasz refaktoryzować, równocześnie dodając nowy kod. Oczywiście nad wszystkim pracujesz lokalnie. Twój commit rośnie, coraz więcej się w nim dzieje. Przerzucasz klasy między pakietami i dopisujesz kod. Duuużo kodu. Czujesz się jak młody bóg. Jesteś wirtuozem klawiatury i popijasz kolejny łyk kawy. Cieszysz się z efektu i chcesz wejść z tym do repozytorium. Aż tu nagle konflikt. Musisz zrobić merge nieskończonej ilości klas.
4. Strach
Działa – nie ruszaj. Nie ma testów – nie ruszaj. o ile ma to sens w czeluściach projektu, gdzie nikt nie zagląda, o tyle może być tragiczne, kiedy każdy boi się dotykać kluczowej logiki biznesowej. Ta logika obrasta w kolejne if’y i nawet najstarsi górale nie wiedzą, co ten kod tak naprawdę robi…
Znasz to? Niech pierwszy rzuci kamieniem ten, kto nigdy nie dał się porwać jednemu z tych jeźdźców!