Proces podstawowy

W poprzednim artykule poznaliśmy jeden z najważniejszych elementów teorii Alexandera: procesy żywe - jedyne procesy prowadzące do powstania dobrych systemów złożonych. Dziś przyjrzymy się dokładniej strukturze takich procesów.

W poprzednim artykule poznaliśmy jeden z najważniejszych elementów teorii Alexandera: procesy żywe - jedyne procesy prowadzące do powstania dobrych systemów złożonych. Dziś przyjrzymy się dokładniej strukturze takich procesów.

W podejściu Alexandera system nie jest traktowany jako zlepek niezależnych części, lecz jako niepodzielna całość. Również procesy żywe są holistyczne. Proces taki zawsze oddziałuje na całość. Nawet jeżeli działa lokalnie, głównym kryterium jakości procesu jest wpływ na całość systemu. Archetypem procesu żywego jest proces rozwoju zarodka: na każdym etapie rozwoju mamy do czynienia z całością (jeszcze nie w pełni rozwiniętą). Każdy następny krok w procesie wynika z aktualnej całości i zachowuje jej strukturę. Nie są dodawane nowe części, lecz rozwijane to, co istnieje już w formie utajonej.

Proces żywy musi być z jednej strony zachowawczy (zachowywać strukturę całości, na której działa), a z drugiej twórczy (rozwijać i wzbogacać istniejącą strukturę). Takie przekształcenie całości Alexander nazywa przekształceniem zachowującym strukturę (Structure-Preserving Transformation - SPT). W procesie żywym każdy krok jest transformacją tego rodzaju. W informatyce mamy podobne pojęcie - refaktoryzacja, czyli przekształcenie kodu zachowujące jego funkcję - na przykład wydzielenie wspólnej nadklasy z dwóch wcześniej niepowiązanych klas.

Przekształcenia zachowujące strukturę są ogniwem łączącym procesy żywe z opisywanymi w jednym z poprzednich artykułów piętnastoma cechami podstawowymi (cechami strukturalnymi dobrych systemów). Każde przekształcenie wprowadza do systemu jedną lub więcej cech podstawowych. Można zatem wyróżnić piętnaście przekształceń podstawowych - każde odpowiedzialne za wprowadzenie jednej cechy podstawowej. Są to "atomy", z których budowane są procesy żywe. Ogromna różnorodność procesów żywych w naturze i wykonywanych przez ludzi została sprowadzona do kilkunastu transformacji! W tym miejscu narzuca się analogia ze zbudowanym z czterech rodzajów nukleotydów łańcuchem DNA, na którym opiera się cała różnorodność biologiczna w przyrodzie.

Tak na marginesie, pouczające byłoby przyjrzenie się refaktoryzacjom w informatyce z punktu widzenia piętnastu przekształceń podstawowych. Na przykład wspomnianą wyżej refaktoryzację można potraktować jako wprowadzenie lokalnej symetrii w systemie (dwie niezwiązane klasy stają się symetryczne przez wprowadzenie wspólnej nadklasy).

Proces podstawowy

Przekształcenia podstawowe nie mówią jednak jak z nich tworzyć procesy. Procesy żywe mogą być proste, trwać chwilę lub bardzo złożone, trwać setki lat (np. budowanie miasta). Jednak każdy proces - niezależnie od wielkości, czy dotyczy budynków, firmy, systemu informatycznego, planowania, projektowania, czy konstrukcji - jeżeli jest częścią procesu żywego, zawsze będzie posiadał określoną formę. Jeżeli zaczniemy rozkładać proces żywy na drobniejsze podprocesy okazuje się, że jest kombinacją lub kombinacją kombinacji uniwersalnego procesu, nazwanego przez Alexandera procesem podstawowym. Innymi słowy, proces podstawowy jest ogólnym szablonem na wyższym poziomie abstrakcji niż przekształcenia podstawowe, jest to też poziom bardziej dostosowany do zastosowania w procesach tworzonych przez człowieka. Stanowi on kontekst dla użycia przekształceń podstawowych.

Proces podstawowy wygląda mniej więcej tak. Zaczynamy od pewnej częściowo rozwiniętej całości (systemu). Jak najgłębiej przyglądamy się ogólnej strukturze całości - zarówno widocznej, jak i ukrytej. Następnie określamy, pod jakim względem struktura jest najsłabsza jako całość, najmniej spójna. Przyglądamy się uśpionym (potencjalnym lub nie w pełni rozwiniętym) centrom i wybieramy centrum, które najbardziej przyczynia się do słabości całości. Wybrane centrum jest tym, na którym będziemy pracować. Używamy jednego lub więcej z piętnastu elementarnych przekształceń zachowujących strukturę, żeby wzmocnić strukturę jako całość. Teraz sprawdzamy, czy struktura jako całość jest silniejsza, bardziej spójna. Sprawdzamy też, czy to co zrobiliśmy jest najprostszą rzeczą. Wracamy na początek cyklu i stosujemy ten sam proces ponownie. Każdy proces żywy jest iteracyjnym powtórzeniem procesu podstawowego dziesiątki, setki, tysiące razy, aż do momentu, gdy nie można wzmocnić struktury całości.

Zwróćmy uwagę, że podobny proces jest często stosowany jako cykl usprawniania procesu w firmie. Najpierw jest faza oceny aktualnego procesu, wybranie obszaru do usprawnienia (np. zbieranie wymagań), planowanie usprawnień, wdrażanie zmian, weryfikacja wpływu wprowadzonych zmiany i przejście do kolejnego cyklu.

Chociaż proces podstawowy może wydawać się bardzo prosty, to ma on ogromne możliwości, podobnie jak DNA w biologii. Opis powyższy jest idealizacją, w praktyce procesy żywe często są mniej formalne, nie muszą operować w terminach centrów.

Proces naturalny

Proces żywy można rozumieć również jako najbardziej naturalny proces w danych warunkach. W pewnym sensie idea procesu żywego jest tylko formalnym sposobem mówienia o procesie naturalnym. Istnieją różne rodzaje procesów naturalnych. W jednym procesie naturalnym robisz po kolei rzeczy, które przychodzą ci do głowy. "Jest to proces naturalny, w tym sensie, że nie ma narzuconego rytmu i porządku. (...) Ale mądrzejszy proces naturalny obejmuje głębsze rzeczy, które nie są oczywiste dla wykonawcy. Jest to bliższe zen, gdzie celem jest całkowita naturalność, lecz zawiera również głęboką mądrość" - pisze Alexander.

Proces żywy obejmuje nasze naturalne działanie, ale jest też głębszy, włącza dodatkowe centra, których naiwna intuicja mogłaby nie wziąć pod uwagę. Innymi słowy, pozwala robić lepiej to co robimy naturalnie.

Powstaje (naturalne) pytanie, co to znaczy, że proces jest naturalny? Jak można porównać naturalność dwóch procesów? O tym w kolejnym odcinku cyklu. Związane jest to z, według Alexandera, najważniejszym i najgłębszym (również najbardziej kontrowersyjnym) aspektem całej teorii - głębokim uczuciem.

<hr>W Polsce związkami prac Alexandera z informatyką zajmuje się projekt Humanistyczna Inżynieria Oprogramowania (http://www.projekt-hio.info ).

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200