ArcheologDemon NR.5

Czas na kolejnego demona programisty.

A jest nim Archeolog.

W ostatnim roku dostałem zadanie pielęgnacji bardzo starego systemu napisanego JavaScripcie używającego kontrolek ActiveX.

W systemie wszystkie informacje transformują się do różnych form XML z 3 razy, aż w końcu powstaje ten ostateczny XML, który zostaje zapisany do bazy Oracle.

Jeśli w którejś transformacji coś się nie zgadza, to cały system nie działa.

Przez te transformacje oraz fakt, że logika biznesowa jest w plikach JavaScripcie po 4000 stron było dla mnie oczywiste, że w końcu napotkam tego demona na swojej drodze.

Demon Archeologa

Tym demonem jest archeolog. Jak sama nazwa wskazuje zadaniem archeologa jest zrozumieć jak system działa dokładnie go analizując. Delikatnie swoim narzędziami archeologicznymi usuwamy kusz z systemu i sprawiamy, że on jeszcze działa.

Istnieje jednak pewien cień Archeologa, poznawacza systemu Legacy.

Skoro ten system jest tak niepotrzebnie skomplikowany, to najlepiej go w ogóle nie ruszać.

Cel jest szlachetny. Archeolog chce zachować spójność systemu, ale to też ma swoją cenę.

Demon Archeologa - zasada “if ain’t broke, don’t fix it” do poziomu ekstremalnego.

Zmiany w systemie są potrzebne i co mam powiedzieć, że “system jest zbyt delikatny i lepiej go nie zmieniać”.

Osoby biznesowe chcą wprowadzić nową politykę i system musi się zmienić. Tak powiedzmy z 30% systemu musi zostać napisana od nowa w tych plikach JavaScript.

Czy to będzie irytujące?

Tak.

Czy powinieneś dostać podwyżkę za te męki ?

Tak.

Czy powinieneś uciec od ciężaru i odpowiedzialności Archeologa?

Nie.

W takich chwilach sobie uświadamiasz, że płacą ci za programowanie, a nie za to, że powtarzasz mantrę zostawcie to jest złe. Wszystko może w każdej chwili eksplodować.

Sam dotyk tego systemu może zabić.

Oczywiście łatwiej jest być tym kolegą po drugiej stronie i zastanawiać się, dlaczego ten archeolog tak bardzo nie chce dotykać tego systemu.

Zrozum jednak kolegę i wiedz, że ciężar tego cienia jest czasem ciężki i pomóż mu się zmierzyć z tym demonem.

To oczywiście moja historia.

Istnieją gorsze przykłady archeologa. Ja odziedziczyłem ten tytuł archeologa od pradziada z Francji, który to stworzył dla dziada z Polski, dla ojca opiekuna tego systemu, który ostatecznie z tego powodu zmienił pracę.

Co z tym pierwszym archeologiem?

Tym na początku tego drzewa dziedziczenia systemu.

Ten archeolog reprezentuje wersje demona, który określa brak myślenia o przyszłości.

Rozmyślanie o tym co będzie z tym systemem później jest zawsze kłopotliwe. Nie zawsze jest to możliwe, ale obecnie w środowisku zawodowym ludzie 100 razy się zastanawiają czego użyć, by to nie stało się kawałkiem kamienia z poprzedniej epoki programistycznej.

Nawet osoby biznesowe są coraz bardziej wyedukowane, że trzeba dbać o system by nie powstał behemot, który wysadzi wielomilionową firmę w powietrze. Na tym nie oszczędza się pieniędzy. To później pożera pieniądze.

Co więcej, są tworzone plany by zabierać ten system do następnej epoki ewolucji, jeśli jest to potrzebne.

Jednakże…

Nasz archeolog, który żyje w przeszłości ma wizję systemu zawieszonego na tym, co było wtedy, i że zapewne ten system w momencie wdrożenia zostanie na zawsze na tej platformie, na tej bazie danych, na tym systemie operacyjnym i na tej procedurze wdrożenia.

Każda myśl o przyszłości to wróg. System nie został napisany z myślą o łatwych zmianach, więc każda zmiana jest traktowany jak piorun.

Kto wie może archeolog cierpiał na demona ulubieńca technologii i traktował zmianę jak wampira, który wyssał jego miłość do swojego ukochanego starego rozwiązań.

Jedyne słuszne rozwiązania istnieją w przeszłości, bo one są już sprawdzone. Jednak nawet taka filozofia doprowadzona do ekstremum może później poważne kopnąć w twarz.

PASCAL to sprawdzone rozwiązanie. Visual Basic to sprawdzony język programowania. Internet Explorer to sprawdzona przeglądarka. Windows XP to sprawdzony system operacyjny. ASP.NET Web Form to wspaniała technologia oparta na kontrolkach i łamaniu zasad znanych z wzorców projektowych.

Zdaj sobie sprawę, jakie to wszystko jest bardzo błędne.

Im bardziej trzymasz się przeszłości, tym bardziej nie myślisz o rozbudowie i następnych epokach, tym bardziej ten demon archeologa rośnie w tobie.

Zwłaszcza jeśli patrzysz na system, który używa kontrolek z Internet Explorer ActiveX.

Nie myśl o przeszłości i nie stawaj się archeologiem,. Jeśli tworzysz system, to pomyśl o przyszłości.

Tak, aby nikt nie dziedziczył tego demona archeologa dekadami.