Czym jest dług architektoniczny?
Dług w pojęciu ekonomicznym oznacza niespełniony obowiązek pewnego świadczenia przez dłużnika na rzecz wierzyciela. Jak to pojęcie można odnieść do architektury korporacyjnej? Zanim spróbuję zdefiniować pojęcie długu architektonicznego – najpierw odniosę się do jego protoplasty – tj. długu technologicznego. Termin ten został wprowadzony przez Howarda G. „Ward’a” Cunningham’a (twórcę pierwszego wiki). Według niego dług technologiczny zostaje zaciągnięty, gdy budujemy rozwiązanie informatyczne na skróty, wiedząc że będzie trzeba w przyszłości do tego miejsca wrócić i wykonać pracę jeszcze raz.
Na blogu Szymona Błochowicza umieszczona jest taka definicja długu technologicznego: “Cokolwiek co czyni Twój produkt trudnym do zmiany w przyszłości jest długiem technologicznym – możesz albo zapłacić pełną cenę technologiczną teraz (zrobić od razu rozwiązanie elastyczne) albo zaciągnąć dług i spłacić go później (zrobić rozwiązanie szybkie ale nieelastyczne a przy pierwszej konieczności zmiany mieć trudność z brakiem elastyczności)”. Najczęściej dług technologiczny kojarzony jest ze sposobem kodowania, dokumentowania czy też testowania. Ale Arkadiusz Bendedykt na swoim blogu wskazuje również, że “dług technologiczny to nie tylko pójście na skróty podczas kodowania, to również zaniechanie przechodzenia na najnowsze wersje narzędzi programistycznych oraz nie wspieranie najnowszych systemów operacyjnych”. Jeszcze dalej idzie Jan Rychter, który wskazuje że: “gdy dotyczy to [tj. pójście na skróty – przypis A.S.] pojedynczych funkcji w kodzie, dług jest niewielki. Gdy jednak mówimy o decyzjach architekturalnych [wolałbym używać określenia decyzje architektoniczne – przypis A.S.], może być olbrzymi i pociągać za sobą konieczność przerabiania kiedyś całych systemów”.
A jak możemy zdefiniować dług architektoniczny? Jak dla mnie jest to zaciągnięte zobowiązanie (najczęściej przez projekt lub program wprowadzający określoną zmianę organizacyjną) na rzecz organizacji, wynikające sposobu realizacji i/lub integracji określonych bloków budowlanych rozwiązań (solution building blocks). Dług architektoniczny wynika najczęściej z nieprzestrzegania przyjętych pryncypiów, standardów i odejścia w niekontrolowany sposób od zaplanowanego modelu stanu docelowego organizacji.
Czym to pojęcie różni się od długu technologicznego? Po pierwsze poziomem abstrakcji. Tam mówimy o długu na poziomie kod – tutaj długu o charakterze organizacyjnym. Tam odnosimy się do pojedynczego systemu – tutaj odnosimy się do całej organizacji (lub co najmniej do istotnej jej części). Tam mówimy wyłącznie o technologii – tutaj mówimy o rozwiązaniach IT jak i biznesowych (dotyczących np. procesów biznesowych). Natomiast w jednym i w drugim przypadku pojawienie się długu rodzi konsekwencje odroczone w czasie (czyli nie widać od razu skutków negatywnych zaciągnięcia długu). Także w jednym i w drugim przypadku wprowadzenie długu pozwala nam zyskać na czasie (rozwiązanie/zmianę organizacyjną będzie można szybciej dostarczyć na rynek – czyli następuje skrócenie time2market).
Jakie można podać przykłady długu architektonicznego? Jest to np. odejście od określonych standardów integracyjnych w firmie (cała integracja jest przeprowadzana z wykorzystaniem szyny, a departament “X” wprowadził integrację za pomocą FTP’a, albo bezpośredniego sięgnięcia do tabel). Innym przykładem długu architektonicznego jest odejście do pełnej centralizacji określonej grupy procesów – jeden proces na skutek interwencji związków zawodowych dalej będzie realizowany lokalnie – co za moment bardzo skutecznie ograniczy dalsze działania optymalizujące…
Jak możemy podzielić dług architektoniczny? Po pierwsze możemy wskazać dług explicite oraz dług ukryty. Ten pierwszy – występuje wówczas, kiedy mamy pełną jego świadomość (np. Rada Architektoniczna, Komitet Rozwoju IT, CIO, Dyrektor IT… zgodził się na jego zaciągnięcie). Dług ukryty – jest wówczas gdy zespół nadzorujący IT/koordynujący zmianę nie ma świadomości jego powstania. Typowy obecnie przykład – to wprowadzenie do organizacji przez departament biznesowy, bez zgody IT, rozwiązania w chmurze – bo departament ten nie może się doczekać systemu budowanego przez IT w ramach wielkiego, mocno już opóźnionego projektu. Innym rodzaje długu architektonicznego jest dług potencjalny. Jego wystąpienie i zakres zależy od szeregu uwarunkowań, o których obecnie nie mamy do końca pojęcia. Taki dług jest bardzo trudny do zmierzenia.
Dług architektoniczny – tak jak dług w rozumieniu ekonomicznym – stanowi – co jest istotne z punktu widzenia rozwoju organizacji – źródło określonych obciążeń. Obciążenia te polegają, po pierwsze, na konieczności płacenia pewnej formy odsetek oraz, po drugie, na spłacie samego długu. Czym są odsetki od długu architektonicznego? Uważam, że są to konieczne DODATKOWE (ekstra) wydatki na wprowadzanie kolejnych zmian w organizacji, których by nie było gdyby nie zaciągnięto tego długu (w dwóch powyższych przykładach oznacza to eksta wydatki związane z obsługą niewłaściwie przeprowadzonej integracji systemów oraz centralizacji procesów). Jak można spłacić dług architektoniczny – najczęściej wiąże się to z koniecznością przeprowadzenia dużej (a co za tym idzie kosztownej i złożonej) zmiany organizacyjnej i zlikwidowania źródeł długu.
Czy można żyć z długiem architektonicznym? Można. Ale powoli zaczyna to przypominać ruchy “muchy w smole” – najpierw rusza się aktywnie, a potem coraz wolniej. To samo dzieje się wraz z narastaniem długu architektonicznego w organizacji. Zmiany są coraz wolniej wprowadzane, coraz więcej rzeczy jest nieweryfikowanych przed wprowadzaniem kolejnych zmian (bo po prostu zapomina się lub wręcz nie wie o sytuacjach wyjątkowych będących pokłosiem zaciągniętego długu architektonicznego).
Czy dług architektoniczny to samo zło? Absolutnie nie. Są takie sytuacje – że zaplanowany świat musi ustąpić brutalnej rzeczywistości – i coś trzeba zrobić na już, nie patrząc się na pryncypia, standardy, modele… Ma to miejsce w momentach przełomowych dla firmy (konkurencja coś wprowadziła – my musimy odpowiedzieć w przeciągu 3-5 dni). Ważne, aby była wiedza o zaciągnięciu tego długu, chęć jego zlikwidowania, a co najważniejsze świadomość że dług architektoniczny to problem dla organizacji. Czy tak się obecnie dzieje? W zdecydowanej większości organizacji nie. Długiem architektonicznym nie interesują się np. właściciele firm w postaci funduszy inwestycyjnych. One chcą tylko rezultatów w Excelu i w pewnym momencie doprowadzenia do korzystnego sprzedania firmy (stawiam tezę – że im zależy na ukryciu długu architektonicznego). Długiem architektonicznym nie interesują się często również w jednostkach publicznych – bo wiadomo, że wymiana decydentów następuje tam najczęściej co cztery lata i nie ma znaczenia co ci decydenci zrobili dobrze czy źle.
Kogo dług architektoniczny powinien obchodzić – na pewno właścicieli firm (udziałowców, albo przynajmniej radę nadzorczą), inwestorów branżowych (którzy chcą kupić firmę), działy kontrolingu, a w przypadku sektora publicznego – NIK ;).
Czy warto mierzyć dług architektoniczny. Jestem pewien, że tak. Kiedy się to przydaje? Np. w przypadku planowanego połączania dwóch firm wielkość długu architektonicznego może być jednym z elementów dyskusji o cenie zakupu… Ocena wielkości długu architektonicznego pozwala również podjąć decyzję o uruchomieniu programu transformacyjnego.
Kto walczy o minimalizację długu architektonicznego? Na pewno są to architekci korporacyjni (dług architektoniczny jest jak dla mnie jednym z kryteriów jakości architektury). Kto najczęściej zaciąga dług architektoniczny? Kierownicy projektów (ale już nie programów), namówieni przez właścicieli biznesowych poszczególnych systemów/rozwiązań.
Na co trzeba uważać przy długu architektonicznym? Przede wszystkim trzeba mieć widzę, gdzie te długi zostały zaciągnięte (tak jak trzeba mieć świadomość zaciągnięcia wszystkich kredytów). Po drugie trzeba nie wpaść w spiralę zadłużenia. Czyli trzeba uważać, gdy w rozwiązaniu obarczonym długiem architektonicznym wystąpi problem, nie rozwiązywać go wprowadzając kolejny dług (może to trochę przypominać sytuację – w której bank nie chce dać nam już kolejnego kredytu, to my idziemy po ten kredyt do firmy udzielającej chwilówek na lichwiarski procent).
Zamiast podsumowania pozwolę sobie przytoczyć za Wikipedią, że według danych z 2012 roku aż 58% Polaków ma długi, a co czwarty ma problemy ze spłatą swoich zobowiązań. Liczba niesolidnych dłużników w Polsce osiągnęła w marcu 2012 roku poziom blisko 2,16 miliona osób, zaś średnie zadłużenie Polaka wynosi 16 561 zł. Nie jestem pewien czy jest to dobry prognostyk w kontekście zarządzania długiem architektonicznym w naszym kraju…
Komentarze do wpisu
Pojęcie "długu" w projekcie śledzę od lat. Zjawisko to znane jest od lat 90-tych, Yourdon określa je opisowo jako "brak projektu" w rozumieniu braku całościowej koncepcji, i wskazuje, ze konsekwencją zaciągania tego długu jest "ustawiczne przerabianie" oprogramowania w takt pojawiania się nowych wymagań. Dług ten (architektoniczny, tu w rozumieniu architektury oprogramowania) jest zaciągany poprzez rozpoczynanie prac nie zaplanowanych i nie poprzedzonych projektowaniem architektury całości. Zadziwia mnie to, że piszą o nim nie tylko na blogach (powyższe cytaty) zwolennicy metod zwinnych, które to metody bazują wręcz na zaciąganiu tego długu. Prace polegające na odkrywaniu wymagań metodami kolejnych przybliżeń z pomocą prototypów, przy praktycznie zupełnym braku etapów analizy i projektowania np. przeciętny "sprint" to góra tydzień, jeżeli to jedyne planowanie w projekcie trwającym (planowanym na) rok to jest to mega dług.
Dodaj komentarz