QWAN, czyli jakość bez nazwy

Przed tygodniem pisałem o wzorcach i językach wzorców w ujęciu Christophera Alexandera. Omawiając jego teorię wzorców, nie sposób pominąć jakości bez nazwy - najważniejszej cechy dobrych wzorców.

Przed tygodniem pisałem o wzorcach i językach wzorców w ujęciu Christophera Alexandera. Omawiając jego teorię wzorców, nie sposób pominąć jakości bez nazwy - najważniejszej cechy dobrych wzorców.

Pierwsze wskazówki pojawiają się we wczesnych pracach Alexandera z lat 60. (On the Synthesis of Form). Analizował on siły związane ze stoiskiem do sprzedaży biletów na lotnisku. Zebrał 390 wymagań, określających, co powinno się dziać wokół stoiska (kupowanie biletu, przesuwanie się kolejki kupujących, przemieszczanie się ludzi obok kolejki itp.). Na początku oparł się na klasycznej analizie operacyjnej: określił cele, zdefiniował wymagania itd. Uwagę Alexandera zwróciła niepokojąca rzecz, pomimo prawidłowego wykonania wszystkich kroków w systemie istniały wewnętrzne siły, które mogły spowodować jego wadliwe funkcjonowanie. Na przykład, jeżeli dwie lub więcej osób zatrzyma się przy kolejce, może spowodować to zator. Co więcej, siły te były poza kontrolą projektanta. Nietrudno wskazać podobne przypadki w IT. Bezpieczeństwo systemów informatycznych często jest zagrożone nie dlatego że są błędy w oprogramowaniu, ale dlatego że użytkownicy, na przykład chcąc odciążyć pamięć, przykleją do monitorów karteczki z hasłami.

QWAN

Sytemu nie można opisać przez arbitralny zestaw zewnętrznych wymagań. Jakość systemu zależy również od zrównoważenia sił powstających z wnętrza systemu.

Alexander określa taki stan równowagi jako "subtelny rodzaj wolności od wewnętrznych sprzeczności". Jest to jedna z definicji jakości bez nazwy - QWAN (Quality Without A Name).

Rozważmy dwa zespoły programistów. W pierwszym funkcjonuje system nakazowo rozdzielczy, pracownicy traktowani są jak kółka w maszynie, nie ufa się im, proces, narzędzia, sposób realizacji zadań, nawet sposób ustawienia biurek są narzucone odgórnie. W drugim duża część odpowiedzialności jest delegowana do pracowników, mają oni wpływ na proces, sami dobierają narzędzia, współpraca opiera się na wzajemnym zaufaniu, zespół działa bardziej na zasadach samoorganizacji niż norm i procesów narzuconych z zewnątrz. W pierwszym zespole wewnętrzne siły są znacznie silniejsze i mniej zrównoważone; bez ciągłej interwencji z zewnątrz system taki szybko się rozpadnie, duża część energii jest poświęcona na rozwiązywanie wewnętrznych konfliktów. Drugi zespół jest znacznie bardziej stabilny, działające wewnątrz siły są zrównoważone, wytrącony ze stanu równowagi w naturalny sposób do niej powróci. Jasne jest, że drugi system (zespół) ma więcej QWAN.

Człowiek

Oprócz znaczenia systemowego, widać tu jeszcze jeden ważny aspekt jakości bez nazwy: ogromna większość osób czułaby się lepiej, bardziej wolna, bardziej ludzka w zespole drugim. I tu dochodzimy do podstawowego dla Alexandera, choć dla wielu informatyków trudnego do przyjęcia, związku QWAN z ludzkim życiem i uczuciami. Według niego jakość bez nazwy jest "centralną jakością, będącą podstawowym kryterium życia i ducha w człowieku, mieście, budynku czy przyrodzie". Jest to najważniejsza rzecz w ludzkim życiu. QWAN możemy rozpoznać w budynkach czy innych systemach, ponieważ potrafimy rozpoznawać ją w nas samych, jest to najbardziej pierwotne ludzkie odczucie. Doświadczamy jej, gdy jesteśmy wolni, swobodni, czujemy, że żyjemy. Wyobraźmy sobie, że jesteśmy na wczasach z dobrymi przyjaciółmi, siedzimy w miłej kawiarence, nie musimy się spieszyć, udawać kogoś innego, kontrolować sytuacji. Jest wtedy w nas więcej QWAN niż gdy jesteśmy na oficjalnym przyjęciu biznesowym, wśród nieznanych osób. O osobach, w których jest dużo QWAN, często mówi się, że są autentyczne, rzeczywiste, wierne sobie, mają w sobie coś z małego dziecka.

QWAN w IT

Wielu informatyków zastanawia się w tym miejscu, co to ma wspólnego z ich dziedziną? Może w sztuce i architekturze ma to jakiś sens, ale w tworzeniu oprogramowania? Po pierwsze, jest to centralne pojęcie w pracach Alexandera - stanowi główne kryterium oceny wzorców - i bez niego nie można naprawdę zrozumieć, czym są wzorce. Po drugie, jesteśmy ludźmi i odkrywanie związków między naszą pracą a tym, co jest dla człowieka ważne powinno mieć dużą wartość. Po trzecie, może to mieć znaczenie praktyczne. Związane jest to też z - często wzbudzającą kontrowersję - metodą Alexandera szacowania QWAN w systemach - opiera się ona na introspekcji własnych odczuć (Alexander opisuje kilka takich technik). Zasadność (i obiektywność) takiego podejścia opiera się na wielkiej zgodności oceny między różnymi ludźmi.

Wbrew pozorom nie jest to coś odległego od praktyk stosowanych w IT. Wśród informatyków nierzadko pojawia się argument, czy dane rozwiązanie podoba się, czy nie, czy jest eleganckie. Gdy patrzymy na jeden kod, najchętniej nie chcielibyśmy mieć z nim nic wspólnego, z innym kodem znowu aż przyjemnie jest pracować. Z prac Alexandera wynika, że przynajmniej część z tych praktyk związana jest z obiektywnymi właściwościami systemu. Co więcej, uczynił on z tego najważniejsze kryterium oceny systemów. Zastanawiające, że wielu wybitnych matematyków czy fizyków stosowało podobne podejście. Dla Einsteina wewnętrzna prostota była jednym z najważniejszych kryteriów oceny teorii fizycznej, poszukiwanie prostoty doprowadziło go między innymi do sformułowania ogólnej teorii względności.

Dick Gabriel w Patterns of Soft-ware zastanawiając się, jakie cechy powinien mieć kod posiadający QWAN, wymienia m.in.

  • wszystkie moduły, funkcje, klasy, abstrakcje są małe i tak nazwane, że wiem, co robią bez patrzenia na implementację;

  • kod jest jak fraktal, w którym każdy poziom szczegółów jest równie spójny i przemyślany;

  • każda część kodu jest jasna - nie ma fragmentów, które są niejasne ze względu na wydajność.

    Poza wzorce

    Dla Alexandera wzorce i języki wzorców były tylko drogą do osiągnięcia QWAN. Miał to być etap pośredni, po którym wzorce można odrzucić, a jakość bez nazwy osiąga się w sposób naturalny. Wzorce jednak nie spełniły nadziei Alexandera, co pchnęło go do poszukiwania głębszej teorii. W ten sposób powstało monumentalne dzieło The Nature of Order, o którym będę pisał w kolejnych odcinkach cyklu.

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


  • TOP 200