Odcinek 55. Jakie powinny być zwinne zespoły, czyli Team Topologies
Żyjemy w coraz bardziej złożonych czasach, w których budując produkty czy dostarczając projekty, dochodzimy czasem do wniosku, że to, co tworzymy jest odzwierciedleniem tego, jak wygląda struktura naszej organizacji, a nie tego, o co chodziło klientom. Mówi o tym tak zwane Prawo Conwaya. Czy możemy je odwrócić i zbudować naszą organizację tak, by przez odpowiednie projektowanie sieci zespołów i ich interakcji szybciej dostarczać wartość biznesową i nie doprowadzać do zapaści organizacji pod jej własnym ciężarem? Zapraszam Was do zapoznania się z tematem Team Topologies, który być może pozornie wydaje się nie mieć za wiele wspólnego z Kanbanem. Ja spróbuję przekonać Was, że ma.
Co poszło nie tak?
Od ponad 20 czy nawet 30 lat świat tzw. zwinności żyje, w dużym uproszczeniu, z paradygmatem, że produkty powinny realizować możliwie niezależne zespoły. Przez przypadki odmienia się różne spolszczone wersje angielskiego terminu cross-functional. Czasem widzę, że brak takich wielokompetencyjnych zespołów lub istnienie innych ich rodzajów jest jednoznacznie oceniane jako wskaźnik braku zwinności. Z drugiej strony w rozmowach czy ankietach, które przeprowadzam liczba takich niezależnych zespołów i osób które uważają, że rzeczywiście funkcjonują w takich bytach jest marginalnie niska. Co poszło nie tak?
Organizacje jak organizmy
Na pytanie to próbuję sobie odpowiedzieć trochę z perspektywy mojego wykształcenia, bo z dyplomu jestem biotechnologiem. Organizmy żywe, podobnie jak organizacje, budują coraz większe i większe struktury, wprowadzając różnego rodzaju specjalizacje takie jak tkanki i organy. Choć większość tych komórek ma takie samo DNA i części składowe, to pełnią one różne funkcje i osiągają sukces tylko dzięki skoordynowanym działaniom. Zwrócę tu uwagę na to, że w naszym ciele, w ciele człowieka czy kota komórki nie działają niezależnie od siebie. Nie ma więc mowy o samozarządzaniu, ale raczej o organizacji wokół konkretnych zadań naszego organizmu.
Organizacje jak cybernetyka
Podobnie można patrzeć na organizację z punktu widzenia projektowania systemów IT i właśnie takie korzenie ma podejście Team Topologies, którego autorami są Manuel Pais i Matthew Skelton. Oni spojrzeli na organizację z punktu widzenia budowania i funkcjonowania systemów cybernetycznych – tego, jak zespoły komunikują się ze sobą w efektywny (lub nie) sposób, jak zarządzają zależnościami pomiędzy sobą i jak ograniczać obciążenie poznawcze zespołów i należących do nich osób, by zapewnić im skupienie na tym co trzeba.
Jeśli brzmi to skomplikowanie i czujesz, że mógłbym Cię wystraszyć, to staram się przedstawić to w kilku prostych zdaniach.
Pierwszą sprawą jest to, że w dużych, złożonych organizacjach nie wszystkie zespoły są albo powinny być jednakowe. Team Topologies rozróżnia cztery typy zespołów:
- zespoły stream aligned, a więc skupione na określonym strumieniu wartości (np. aplikacja na dany system),
- zespoły enabling, czyli aktywujące inne zespoły przez przekazywanie wiedzy lub nauczanie nowych praktyk (DevOps, Agile Coache),
- zespoły odpowiedzialne za złożone podsystemy (complicated subsystem teams), a więc takie, które odpowiadają za rozwój konkretnego komponentu oprogramowania, którego włączenie do zakresu odpowiedzialności zespołu skupionego na strumieniu wiązałoby się z bardzo dużym jego obciążeniem poznawczym. Przykładem jest używanie gotowego API do obsługi płatności czy działań anti-money laundry zamiast budowania ich od podstaw w zespole aplikacji,
- zespoły lub grupy zespołów dostarczające platform.
Gdzie w tym zwinność? W interakcjach!
Gdzie w tym wszystkim są tradycyjnie pojmowane zespoły zwinne? Najbliżej na pewno im do zespołów stream-aligned, ale jeśli bliżej się temu przyjrzymy, to tak naprawdę zwinna powinna być interakcja pomiędzy wszystkiego typu zespołami. A jakie mogą być interakcje?
Autorzy Team Topologies wskazują 3 podstawowe typy interakcji pomiędzy zespołami:
- Pierwszym jest zamierzona, określona w czasie kolaboracja (z angielskiego collaboration, a nie cooperation), a więc rodzaj intensywnej interakcji, która ma doprowadzić do określonego celu. Ten sposób interakcji pomiędzy zespołami obarczony jest dużym kosztem energetycznym i poznawczym i dlatego też w uznaniu autorów nie powinniśmy go nadużywać, wymagać go od zbyt wielu zespołów naraz ani przeciągać ponad to, co jest konieczne.
- Drugą formą współpracy jest rozwiązanie znane z systemów IT, a więc X jako serwis (z angielskiego X as a service). Wszędzie tam, gdzie możliwe i opłacalne pod kątem redukowania obłożenia kognitywnego powinniśmy stosować interakcje opartą o zamawianie i dostarczanie określonych usług. Taka forma współpracy jest idealna do interakcji zespołów skupionych na strumieniu wartości z zespołami odpowiadającymi za złożone podsystemy lub platformy.
- Trzecią formą interakcji jest facylitacja, a więc umożliwienie zespołowi, który nie posiada obecnie jakiejś umiejętności lub wiedzy ich uzyskanie. Jak? Dzięki określonej w czasie współpracy z innym wyspecjalizowanym np. w edukacji lub danej technologii zespołem.
W powyższej części wpisu pojawił się kilkukrotnie termin obciążenia kognitywnego (z angielskiego cognitive load). Jest to termin, który jest na pewno bliski każdemu, kto pracował w bardzo skomplikowanym otoczeniu organizacyjnym, w którym ilość szumu informacyjnego do istotnych wiadomości była duża, a wielość kanałów komunikacyjnych powodowała olbrzymie nieefektywności pracy jednostek lub zespołów. Z punktu widzenia praktyków Kanbanu takim obciążeniem kognitywnych jest chociażby wysoka ilość pracy w toku, a więc coś, na co pozwalają wysokie lub nieistniejące limity WIP.
Ponadto Team Topologies jest, podobnie jak Metoda Kanban, podejściem ewolucyjnym, a więc nie zakłada, że istnieje jedna określona i trwająca w czasie właściwa struktura organizacyjna firmy. Tym, którzy znają historię zarządzania, nie muszę przypominać, że podobne spojrzenie na organizacje mieli chociażby liderzy ruchu lean, którzy mówili, że struktura organizacyjna i interakcje zespołów powinny być narzędziem organizacji do realizacji jej celów krótko jak i długoterminowych. Propagatorem takiego podejścia był między innymi Peter Drucker.
W bieżącym odcinku podcastu zapraszam Was do wysłuchania rozmowy z Matthew Skeltonem, który – jak już wiecie – jest jednym ze współautorów podejścia Team Topologies. Jestem ciekaw Waszego komentarza i odbioru tego podejścia, ponieważ bardzo często spotykam się z mitami opartymi o ewidentny brak zapoznania się z nim dogłębnie. Również ze strony praktyków zwinności widzi się komentarze krytykujące to podejście, jakoby proponowało powrót do koszmaru zespołów komponentowych. Te głosy nie są w żadnym stopniu uzasadnione, jeśli zapoznamy się z koncepcją wwystarczająco głęboko i zderzymy to, jak wyglądają nasze organizacje, które pełne są tak zwanych zwinnych praktyk czy nazw, ale jak bardzo nieefektywne są one w przepływie informacji i komunikacji pomiędzy zespołami.
Zapraszam więc do wysłuchania rozmowy oraz podzielenia się swoimi komentarzami. Mogę też powiedzieć, że już niedługo znajdziecie więcej polskojęzycznych materiałów poświęconych Team Topologies.