Mierzenie zwinności w architekturze

Data: 2017-12-18
Autor: Sebastian Konkol
Mierzenie zwinności w architekturze

Wiele uwagi poświęcono miarom stosowanym dla oceny sprawności działania procesów wytwórczych opartych na zwinnym podejściu do tworzenia oprogramowania. Od jakości kodu, przez satysfakcję użytkowników, po zadowolenie każdego z członków zespołu i prędkość działania zespołu jako całości. W jaki sposób zmierzyć jednak zwinność w architekturze? Bo jak nie zmierzymy, nie uwierzymy…

Wiemy już, że zwinna architektura to coś znacznie więcej, niż architektura powstała w projekcie realizowanym zwinnymi metodami czy zarządzanym w takim duchu. Tak samo nie można stosować miar zwinności z procesów wytwórczych do oceny zwinności architektury. Tu potrzebne są miary odnoszące wynik prac architekta do ostatecznego, oczekiwanego efektu. Tylko czym jest ten efekt ostateczny? Zwinność oznacza zdolność dopasowania, a najpiękniejszym i najskuteczniejszym procesem dostosowawczym jest ewolucja naturalna. Natura nie dba o cel i sens, ale niejako ubocznym wynikiem ewolucji jest dopasowanie – algorytm bez narzuconego celu, opierający się na rozmnażaniu zróżnicowanych jednostek w środowisku wymuszającym współzawodnictwo o zasoby, zakładający eksperymentowanie przez dłuższy czas. Nie polecam takiej metody jako właściwej dla tworzenia rozwiązań informatycznych, jednak – czemu nie – możemy dokonać próby opacia miar zwinności architektury na dokonaniach ewolucji, troszkę się od niej nauczyć i być może coś wykorzystać. Spróbujmy więc. Odrywamy się od systemów, architektury, a nawet informatyki w całości. Z perspektywy natury, zwinność (cecha procesu ewolucji) to zdolność do trwania w zmiennym, niepewnym i nieprzewidywalnym środowisku. Taką odpowiedź można uznać za skuteczną, jeśli jest na czas (wystarczająco szybka, aby dostarczyć wartość), dostępna (o koszcie, na który można sobie pozwolić), wiarygodna (można liczyć na to, że wypełni oczekiwania) oraz wszechstronna (ograniczona jedynie granicami misji, z rozmachem). Dobrą odpowiedź na zmianę należy więc mierzyć czasem, kosztem, powtarzalnością efektu i zasięgiem działania. Tak to widzi natura, a w przełożeniu na mierzenie efektów pracy architekta widziałbym to następująco:

  • czas odpowiedzi – mierzony zarówno jako czas od dostrzeżenia zmiany do podjęcia decyzji o tym, że odpowiedź jest konieczna oraz czas od podjęcia tej decyzji do zrealizowania odpowiedzi;
  • koszt odpowiedzi – mierzony zarówno jako koszt zrealizowania odpowiedzi jak i koszt ponoszony w innych miejscach w konsekwencji takiej odpowiedzi;
  • pewność zdolności do odpowiedzi – mierzona gotowością architektury do realizacji odpowiedzi na zmianę przed i potwierdzana po jej wykonaniu na podstawie powtarzalności adekwatności skutecznej odpowiedzi;
  • zasięg zdolności do odpowiedzi – mierzona szerokością dostępnych opcji realizacji odpowiedzi na zmianę przed i potwierdzona po jej wykonaniu na podstawie powtarzalnych dowodów szerokiego zasięgu przyjęcia odpowiedzi.

Dlaczego tak? Jeśli przyjmiemy, że „jedyną stałą jest zmiana”, ostatecznie każdy konkretny, postawiony cel prędzej czy później zdewaluuje się, przestanie być wartym osiągania. Skoro nie ma stabilnego celu, którego osiągnięcie możemy zmierzyć, musimy mierzyć warunki działania i odnosić je do tego, co możemy zdziałać. Celem staje się efektywność skutecznego dostosowania. Kiedy warunki się zmieniają, musimy się dopasować – im szybciej, taniej, pewniej i bardziej kompleksowo będziemy w stanie się zmieniać, tym lepiej. I to nie jednorazowo, w postaci zrywu, ale w sposób rutynowy, systematyczny. To właśnie powtarzalność świadczy o zdolności do adaptacji. Co nam po taniej zmianie, której nie możemy powtórzyć? Albo po co nam szybka zmiana, która ograniczy dostęp do innych opcji w przyszłości? Czas, koszt, powtarzalność i zasięg muszą pozostawać w równowadze. Zwinna, adaptacyjna architektura musi być oceniana przez pryzmat zdolności do realizacji odpowiedzi na zdarzenia – szanse i zagrożenia, reaktywnie i proaktywnie – w nieprzewidywalnych, niepewnych warunkach ciągłej zmiany.

Pozostaw komentarz