Utrzymanie, Boże tylko nie utrzymanie

O Boże tylko nie utrzymanie

Jak niespełna trzy lata temu dowiedziałem się, że zostaję przeniesiony do działu utrzymania pomyślałem sobie: „to koniec, muszę zaktualizować profil na LinkedIn i szukać nowej roboty”. Przecieć utrzymanie to zabójstwo dla rozwoju. Przecież utrzymanie to nieustanne analizowanie „spaghetti code” stworzonego przez jakiś nieudaczników, co to nie mają pojęcia o programowaniu. To ciągłe użeranie się z klientem, który sam nie wie czego chce i najchętniej to by kazał wybudować kolejne piętro wieżowca koniecznie zaraz nad parterem. Utrzymanie to algorytmy wybite na perforatorach maszyny obliczeniowej Odra.

Ciężki kawałek chleba

Na poczotku naprawdę było ciężko. Nie dość, że utrzymanie to jeszcze aplikacja przejęta od tureckiego dostawcy, której kod powstał jeszcze zanim Sobieski ruszył z odsieczą wiedeńską. Wdrożenie w ośmiu krajach, z których kazdy „ciągnł w swoją stronę” non stop się awanturując dlaczego nie działa. Czułem się jak ryba wyciągnięta na wędce na brzeg, rzucająca się w amoku. I jeszcze ta baza Oracle, która nie wiedzieć czemu, potrafiła wykonywać zapytania po 15 minut doprowadzając do białej gorączki użytkowników systemu. Tego już kompletnie nie mogłem zrozumieć, przecież to soft za grube tysięce dolarów.

Developerska pańszczyzna

Dziś, kiedy już przekazałem swój zespół utrzymaniowy w ręce swojego kolegi, postrzegam ten okres w zupełnie inny sposób. Analizuję ile się nauczyłem i jak zmieniło się moje podejście do wytwarzania oprogramowania. Gdy myślę o powstającym systemie dostrzegam zupełnie nowe aspekty. Uważam, że każdy developer, który chce pełnić kiedykolwiek funkcję architekta lub tema lead’era musi, na pewnym etapie swojej kariery, zasmakować utrzymania. Musi zobaczyć co to znaczy system działający produkcyjnie, musi poznać smak rygoru narzucanego przez SLA. Tylko będćc w zespole utrzymaniowym, możemy na własnej skórze przekonać się co to jest dług technologiczny, gdyż uderza on nas w twarz dopiero wtedy, gdy aplikacja trafia w ręce docelowego użytkownika. Nic jak utrzymanie nie nauczy nas, że system, który właśnie tworzymy, to narzędzie do zarabiania pieniędzy dla naszego klienta. To nie „projekt” na zaliczenie studenckich laboratoriów, który możemy zaliczyć na trójkę czy na piątkę, a i tak wieczorem pójdziemy na piwo. Z systemami produkcyjnymi musimy obchodzić się jak z jajkiem i tego nauczy nas wyłącznie faktyczne obcowanie z nimi. Utrzymanie to developerska pańszczyzna, którą każdy z nas musi kiedyś odrobić aby móc nazywać się prawdziwym specjalistą.