Kiepski kod – 1 – Powolne tworzenie nowych funkcjonalności

Pamiętasz sytuacje, gdy czas implementacji nowych funkcjonalności rósł w nieskończoność? Masz może w głowie projekt, gdzie dodanie pola, czy zmiana pojedynczej reguły walidacyjnej trwała wieki? Ja niestety tak. Jednym z powodów takiego stanu rzeczy jest niedbanie o czystość kodu. Sytuację tę przedstawię na przykładzie kuchennej analogii wyjaśniającej powolne tworzenie nowych funkcjonalności.
Ten post jest częścią cyklu dotyczącego symptomów niezadbanego kodu. Lista powiązanych artykułów znajduje się we wstępnym poście.
Brudny zlew
Brudny i niezadbany kod można porównać do robienia obiadu i niemyciu naczyń na bieżąco. Start projektu. Zaczynasz na grinfildzie. Wchodzisz do czystej kuchni. Żaden, najmniejszy paproch nie leży na blacie. Widzisz odbicie swych pięknych oczu na dnie zlewu. W takich warunkach przygotowujesz obiad szybko i bezproblemowo. Wszyscy pałaszują ze smakiem, więc klient jest zadowolony. Jeżeli pominiesz codzienny refaktoring, składający się z wymycia naczyń i sprzątania kuchni, to następny obiad zrobisz wolniej, bo będziesz zmuszony pozmywać część starych naczyń. Tutaj jeszcze nie ma problemu, ale kilka, kilkanaście sprintów później okazuje się, że przygotowanie nowego dania trwa… i trwa. Prowadzisz poszukiwania kubków, sztućców i talerzy w stercie brudnych garczków. Znajdujesz, pokryty już pleśnią, przypalony garnek. Wahasz się, przeprowadzić refaktoring, by go wyczyścić lub starym dobrym zwyczajem znaleźć łorkerand i ugotować parówki w czajniku elektrycznym.
Analogia
Różnica pomiędzy zlewem a kodem jest taka, że zlew łatwiej doprowadzić do stanu masy krytycznej. Natomiast kod może być tak składowany i niemyty miesiącami, zanim porządnie zaśmierdnie. Sfermentuje, uwalniając paskudny zapach biurowego mleka, ulatniający się z kartonu po odkręceniu korka w poniedziałkowy poranek.
To wszystko?
Byłbym ignorantem, gdybym twierdził, że spowolnienie implementacji nowych funkcjonalności jest spowodowane tylko niedbaniem o kod źródłowy. Owszem jest to ważny czynnik, lecz nie jedyny. Zwróć uwagę, że wraz z rozwojem projektu wzrasta jego złożoność i rośnie ilość kodu. Co oczywiście również wpływa na przebieg prac, ale to już temat na kiedy indziej.
Podsumowując
Dbaj o czystość kodu od początku trwania projektu, ponieważ łatwiej Ci będzie utrzymać stałe tempo dostarczania nowych funkcjonalności. Masz może doświadczenie w tym temacie, a ja o czymś zapomniałem? A może chciałbyś o coś zapytać? Pisz! Chętnie przeczytam i odpowiem.
0 Komentarzy