Mój kod legacy. Jakie dziedzictwo tworzysz?
Kiedy przygotowywałam prezentację o jakości, wyszukiwałam różne obrazy na Pixabay. Wpisałam legacy i dostałam wiele zdjęć starych budynków, instrumentów i antycznych mebli. Słowo dziedzictwo ma raczej pozytywny przekaz. Dlaczego w IT jest inaczej?
Ile osób, tyle definicji kodu legacy. Jedni mówią, że to kod bez testów. Inni, że kiepskiej jakości. Jeszcze inni, że obcy obecnemu zespołowi. Tak, czy siak, jest to kod trudny we współpracy. Nie chodzi tylko o linijki w edytorze, ale o cały ekosystem i proces wytwarzania. Często czujemy niechęć do takiego kodu, chociaż tak naprawdę w takich projektach uczymy się najwięcej. W tym podcaście możesz posłuchać, jak Ewelina Dziedzic opowiada o tym, dlaczego.
Skąd ta niechęć?
Nigdy nie słyszałam, żeby konserwator zabytków postanowił zburzyć zamek, żeby odbudować go w zgodzie z nową sztuką budowlaną, a Ty? Natomiast zbyt często słyszy się, że należy przepisać projekt na nowe technologie. Projekt, który zarabia pieniądze i ma się dobrze. Zazwyczaj zbiera się drużyna tygrysów, która zrobi to najlepiej. Po kilku miesiącach tygrysom opada zapał, zakopują się w swoich zmianach, albo zmieniają firmę. Pół biedy, jeśli zmiany są robione małymi krokami w obecnym projekcie. Jeśli natomiast powstał nowy projekt, to nagle są dwa projekty legacy do utrzymania.
Gdyby drużyna tygrysów zużyła swoją energię na powolne poprawianie kodu, żeby wyglądał coraz lepiej, może udałoby się uratować ten projekt. Jeden projekt. Nie zawsze da się małą refaktoryzacją i testami wszystko naprawić, ale warto spróbować. Tymczasem często cierpimy na syndrom „nienapisane-przez-nas” i zdecydowanie gorzej oceniamy cudzy kod, niż nasz własny. A już najgorszy koszmar to poprawianie po kimś, bez spektakularnych zmian. Czujemy się niedocenieni, bo to taka mrówcza praca, a z punktu widzenia użytkownika właściwie nic się nie zmienia.
O tym, za co nie lubimy kodu legacy mówię na vlogu. A o tym dlaczego ta niechęć jest jednym z wrogów jakości mówię na swojej prezentacji, którą prezentowałam m.in. na wrocławskim JUGu.
Jakie dziedzictwo tworzysz?
Praca z niewygodnym kodem rozwija nas i pozwala zdobyć szacunek zespołu. Każdy potrafi napisać Hello world i przy pierwszych problemach porzucić projekt. Natomiast tylko ambitni programiści zaopiekują się tym co jest im dane z ciekawością i pokorą. Zastosowanie zdobytej wiedzy do renowacji, a nie do rozorania projektu jest oznaką dużo większej dojrzałości.
Najważniejsze nie jest to do jakiego kodu wchodzisz, ale jakim go zostawiasz. Czasem wchodząc do repozytorium używamy sobie na autorach tego spaghetti. Jest nawet taka jednostka WTF/min, czyli ilość okrzyków niezrozumienia na minutę 😉 Pytanie, czy po twoich zmianach ta liczba się zmniejszy. Potrafimy siebie usprawiedliwiać na sto sposobów, ale jedyne co ma znaczenie, to w jakim stanie ten kod opuści twój edytor.
Acha, no i jeśli masz wątpliwości, czy dobrze wymawiasz słowo legacy, sprawdź nagranie Maćka Jędrzejewskiego.