Koszt przełączania kontekstu

Są osoby które deklarują, że potrafią robić kilka rzeczy na raz. Zarówno w życiu prywatnym jak i zawodowym często ulegamy pokusie lub jesteśmy zmuszani do częstego przeskakiwania z tematu na temat. Niestety, częsta rotacja pomiędzy zadaniami to bardziej złożony temat, niż pozornie może się wydawać. O tym, czym jest przełączanie kontekstu, jaki mam wpływ na pracę zespołów oraz ile może nas kosztować, dowiesz się z tego artykułu.

A może tak róbmy więcej niż jedną rzecz naraz?

Pokusa robienia więcej niż jednej rzeczy naraz brzmi obiecująco. Łapiemy się na tym w życiu codziennym, gdy próbujemy w tym samym czasie oglądać TV, odpisywać na zaległe SMSy oraz rozmawiać z domownikami. Jakie są tego efekty? Docierają do nas szczątkowe zdania, krótką wiadomość tekstową piszemy wielokrotnie dłużej niż powinniśmy a z serialu wyłapujemy losowe momenty. Nie tak to powinno wyglądać.

Podobne zależności możemy zaobserwować w pracy. Często firmy, które organizują swoją pracę projektowo, niejednokrotnie przypisują pracowników do dwóch lub większej ilości projektów naraz. Przykładowo, programista może jednocześnie pracować w projekcie A i B, a osoba o unikatowych kompetencjach bazodanowych może zostać ulokowana w projekcie C, D i E.

Reklama


Z perspektywy Excela wygląda to obiecująco — mamy przypisany określony procent osób do konkretnych projektów i wszyscy interesariusze są zadowoleni, bo w końcu ich projekty ruszyły. Wprawdzie mają tylko pewien procent dostępności, ale brzmi to zdecydowanie lepiej, niż nie mieć w projekcie zupełnie nikogo i nadal czekać na swoją kolej.

Znajdą się też managerowie, którzy z kolei będą usatysfakcjonowani tym, że “utylizacja zasobów” wynosi 100%. Nikt się nie nudzi, wszystkie kompetencje są rozdysponowane pomiędzy projektami, a każda złotówka wydana na pracownika pracuje. W teorii wszystko działa jak dobrze naoliwiona linia produkcyjna, z tą różnicą, że kreatywną pracą ludzką nie da się zarządzać w ten sam sposób, jak fabryką śrubek z początku XX wieku.

Hmm, w czym jest problem?

To, czego niestety nie widać gołym okiem, to koszt, jaki trzeba ponieść, w momencie, gdy osoba kończy pracę nad zadaniem z projektu A i zaczyna pracę nad zadaniem z projektu B.

Koszt ten jest szczególnie duży, gdy praca którą wykonujemy, jest pracą wymagającą od nas kreatywności, skupienia oraz wielopoziomowej analizy.

Gdy pracowałem jako programista, niejednokrotnie doświadczałem tego rodzaju sytuacji. Pisząc kod, musiałem przechowywać w swojej głowie sporą ilość informacji naraz: nazwy zmiennych, struktury danych, kolejne poziomy wszelkiego rodzaju pętli i wyrażeń warunkowych a także implementowaną właśnie logikę biznesową. Mając te dane w “pamięci podręcznej”, faktyczny kod potrafił niemal nieświadomie przyrastać, zupełnie jak ilość przejechanych kilometrów przez doświadczonego kierowcę, który żeby jechać do przodu nie musi już skupiać się jakoś wybitnie na koordynacji pracy kierownicy, pedałów i skrzyni biegów.

Programowało mi się bardzo dobrze do momentu, w którym mogłem pracować w absolutnym skupieniu, nikt mi nie przeszkadzał i nie odrywał od pracy. Gdy tylko ktoś lub coś przerywało mi pracę lub musiałem diametralnie zmienić rodzaj zadania (inny projekt, repozytorium, logika biznesowa, kod źródłowy), potrzebowałem sporo czasu, żeby uzyskać opisaną wcześniej lekkość wytwarzania oprogramowania.

Co na to mówią badania?

Według badania przeprowadzonego w firmie Microsoft [1], gdy przerwiemy zadanie wymagające skupienia — takie jak pisanie raportu czy programowanie — potrzebujemy średnio 15 minut, żeby wrócić mentalnie do poprzednio realizowanego zadania i odzyskać utraconą płynność i efektywność pracy.

W 2001, w magazynie “The Journal of Experimental Psychology” [2], opublikowano wyniki badań, które wykazały, że przełączanie się pomiędzy różnego rodzaju zadaniami kosztowało dodatkowy czas uczestników tegoż badania. Dodatkowo, czas ten wydłużał się dla bardziej skomplikowanych zadań.

W książce “PeopleWare” Tom DeMarco oraz Tim Lister opisali termin “flow” [3], który oznacza stan wysokiej produktywności, wspierającej wykonywanie zadań programistycznych. Wg. autorów wejście w stan “flow” trwa około 15 minut i jest to czas, w którym niewiele realnej pracy jest wykonywane. Można o tym myśleć jak o przygotowaniu do faktycznie efektywnej pracy. Każde dłuższe przerwanie (rozmowa, odpisanie na e-mail, dyskusja na komunikatorze) powoduje, że ponownie musimy ponieść koszt wejścia w stan “flow”.

Świadomie nie wspominam tutaj o bardzo popularnym badaniu Weinberga. Jako, że spotkałem się z nim w wielu artykułach, opracowaniach i prezentacjach, to założyłem, że najpewniej znasz już jego wyniki.

Ile nas może kosztować przełączanie kontekstu?

Koszt przełączania kontekstu możemy wyrażać na kilka sposóbów. W obliczeniach zakładam, że:

  • Dysponujemy 8 osobowym zespołem
  • Jedno przerwanie kosztuje nas 15 minut
  • Każda osoba przełącza kontekst 4 razy dziennie
  • Czas trwania iteracji zespołu to 10 dni roboczych (2-tygodnie)

Policzmy, w pewnym uogólnieniu, ile może zmarnować czasu zespół przy takich założeniach:

4 przerwania dziennie x 15 minut x 8 osób x 10 dni (2-tyg Sprint) daje 80 godzin, które są czasem straconym wyłącznie na przełączanie kontekstu.

Bardzo łatwo możemy wycenić tę stratę, znając średni koszt 1h pracy. Przy założeniu, że jest to 100 PLN, strata finansowa wynosi 8 tys PLN miesięcznie.

Można też rozważyć koszt opóźnienia (ang. Opportunity Cost), czyli co stracimy, jeśli dostarczymy produkt/projekt/funkcjonalność później?

Przykładowo: zespół nie zdążył na czas zrealizować funkcjonalności, ze względu na duży koszt przełączania kontekstu. W konsekwencji, funkcjonalność będzie dostarczona do użytkowników produktu dopiero w kolejnym wdrożeniu, które będzie za miesiąc. W konsekwencji firma nie zarobi 10 tys PLN, które zarobiłaby, gdyby funkcjonalność była dostarczona na czas. Bardzo czytelnie zobrazował ten problem Henrik Kniberg w prezentacji “Focus (or Stop Starting, Start Finishing)”, zaprezentowanej podczas konferencji Agile By Example 2016.

Jak zespół może radzić sobie z przełączaniem kontekstu?

Jak widać na powyższych przykładach, koszty te potrafią być całkiem duże. Co można zrobić, żeby zminimalizować koszt przełączania kontekstu?

Poniżej kilka sprawdzonych sposobów na problem przełączania kontekstu, zarówno z perspektywy przerywania aktualnie wykonywanej pracy (rozproszenia, odrywanie się od pracy) jak i perspektywy realizowania wielu tematów jednocześnie (kilka projektów/produktów).

Radzenie sobie z przerywaniem pracy

  • Ciche godziny – zespół ustala, w jakich godzinach planują mieć czas na pracę bez zewnętrznych przerwań. Zwykle w tym okresie nikt nikogo nie dopytuje o nic, a ewentualne rozmowy toczone są poza obszarem pracy zespołu.
  • Flaga “pracuję, nie przeszkadzaj mi proszę” – dowolne, umowne rozwiązanie, które sygnalizuje osobie podchodzącej, że osoba nie chciałaby, aby ktoś jej przeszkadzał, bo potrzebuje dłuższego bloku na skupienie się. Flagą może być czerwona kartka przyklejona na monitor, ustawiony status “Nie przeszkadzać” na komunikatorze, zbudowany na biurku z klocków LEGO fizyczny maszt z flagą lub elektroniczne urządzenie, które świeci przyczepione do monitora i pozwala z odległości dostrzec aktualny stan zajętości danej osoby.
  • Asertywnie odmawianie – krótka odpowiedź na pytanie może brzmieć “Robię coś ważnego, przyjdź proszę za 30min” – proste i jednocześnie skuteczne rozwiązanie. Zwykle tak krótka odpowiedź i natychmiastowy powrót do realizowanego zadania nie powoduje znaczącego wybicia z rytmu pracy.
  • Rotacyjne wyznaczanie jednej osoby na obsługę przerwań – jeżeli istnieje pula zadań, która nieustannie wybija zespół z rytmu pracy (np. pilne zgłoszenia, krytyczne błędy), warto wybrać jedną osobą, która będzie obsługiwać takie zgłoszenia. Nie będzie miała wprawdzie lekkiego żywota, ale w ten sposób skutecznie ochroni zespół przed zakłóceniami.
  • Stosowanie komunikacji asynchronicznej – sprawy, które nie są pilne, można rozwiązywać pocztą elektroniczną lub komunikatorami. Osoba, która w danej chwili jest zajęta, odpowie jak skończy realizować wymagający skupienia temat.

Radzenie sobie z realizowaniem wielu tematów na raz

  • Limitowanie pracy w tokujest to podejście do sposobu pracy, priorytetyzacji zadań oraz współpracy w zespole. Odpowiednio stosowane skraca czas realizowania zadań i poprawia jakość pracy.
  • Grupowanie tematów z tego samego obszaru w dni – czyli zespół może realizować funkcjonalności projektu/produktu A w poniedziałek i wtorek, natomiast nad projektem/produktem B w środę, czwartek i piątek.
  • Grupowanie tematów z tego samego obszaru w iteracje – w takiej sytuacji całe iteracje przeznaczone są na pracę nad jednym projektem/produktem. Ewentualna zmiana kontekstu na tym poziomie może nastąpić co iterację.
  • Realizowanie projektów/produktów po kolei – czyli najpierw realizujemy w całości projekt/produkt A i dopiero wtedy zaczynamy projekt/produkt B.
  • Rozmowa z osobami decyzyjnymi – warto odbyć rozmowę z osobami decyzyjnymi o tym, jak częste przełączanie kontekstu wpływa na efektywność pracy zespołu.

Podsumowanie

Koszt przełączania kontekstu bywa niewidoczny na pierwszy rzut oka, jednak trudno go ignorować, wiedząc jak duże potrafi generować koszty. Na szczęście, istnieje wiele prostych sposobów radzenia sobie z nadmiernym przełączaniem kontekstu. Jeżeli znasz jakieś inne sposoby, zapraszam do dyskusji w komentarzach.

Photo by rawpixel on Unsplash

Komentarze do wpisu: “Koszt przełączania kontekstu

  1. Mateusz Sochan

    Słyszałem o sposobie na zmierzenie przełączania kontekstu, który wymaga nieco uwagi oraz wyrobienia w sobie nawyku, ale trudno mu odmówić skuteczności. W skrócie kroki są następujące:

    1. Przygotuj sporą ilość małych elementów (np. klocki, kostki do gry itp.) oraz pojemnik, do którego będziesz mógł wrzucać te elementy.
    2. Za każdym razem, kiedy zmieniasz kontekst, wrzucasz jeden element do pojemnika.
    3. W regularnych odstępach czasu (np. co koniec sprintu) podliczasz liczbę zmian kotekstu.
    4. Bazując na informacjach z Jacka artykułu odnośnie kosztu zmiany kontekstu, przelicz, jaki był koszt.

    Ta metoda może pomóc w przeanalizowaniu, o jakiej skali problemu w ogóle mówimy. Trudnością na pewno jest, aby stale trzymać się tych zasad, no ale cóż – nic za darmo 🙂


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ta strona używa Cookies, korzystając z niej wyrażasz zgodę na używanie ciasteczek zgodnie z ustawieniami przeglądarki. Nasza Polityka Prywatności
Akceptuję, bo lubię Was czytać.
x