Od czasu do czasu spotykam się w projektach z pojęciem “cynefin”. Najpierw typowy opis z jakim można się zetknąć w sieci:
Cynefin jest swoistą teorią, którą można wykorzystać do opisu działania skomplikowanych systemów takich jak różnego rodzaju przedsięwzięcia czy nawet relacje i problemy międzynarodowe. Jako model tłumaczy i próbuje pomóc w wyborze strategii działania, wskazując jednocześnie wzorce postępowania, które powinny być zdecydowanie inne w zależności od tego w jakiej sytuacji się znajduje się firma. W praktyce można korzystać z Cynefin jako narzędzia wspierającego zarządzanie projektem, zespołem lub nawet organizacją. Od jakiegoś czasu Cynefin przebija się także do ruchu agile’owego.
Model Cynefin ma pięć obszarów. Pierwsze cztery obszary to:
Prosty – związek między przyczyną a skutkiem jest dla wszystkich oczywisty. Proponowany schemat działania: odczuj-klasyfikuj-reaguj. Można stosować najlepsze praktyki.
Skomplikowany – związek między przyczyną a skutkiem wymaga analizy lub innej formy badań i/lub zastosowania wiedzy ekspertów. Proponowany schemat działania: odczuj-analizuj-reaguj. Można stosować dobre praktyki.
Złożony – związek między przyczyną a skutkiem mogą być dostrzeżony w retrospekcji (z perspektywy czasu), ale nie da się go przewidzieć. Proponowany schemat działania: sonduj-odczuj-reaguj. Możemy wykryć nową praktykę.
Chaos – nie ma żadnego związku między przyczyną a skutkiem na poziomie systemów. Proponowany sposób działania: działaj-odczuj-reaguj. Możemy odkryć powieściową praktykę
Piąta domena zwana “nieporządkiem” to stan niewiedzy o rodzaju istniejącej przyczynowości, w której osoby wracają do własnej strefy komfortu podczas podejmowania decyzji. (Źródło: Cynefin)
inne źródło podaje:
Model: Cynefin
Problem: Jakiego typu podejście zastosować w zależności od kontekstu?
Rozwiązanie: Użyj modelu Cynefin jako modelu decyzyjnego.
Opis techniki: Główna myśl modelu Cynefin jest następująca: zagadnienia, z którymi mamy do czynienia, nie są sobie równe i możemy je podzielić ze względu na ich złożoność. Stosuj podejścia adekwatne do poziomu złożoności twojej dziedziny.
Proste (ang. simple) ? to systemy, w których jednoznacznie można powiązać przyczynę ze skutkiem. Do tego obszaru należą dobrze rozpoznane, opisane dziedziny problemowe, gdzie dostępna jest wiedza, gdzie występujące problemy nie wymagają złożonej interpretacji czy doświadczenia.
Skomplikowane (ang. complicated) ? są to systemy, w których istnieje powiązanie między przyczyną a skutkiem, ale nie jest ono proste do wykrycia. Znalezienie rozwiązania problemu wymaga wiedzy eksperckiej, dużego doświadczenia oraz złożonej analizy. Ponadto system tego typu jest statyczny lub przynajmniej mało zmienny (zmienność można przewidzieć i przeanalizować).
Złożone (ang. complex) ? są to systemy, w których nie ma jednoznacznych powiązań między przyczyną a skutkiem, gdyż zmieniają się one w czasie ? można je wykryć poprzez eksperymenty i dociekania obecnego stanu rzeczy. Posiadanie wiedzy eksperckiej nie jest wystarczające, aby znaleźć rozwiązanie problemu. Potrzebne są eksperymenty i analiza efektów podejmowanych działań.. System tego typu to system żywy, organiczny, zmienny w czasie.
Choatyczne (ang. chaotic) ? są to systemy w których brakuje powiązań między przyczyną i skutkiem. Wszelkie sytuacje alarmowe, pożary, katastrofy są przykładami takich systemów.
Nieporządek (ang. disorder) ? to sytuacja, w której nie jesteśmy w stanie określić, z jakiego typu systemem mamy do czynienia. (Źródło: Model Cynefin)
A teraz porównajmy to ze znaną od lat ogólna teorią Systemów, która tak klasyfikuje systemy:
System bywa także nazywany ?zorganizowaną złożonością?. Klasyczna ogólna teoria systemów oparta jest na matematycznych modelach (równaniach), opisujących reakcję każdego elementu systemu, i systemu jako całość, na określone bodźce. Mechanizm działania (zachowania się) systemu to wynikowy ?wzór?. W metodzie naukowej zestaw takich matematycznych równań nazywa się ?modelem? lub po prostu teorią wyjaśniającą. Równania opisujące te elementy to, zależnie od złożoności systemu, równania liniowe (proste) lub równania nieliniowe.
?Banalnie proste? systemy można opisać jednym, prostym równaniem liniowym. Systemy uznawane za ?łatwe? do analizy to te, dające się opisać prostym układem kilku równań liniowych lub jednym równaniem różniczkowym. Systemy wymagające do ich opisu (zamodelowania) układu bardzo wielu równań liniowych lub nawet kilku pojedynczych różniczkowych, stają bardzo trudne, a w miarę rosnącej ilości równań (złożoności systemu), są po prostu niemożliwe do rozwiązania metodą inną niż statystyczna (iteracje i badanie rezultatów). Pisząc ?analiza? mamy tu na myśli możliwość nie tylko opisania tymi równaniami systemu (bo to nie musi być trudne) ale ich (tych równań) rozwiązanie (przypominam: to wiele równań z wieloma zmiennymi). (źr. Ogólna Teoria Systemów).
Od siebie dodam, że model systemu to struktura obrazująca współpracujące (mające ze sobą interakcje) obiekty a owe “równania liniowe i nieliniowe” to odpowiedzi na bodźce (mówiąc językiem metod obiektowych są to metody, reakcje, odpowiedzi, tych obiektów). Odpowiedź całego systemu można więc opisać jednym równaniem, dlatego w tytule tabeli nazwano system problemem matematycznym, złożoność równania opisującego odpowiedź systemu obrazuje stopień złożoności tego systemu. Dodam też, że analiza obiektowa pozwala posługiwać się całością lub poszczególnymi obiektami zależnie od przyjętego poziomu abstrakcji. A teraz po raz kolejny definicja systemu:
System: złożony obiekt wyróżniony w badanej rzeczywistości, stanowiący całość tworzoną przez zbiór obiektów elementarnych (elementów) i powiązań (związków i relacji) między nimi (Sienkiewicz, 1994) (Źródło: Słownik Pojęć | Jarosław Żeliński IT-Consulting)
Napisanie więc, że są systemy, “w których nie ma jednoznacznych powiązań między przyczyną a skutkiem” albo “w których brakuje powiązań między przyczyną i skutkiem”, świadczy o zwykłej niewiedzy, o niezrozumieniu tworzonego systemu (a nawet o niezrozumieniu definicji samego pojęcia system) a nie o tym, że “nie ma w nim powiązań”, bo gdyby ich nie było nie był by to jeden system. Skrajność to stan w którym “nie jesteśmy w stanie określić, z jakiego typu systemem mamy do czynienia” czyli “nic nie kumam” i to moim zdaniem określa całe podejście zwane “cynefin”.
To własnie to, co nie raz widuję w pracy nazywanej często “agile”: podejmowanie się projektów przy całkowitym braku zrozumienia dziedziny problemu. To, czy nazwiemy to chaosem, czy znajdziemy nową “mądrą” nazwę CYNEFIN, niczego nie zmienia. Po prostu “brzytwa Ockhama” po raz kolejny szyderczo się uśmiecha… A próby napisania oprogramowania w sytuacji braku zrozumienia jaki ma być mechanizm jego działania to po prostu szukanie kłopotów… i niestety nadal często spotykane zjawisko czyli “szczur w labiryncie”…
[dodatek]
Ciekawostką jest także “architektura C4” (czytaj opis). Jest to Cała “teoria i metoda” w której jest 100% technologii i ZERO o biznesowej dziedzinie i jej logice… Bardzo często developerzy niestety obiecuję, że “sami napiszą” to oprogramowanie, a potem mozolnie po omacku, wieloma próbami, usiłują stworzyć oprogramowanie realizujące logikę biznesową… jak szczur w labiryncie który który na każdą rzecz której nie rozumie znajduje nową nazwę: raz CYNEFIN, raz C4…
Tak na prawdę C4 to raczej nowy profil do UML, jedna strona łącznie z komentarzami. Minus taki, że nie ma tu mowy o rozwiązaniu, ogromny plus to zasada: modelowania poprzedza kodowanie. Autor słusznie krytykuje nieformalne schematy i poleca jednak formalizm, czyli UML:
“Możemy odkryć powieściową praktykę” – chyba nową praktykę…
tak jest w oryginale, mogę się domyślać, że chodzi o nową lub przejściową… może, to pytanie do autora mojego cytatu 🙂