To podręcznik dla szczególnego rodzaju pracownika: jedna osoba, zero personelu i flota agentów AI, którzy z entuzjazmem zrobią prawie wszystko, o co poprosisz, o każdej porze i równolegle. Możesz być freelancerem, założycielem bez wspólnika, konsultantem, pisarzem z repozytorium kodu albo po prostu kimś, kto zauważył, że liczba rzeczy, które da się zrobić w ciągu dnia, przestała zależeć od tego, jak szybko pisze na klawiaturze. Czy ci się to słowo podoba, czy nie, jesteś operatorem.
To słowo ma znaczenie, bo uczciwie nazywa tę pracę. Nie jesteś menedżerem, bo nikt, kto ci podlega, nie może wziąć za nic odpowiedzialności. Nie jesteś też już do końca twórcą, bo większość tworzenia wykonuje coś innego. Prowadzisz małą maszynę. Składa się ona z agentów, narzędzi, notatek, listy projektów i, co najważniejsze, z twojego własnego dnia pracy. Kiedy maszyna chodzi dobrze, jedna osoba dowozi tyle, co mały zespół. Kiedy chodzi źle, jedna osoba spędza cały dzień na nadzorowaniu chaosu i kładzie się spać, nie skończywszy niczego.
To, co odróżnia jedno od drugiego, rzadko jest kwestią narzędzi. Wszyscy mają dziś mniej więcej tych samych agentów. Różnica tkwi w systemie operacyjnym: w nawykach, które decydują o tym, co zostaje zaczęte, jak zostaje opisane, jak sprawdzone, kiedy wychodzi w świat i co zostaje potem zapisane. O tych nawykach jest ta książka. Nie jest to książka o biznesie. Nie powie ci, co sprzedawać ani jak to wycenić. Jest o wnętrzu dnia pracy jednej osoby i o tym, jak sprawić, by ten dzień wytwarzał skończone rzeczy zamiast poczucia zabiegania.
Agenci dają ręce. Ty dajesz kolejność, w jakiej się poruszają.
Książka ma dziesięć części. Zaczyna od samej pracy, potem przechodzi przez dzień operacyjny, pisanie briefów, pamięć i notatki, rejestr projektów i delegowanie wątków, przeglądanie pracy, dyscyplinę wydań, pętle tygodniowe i kwartalne, utrzymanie narzędzi i radzenie sobie z błędami. Kończy się tam, dokąd wszystko w niej prowadzi: prawdziwą pracą operatora jest decydowanie, nie robienie. Każdy rozdział uczy jednej rzeczy, którą możesz wypróbować w tym tygodniu. Żaden nie wymaga nowego oprogramowania. Większość wymaga pliku tekstowego i odrobiny odwagi.
Słowo o tonie. Piszę dla ludzi, którzy są już trochę zmęczeni słuchaniem, że wszystko się zmieniło. Sporo się zmieniło. Sporo nie. Ludzie wciąż muszą wiedzieć, co chcą osiągnąć, wciąż muszą sprawdzić, czy to osiągnęli, i wciąż muszą w którymś momencie przestać pracować i zjeść kolację. Agenci sprawiają, że dwie pierwsze rzeczy są ważniejsze, a nie mniej ważne, a o trzeciej coraz trudniej pamiętać.
Zacznij więc tutaj, od małego ćwiczenia. Zapisz po jednym zdaniu trzy rzeczy, które twoi agenci zrobili dla ciebie w zeszłym tygodniu, a których sam byś nie zrobił. Potem zapisz jedną rzecz, którą zrobiłeś ty, a której nie mógłby zrobić żaden agent. Ta druga lista jest krótsza. I to właśnie ona jest twoją pracą.
Ryc. 1 · Jedna osoba, wiele rąk. Pięć nawyków otacza operatora, który ustala ich kolejność, gdy agenci i narzędzia wykonują pracę.
Rozdział 2 · Część I
Dzień jest maszyną
Większość ludzi, którzy pracują z agentami, myśli o swoim systemie jak o zestawie narzędzi: ten asystent, tamten terminal, te konektory, tamte skrypty. Narzędzia są ważne, ale to nie one są maszyną. Maszyną jest twój dzień pracy. To kolejność, w jakiej rzeczy dzieją się między przebudzeniem a końcem pracy, i to ona decyduje, w co celujesz narzędziami. Dwóch operatorów z identycznymi narzędziami i różnymi dniami wypracuje zupełnie różne tygodnie.
Pomyśl o dniu jak o czymś, co ma trzy części. Rano robisz przegląd: czytasz, co się wydarzyło pod twoją nieobecność, decydujesz, co jest teraz ważne, i wybierasz kilka rezultatów na dany dzień. W środku prowadzisz sesje: ograniczone odcinki czasu, w których briefujesz agentów, obserwujesz ich pracę, przeglądasz to, co wraca, i albo to wypuszczasz, albo odsyłasz na kolejną rundę. Na koniec zamykasz: zapisujesz, co zostało skończone, co nie i od czego powinno zacząć się jutro, a potem przestajesz. Przegląd, sesje, zamknięcie. Wszystko inne w dniu operacyjnym jest wariacją na temat tego łuku.
Brzmi to oczywiście, bo jest oczywiste, i właśnie dlatego tak niewielu ludzi naprawdę to robi. Domyślny dzień operatora z agentami jest reaktywny. Otwierasz laptopa, zauważasz, że skończyło się zadanie w tle, czytasz wynik, poprawiasz coś drobnego, zakładasz nowy wątek, bo przyszedł ci do głowy pomysł, odpowiadasz na wiadomość, zaglądasz do innego wątku i nagle podnosisz wzrok, a jest czwarta po południu, dotknąłeś jedenastu rzeczy i nie skończyłeś żadnej. Agenci to pogarszają, bo każdy z nich generuje kolejne wyniki do obejrzenia. Maszyna bez kształtu staje się maszyną do produkcji powiadomień.
Dzień bez kształtu przybiera kształt tego, co krzyczy najgłośniej.
Rozwiązaniem jest potraktowanie kształtu dnia jako decyzji projektowej, a nie przypadku. Zdecyduj, kiedy odbywa się przegląd i ile trwa. Zdecyduj, ile sesji zmieści dzień i mniej więcej jakiej są wielkości. Zdecyduj, kiedy następuje zamknięcie i co ma z niego wyniknąć. Zapisz to w miejscu, na które będziesz patrzeć. Na początku będzie to źle ustawione i będziesz to korygować, ale błędny plan, który da się poprawić, jest lepszy niż brak planu, bo bez planu nie ma czego poprawiać.
Warto zauważyć, że agenci się nie męczą, a ty tak. Maszyna może pracować całą noc, operator nie może. Dzień jest więc tą częścią systemu, która ma twarde ograniczenia, a twarde ograniczenia to miejsce, w którym projektowanie się opłaca. Projektant bazy danych martwi się najwolniejszym zapytaniem. Operator powinien martwić się najrzadszą godziną, czyli zwykle pierwszą dobrą godziną poranka, i powinien przeznaczać ją na decydowanie, a nie na dłubanie.
Spróbuj w tym tygodniu. Przez pięć dni roboczych zapisuj trzy razy na kartce: kiedy skończył się przegląd, kiedy skończyła się ostatnia sesja i kiedy zamknąłeś dzień. Niczego nie próbuj poprawiać. Po prostu patrz. Większość ludzi odkrywa, że zamknięcie w ogóle się nie odbywa, a przegląd po cichu zlewa się z pierwszą sesją. To nie jest porażka moralna. To maszyna z brakującą częścią. Dołóż tę część.
Ryc. 2 · Dzień jest maszyną. Zaplanowany dzień z przeglądem, sesjami i zamknięciem obok reaktywnego dnia, który niczego nie kończy.
Rozdział 3 · Część I
Robienie kontra decydowanie
Przez większą część historii pracy robienie i decydowanie szły w pakiecie. Jeśli chciałeś mieć napisany raport, decydowałeś, co ma w nim być, a potem go pisałeś, a pisanie trwało tak długo, że wydawało się prawdziwą pracą. Decydowanie chowało się w robieniu. Wybierałeś strukturę, pisząc pierwszy akapit, w połowie zmieniałeś zdanie co do wniosków, a gotowy raport był zapisem wszystkich tych drobnych decyzji.
Agenci rozdzielają te dwie rzeczy. Robienie, które kiedyś zajmowało godziny, teraz zajmuje minuty i może odbywać się bez ciebie. Decydowanie wcale się nie kurczy. Jeśli już, to rośnie, bo agent zrobi dokładnie to, co postanowiłeś, a jeśli postanowiłeś mgliście, bardzo szybko dostaniesz mglisty wynik. Dzień operatora się więc przechyla. Mniej czasu zajmuje wytwarzanie rzeczy. Więcej zajmuje wybieranie, co wytworzyć, precyzyjne opisywanie tego, ocenianie tego, co wróciło, i ponowne wybieranie.
Jest to niewygodne dla każdego, czyja tożsamość zbudowana była na robieniu. Tworzenie rzeczy daje satysfakcję, jakiej decydowanie rzadko dostarcza. Możesz wskazać stronę, którą napisałeś, albo funkcję, którą zbudowałeś. Trudniej wskazać dobrą decyzję, bo dobre decyzje najczęściej wyglądają jak to, że nic się nie wydarzyło: projekt nierozpoczęty, funkcja niedodana, zły pull request niescalony. Pokusa, kiedy agenci odbierają ci robienie, polega na tym, żeby dla komfortu wyrwać im kawałek z powrotem: przepisać szkic agenta własnymi słowami, choć szkic był w porządku, albo samemu naprawić błąd, bo czekanie wydawało się bezczynnością.
Opieraj się tej pokusie, ale bez dogmatyzmu. Istnieje prosty test dla każdej pracy, która leży przed tobą: czy to musi zrobić akurat ja? Niektóre rzeczy muszą. Rozmowa z kimś, kto ci ufa. Ocena jakości, której możesz dokonać tylko ty. Tekst, którego cała wartość polega na tym, że jest twój. Wszystko inne jest kandydatem do delegowania, a pytanie brzmi wtedy, jak dobrze to zbriefować, a nie czy zrobić to samemu.
Robienie wygląda jak postęp. Decydowanie jest postępem.
Zauważ też, że decydowanie to nie to samo co zastanawianie się. Operatorzy potrafią stracić całe poranki na deliberacje, które nigdzie nie lądują. Decyzja to zdanie z czasownikiem: w czwartek wypuszczamy małą wersję; rezygnujemy z drugiej funkcji; przepisujemy brief i puszczamy go jeszcze raz. Jeśli twoje rozmyślania nie kończą się takim zdaniem, to nie było decydowanie. To była pogoda.
W tym tygodniu prowadź więc rachunek. Za każdym razem, gdy siadasz, żeby samemu zrobić jakąś pracę, najpierw zadaj pytanie testowe i zaznacz, jak wypadło. Nie zmieniaj zachowania, po prostu licz. Do piątku będziesz wiedzieć, jaki ułamek dnia to robienie, które tylko ty możesz wykonać, a jaki to robienie, którego jeszcze nie nauczyłeś się oddawać. Ta druga liczba to rozmiar twojej szansy. Zwykle jest większa, niż miałeś nadzieję, i zarazem większa, niż się obawiałeś.
Ryc. 3 · Robienie kontra decydowanie. Jedno pytanie testowe kieruje każde zadanie do ciebie lub do agenta i kończy się decyzją.
Rozdział 4 · Część I
Trzy pytania operatora
Każda praca, którą operator zaczyna, powinna przetrwać trzy pytania. Czego chcemy? Dlaczego teraz? Skąd będę wiedzieć? Odpowiedź zajmuje mniej więcej minutę, a jest to najlepiej wydana minuta dnia, bo praca, która tych pytań nie przechodzi, zwykle pochłania godziny, zanim ktokolwiek zauważy, że od początku nie była tego warta.
Pierwsze pytanie, czego chcemy, brzmi banalnie, a banalne nie jest. Większość nieudanych przebiegów agentów wykłada się właśnie tutaj. Operator miał jakieś przeczucie, wpisał je w prompt i dostał coś, co pasowało do słów, ale nie do przeczucia. Rozwiązaniem jest odpowiadanie w kategoriach rezultatu, a nie czynności. Nie przyjrzyj się procesowi onboardingu, tylko nowy użytkownik może się zarejestrować i dojść do pierwszego zapisanego elementu bez pomocy. Czynności można wykonywać w nieskończoność. Rezultaty albo istnieją, albo nie.
Drugie pytanie, dlaczego teraz, to obrona operatora przed nieskończonością. Agenci sprawiają, że zaczynanie rzeczy jest tanie, co oznacza, że zaległości wiarygodnych pomysłów rosną szybciej, niż jakikolwiek człowiek jest w stanie przejrzeć wyniki. Pytanie o teraz zmusza do ustalenia kolejności. Może coś jest zepsute i kosztuje cię codziennie. Może w przyszłym tygodniu zamkną się jakieś drzwi. Może to po prostu najbardziej użyteczna rzecz na liście. Wszystko to są dobre odpowiedzi. Bo przyszło mi to do głowy dziś rano nie jest, choć to odpowiedź najczęstsza.
Trzecie pytanie, skąd będę wiedzieć, to to, które w ogóle umożliwia delegowanie. Jeśli nie potrafisz powiedzieć, po czym rozpoznasz sukces, nie możesz poprosić agenta, żeby go osiągnął, a już na pewno nie możesz sprawdzić, czy mu się udało. Dobra odpowiedź wskazuje konkretne sprawdzenie: testy przechodzą, a nowy test bez tej zmiany nie przechodzi; strona ładuje się na telefonie; podsumowanie mieści się na jednym ekranie i wymienia wszystkich czterech dostawców. Zła odpowiedź brzmi poznam, jak zobaczę, co znaczy, że coś zobaczysz, a potem będziesz się o to kłócić sam ze sobą.
Jeśli nie umiesz powiedzieć, skąd będziesz wiedzieć, nie jesteś gotów prosić.
Pytania zawężają się po drodze i dlatego warto zadawać je po kolei. Pierwsze jest szerokie i hojne; wpuszcza wszystko, czego mógłbyś chcieć. Drugie filtruje według momentu i kosztu. Trzecie odsiewa wszystko poza pracą, którą naprawdę możesz zweryfikować. To, co zostaje na dnie, jest małe, konkretne i sprawdzalne, a to dokładnie ten kształt, z którym agenci radzą sobie najlepiej, a operatorzy przeglądają najszybciej.
Nie potrzebujesz do tego formularza. Wystarczy linijka na początku każdego briefu. Niektórzy operatorzy zapisują trzy odpowiedzi jako trzy pierwsze zdania każdego zadania, przed jakąkolwiek instrukcją. Na początku wygląda to nieco ceremonialnie. Po dwóch tygodniach przestajesz to zauważać, a zaczynasz zauważać, o ile mniej pracy wyrzucasz do kosza. Pytania nie czynią cię mądrzejszym. Po prostu powstrzymują cię przed zajmowaniem się niewłaściwą rzeczą, a w dniu pełnym gorliwych agentów to już większość bitwy.
Ryc. 4 · Trzy pytania operatora. Trzy pytania zawężają pracę do czegoś małego, konkretnego i sprawdzalnego.
Rozdział 5 · Część I
Nie chodzi o przepustowość
Pierwsze, co dają ci agenci, to ilość. Poproś o dziesięć wariantów, a dostaniesz dziesięć. Poproś o funkcję, a dostaniesz funkcję, jej testy, migrację i schludne podsumowanie. Uruchom pięć wątków przed obiadem, a do podwieczorku będziesz mieć pięć zestawów wyników. To upaja, a jak większość rzeczy, które upajają, jest kiepską wskazówką, czy dokądkolwiek zmierzasz.
Wynik to to, co maszyna produkuje. Efekt to to, co dzięki temu zmienia się w świecie. Operator może wygenerować ogromne ilości wyników bez żadnego efektu: szkice, które nigdy nie zostają opublikowane, gałęzie, które nigdy nie zostają scalone, prototypy, których nikt nigdy nie widział. Panel wygląda na zajęty, praca wygląda imponująco, a nic się nie ruszyło. To pułapka zabiegania i agenci kopią ją jeszcze głębiej, bo koszt wyprodukowania kolejnej rzeczy spadł niemal do zera, a koszt skończenia kolejnej rzeczy nie spadł wcale.
Kończenie jest drogie, bo wymaga ciebie. Ktoś musi przejrzeć pracę, uznać, że jest wystarczająco dobra, wypchnąć ją w świat i poradzić sobie z tym, co nastąpi potem. Każdy z tych kroków czerpie z twojej uwagi, a ta jest stała. Operator, który zaczyna więcej, niż jest w stanie skończyć, nie zwiększa więc przepustowości. Buduje kolejkę, a kolejki mają zwyczaj zamieniać się w poczucie winy.
Zaczęte to koszt. Skończone to wynik.
Pomaga wyobrażenie sobie pracy na dwóch osiach. Jedna oś to wynik: ile wyprodukowano. Druga to efekt: ile z tego do kogoś dotarło i coś zmieniło. Większość operatorów, kiedy dostaje agentów, sunie w górę po osi wyniku i zostaje nisko na osi efektu. Ćwiartka, której szukasz, to ta, w której wynik jest umiarkowany, a efekt wysoki: mniej rzeczy, skończonych. Wydaje się mniej produktywna. Jest nieporównanie bardziej produktywna, co potwierdzi każdy, kto kiedykolwiek wypuścił jedną rzecz, zamiast zacząć cztery.
Praktycznym nawykiem jest mierzenie ukończeń, a nie rozpoczęć. Na koniec każdego dnia licz tylko to, co przekroczyło linię mety: scalone, opublikowane, wysłane, dostarczone, rozstrzygnięte. Nie licz otwartych wątków ani utworzonych szkiców. Jeśli wychodzi zero, to jest informacja, a nie reprymenda. Sprawdź dlaczego. Zwykle odpowiedź brzmi tak, że zaczęto zbyt wiele rzeczy i żadna nie dostała uwagi przy przeglądzie, której potrzebowała, by dojść do końca.
Jest też korzyść uboczna. Kiedy liczysz ukończenia, zaczynasz inaczej pisać briefy. Przestajesz prosić agentów o rozlazłe eksploracje i zaczynasz prosić o najmniejszą rzecz, którą da się skończyć dzisiaj. Dzielisz duże zadania na kawałki, z których każdy może wyjść samodzielnie. Zauważasz, że niedokończona duża rzecz jest warta mniej niż skończona mała, bo z małej można korzystać, a dużą można co najwyżej podziwiać.
Spróbuj przez tydzień: jedna liczba na kartce, ukończenia dziennie. Ignoruj wszystko inne, co maszyna mówi ci o tym, jak bardzo była zajęta. Maszyna zawsze jest zajęta. Taka jej natura. Twoją naturą jest decydować, która część tej krzątaniny stanie się czymś prawdziwym.
Ryc. 5 · Nie chodzi o przepustowość. Wynik kontra efekt: celuj w niewiele rzeczy skończonych, nie w pułapkę wielu zaczętych.
Rozdział 6 · Część I
Wprost, bez wstępów
Agentów nie trzeba rozgrzewać. Nie trzeba im mówić, że masz nadzieję, że dobrze się czują, że to trochę dziwna prośba ani że od jakiegoś czasu o czymś myślisz. Muszą wiedzieć, czego chcesz, co powinni wiedzieć, żeby to zrobić, i jak ocenisz wynik. Wszystko inne to wstęp, a wstęp kosztuje więcej, niż się wydaje.
Kosztuje, po pierwsze, jasność. Brief, który otwierają trzy zdania wprowadzające w kontekst, sprawia, że właściwą instrukcję trudniej znaleźć, zarówno agentowi, jak i tobie, kiedy później do niego wrócisz. Agenci przypisują wagę wszystkiemu, co mają przed sobą, więc meandrujący początek może przechylić pracę w kierunkach, których nie zamierzałeś. Jeśli wspomnisz mimochodem, że martwi cię wydajność, nie dziw się, gdy prosta zmiana tekstu przyjdzie owinięta w warstwę cache'owania.
Kosztuje, po drugie, twoje własne myślenie. Wstęp to często to, co piszemy, wciąż ustalając, czego właściwie chcemy. To całkiem dobra czynność, ale wykonuj ją w notesie, nie w briefie. Pisz swobodnie, a potem usuń wszystko powyżej pierwszego zdania, które zawiera czasownik i rezultat. To, co zostanie, jest zwykle briefem, który zamierzałeś napisać.
Powiedz, o co chodzi. Potem powiedz, skąd będziesz wiedzieć, że gotowe. Potem przestań.
To samo działa w drugą stronę. Proś agentów, żeby mówili do ciebie wprost. Dobry wynik zaczyna się od rezultatu i dowodów, a nie od opowieści o podróży. Gotowe: importer obsługuje teraz puste wiersze; nowy test nie przechodzi na starym kodzie i przechodzi na nowym; cały zestaw na zielono jest wart więcej niż trzy akapity opisu śledztwa. Zawsze możesz poprosić o historię. Nie powinieneś musieć kopać w poszukiwaniu werdyktu.
Nie chodzi o oschłość. Chodzi o szacunek dla najrzadszej rzeczy w systemie, czyli twojej uwagi. Każde zbędne zdanie, które pisze agent, jest zdaniem, które musisz przeczytać, zanim zdecydujesz, co dalej. Pomnóż to przez dwadzieścia wątków dziennie, a wstępy stają się podatkiem od całej twojej działalności. Wielu operatorów umieszcza w pamięci projektu stałą instrukcję w tym duchu: zacznij od wyniku, potem dowody, potem ewentualne otwarte pytania, a podsumowanie ma być krótkie. To jedna z najbardziej opłacalnych linijek, jakie możesz napisać.
Bezpośredniość sprawia też, że niezgoda staje się tańsza. Jeśli agent uważa, że twoje podejście jest błędne, chcesz, żeby powiedział to w pierwszej linijce, a nie zakopał zastrzeżenie w czwartym akapicie, po tym jak i tak wykonał pracę. Poproś o to wprost. Jasny język w obie strony zmienia współpracę z uprzejmej wymiany dokumentów w coś bliższego roboczej rozmowie.
W tym tygodniu przejrzyj więc swoje ostatnie dziesięć briefów i wytnij z każdego pierwsze zdanie. Potem zobacz, czy brief wciąż ma sens. W większości przypadków będzie miał więcej sensu. Wstęp był dla ciebie. Agent nigdy go nie potrzebował i, jeśli jesteś szczery, ty też nie.
Ryc. 6 · Wprost, bez wstępów. Briefy i raporty pełne wstępów obok bezpośrednich, które zaczynają od wyniku.
Rozdział 7 · Część I
Skłonność do działania, smycz dowodów
Operatorzy, którym dobrze idzie z agentami, mają zwykle wspólny temperament: wolą czegoś spróbować, niż o tym dyskutować. Kiedy pojawia się pytanie, na które może odpowiedzieć eksperyment, przeprowadzają eksperyment. Kiedy potrzebny jest szkic, zlecają jego napisanie, a potem kłócą się ze szkicem, a nie z pustą stroną. Agenci sowicie nagradzają ten temperament, bo eksperymenty, które kiedyś zajmowały dzień, teraz zajmują dziesięć minut, i nie ma już wielu wymówek dla długich deliberacji nad rzeczami, które można po prostu przetestować.
Ale skłonność do działania ma swój tryb awarii i agenci nagradzają również jego. Operator, który działa szybko i nie sprawdza, kończy z mnóstwem rzeczy, które wyglądają na zrobione, a zrobione nie są. Migracja, która przeszła, ale po cichu pominęła część rekordów. Strona, która pięknie renderuje się na laptopie i rozsypuje się na telefonie. Podsumowanie, które jest pewne siebie i błędne. Każda z tych rzeczy jest tania w produkcji i droga w późniejszym odkrywaniu, zwykle w najgorszym możliwym momencie i często przez kogoś innego.
Odpowiedzią nie jest zwolnienie. Odpowiedzią jest przywiązanie tempa do dowodów. Działaj tak szybko, jak chcesz, pod warunkiem że każde działanie wytwarza coś, co da się sprawdzić, i że rzeczywiście to sprawdzasz, zanim zaczniesz na tym budować. To jest część wspólna, która się liczy: nie ostrożność, nie pośpiech, tylko szybkie ruchy, z których każdy zostawia po sobie kawałek dowodu. Operator mieszka w tej części wspólnej.
Ruszaj się tak szybko, jak nadążają za tobą dowody.
W praktyce oznacza to wbudowanie sprawdzenia w samo działanie. Kiedy briefujesz agenta, dołącz krok weryfikacji: uruchom testy, załaduj stronę, policz wiersze przed i po, porównaj podsumowanie ze źródłem. Kiedy sam coś robisz, zdecyduj z góry, na co potem spojrzysz. Jeśli nie ma na co spojrzeć, albo coś znajdź, albo przyznaj, że zgadujesz, i traktuj wynik jako tymczasowy.
Oznacza to też uczciwość co do tego, które działania są odwracalne. Wypróbowanie nowego układu na gałęzi łatwo cofnąć; działaj swobodnie. Wysłanie maila do wszystkich na liście już nie; zwolnij i spójrz dwa razy. Przydatnym nawykiem jest ciche oznaczanie każdego działania jako szkicu albo zobowiązania. Szkice mogą być szybkie i niechlujne. Zobowiązania potrzebują dowodów. Większość kłopotów, w które wpadają operatorzy, bierze się z traktowania zobowiązania jak szkicu, bo agent sprawił, że wydawało się takie łatwe.
W tym sposobie pracy jest przyjemność, którą łatwo przeoczyć. Kiedy każdy ruch zostawia dowód, przestajesz nosić w sobie niepokój, czy rzeczy są naprawdę zrobione. Wiesz, bo sprawdziłeś. To uwalnia uwagę na kolejną decyzję, co z kolei czyni cię szybszym. Dowody nie są hamulcem dla skłonności do działania. To one pozwalają ci trzymać nogę na gazie.
W tym tygodniu wybierz jedno zadanie, nad którym normalnie byś się zastanawiał, i przeprowadź je zamiast tego jako eksperyment. Zanim zaczniesz, zapisz jedno sprawdzenie, które powie ci, że zadziałało. Potem to zrób, sprawdź i zobacz, ile całość zajęła. Będzie krócej, niż trwałyby rozważania.
Ryc. 7 · Skłonność do działania, smycz dowodów. Operator działa tam, gdzie szybkie działanie styka się ze sprawdzaniem dowodów.
Rozdział 8 · Część I
Najpierw artefakt
Jest prosta zasada, która oszczędza operatorom zdumiewająco dużo czasu: w razie wątpliwości zrób tę rzecz. Nie opisuj panelu; zleć zbudowanie zgrubnego panelu. Nie spieraj się o strukturę raportu; każ napisać szkic w dwóch strukturach i przeczytaj oba. Nie wyobrażaj sobie, jak będzie się czytać mail powitalny; wyprodukuj go i przeczytaj, jakbyś go dostał. Artefakt na stole kończy więcej sporów niż jakakolwiek ilość dyskusji o nim.
Kiedyś była to droga rada. Zrobienie prototypu zajmowało dni, więc rozsądnie było najpierw wszystko przegadać i budować dopiero wtedy, gdy było się względnie pewnym. Agenci odwrócili tę ekonomię. Zgrubna wersja niemal czegokolwiek kosztuje dziś mniej niż spotkanie, które byś na jej temat odbył, nawet jeśli to spotkanie tylko z samym sobą. Zmienia się więc kolejność działań. Zamiast pomyśl, zdecyduj, zbuduj mamy: zbuduj zgrubnie, popatrz, zdecyduj, zbuduj porządnie.
Działa to dlatego, że ludzie, łącznie z tobą, znacznie lepiej reagują, niż wyobrażają sobie. Gdy pokaże ci się stronę, w ciągu sekund wiesz, że nagłówek jest za długi, a przycisk jest w złym miejscu. Poproszony o wyobrażenie sobie strony, możesz spędzić nad tym godzinę i przegapić jedno i drugie. Artefakt zamienia mgliste preferencje w konkretne zastrzeżenia, a konkretne zastrzeżenia to coś, na co agent może zareagować.
Nie da się przejrzeć intencji. Da się przejrzeć artefakt.
Są dwie dyscypliny, które chronią zasadę artefaktu przed zamienieniem się w artefaktowy rozrost. Pierwsza to uczciwe etykietowanie artefaktu. Szkic to szkic. Powiedz agentowi, że to szkic, żeby nie tracił wysiłku na szlif, i powiedz to sobie, żebyś się w nim nie zakochał. Wielu operatorów trzyma osobny folder albo gałąź na artefakty do wyrzucenia właśnie po to, żeby nic, co tam leży, nie mogło zostać wzięte za prawdziwą pracę.
Druga dyscyplina to kończenie każdego artefaktu decyzją. Cały sens zrobienia tej rzeczy polegał na tym, żeby się czegoś dowiedzieć. Kiedy już na nią spojrzysz, zapisz, czego się dowiedziałeś i co zrobisz: zostajesz przy tym kierunku, porzucasz go albo zmieniasz jedną konkretną rzecz i patrzysz jeszcze raz. Artefakt, który nie prowadzi do decyzji, to po prostu wynik, a poprzednie rozdziały jasno powiedziały, ile jest wart sam wynik.
Zasada artefaktu poprawia też twoje briefy. Kiedy masz przed sobą zgrubną wersję, następny brief może na nią wskazać: zostaw układ, zmień ton tekstu, zrób tabelę sortowalną. Wskazywanie jest znacznie precyzyjniejsze niż opisywanie. Pierwszy artefakt często jest cenny nie tyle sam w sobie, ile przez słownictwo, jakie daje ci do zamówienia drugiego.
W tym tygodniu znajdź decyzję, którą odkładasz, bo nie potrafisz do końca wyobrazić sobie opcji. Poproś agenta o dwie zgrubne wersje, obok siebie, w takiej formie, jaką ta rzecz ostatecznie przyjmie. Daj sobie dziesięć minut, żeby na nie popatrzeć. Zauważ, jak szybko decyzja podejmuje się sama, kiedy jest na co patrzeć. Zwykle po prostu potrzebowała twarzy.
Ryc. 8 · Najpierw artefakt. Dawna kolejność „najpierw myśl, potem buduj” wobec budowania z grubsza, patrzenia i decyzji.
Rozdział 9 · Część I
Zasada małej maszyny
Każdy operator prędzej czy później buduje za dużo maszyny. Zaczyna się niewinnie. Piszesz pomocny skrypt, potem szablon, potem zestaw instrukcji do powtarzalnego zadania, potem panel do śledzenia powtarzalnych zadań, potem agenta, który aktualizuje panel. Każdy element ma sens sam w sobie. Razem tworzą system, który wymaga własnego utrzymania, własnej dokumentacji i wkrótce własnego operatora. Miałeś prowadzić małą firmę, a odkryłeś, że prowadzisz małą firmę programistyczną, której jedynym klientem jesteś ty.
Zasada małej maszyny jest przed tym obroną. Mówi: utrzymuj cały system na tyle mały, żebyś mógł go ogarnąć w głowie w zły dzień. Nie w dobry dzień, kiedy jesteś wypoczęty, ciekawy świata i lubisz pomajsterkować, ale w zmęczone czwartkowe popołudnie, kiedy coś się zepsuło i musisz wiedzieć, gdzie szukać. Jeśli nie potrafisz naszkicować swojego systemu z pamięci na odwrocie koperty, jest za duży.
Co zawiera mała maszyna? Zwykle znacznie mniej, niż ludzie się spodziewają. Jeden rejestr projektów, żebyś wiedział, co jest w toku. Garść przepisów wielokrotnego użytku do pracy, którą wykonujesz regularnie. Mały, stabilny zestaw narzędzi, które dobrze znasz. I na samym dole, pod wszystkim, jeden dzienny rytm, który mówi ci, kiedy robić przegląd, kiedy pracować, a kiedy przestać. Ten rytm jest fundamentem; reszta stoi na nim. Operator z dobrym rytmem i trzema narzędziami przegoni takiego, który ma zły rytm i trzydzieści narzędzi.
Jeśli potrzebujesz instrukcji do obsługi swojej instrukcji, przestań budować.
Ta zasada idzie pod prąd naturalnemu odruchowi. Agenci sprawiają, że budowanie narzędzi jest tak łatwe, że nieautomatyzowanie każdego powtarzalnego kroku może wydawać się nieodpowiedzialne. Ale automatyzacja ma koszt utrzymania. Każdy skrypt trzeba utrzymywać w działaniu, gdy zmienia się świat wokół niego. Każdy szablon się dezaktualizuje. Każda podłączona usługa wymaga przeglądu uprawnień i zauważania awarii. Koszt jest mały dla każdego elementu i duży w sumie, a płaci się go dokładnie w tej walucie, której masz najmniej, czyli uwadze.
Zanim więc dodasz nowy element do maszyny, zadaj dwa pytania. Czy będę z tego korzystać przynajmniej raz w tygodniu? I czy zauważę, kiedy to się zepsuje? Jeśli odpowiedź na którekolwiek brzmi nie, zrób zadanie ręcznie albo jednorazowym briefem i poczekaj, aż wzorzec się potwierdzi. Przepis, który pięć razy wykonałeś ręcznie, jest gotowy do spisania. Przepis wykonany raz to zgadywanie.
Równie pożyteczne jest odejmowanie. Raz na kwartał wypisz każdy element swojego systemu i zapytaj, których nie używałeś od miesiąca. Usuń je albo przynajmniej schowaj gdzieś z widoku. Operatorzy rzadko żałują usunięcia. Często żałują godziny spędzonej na debugowaniu sprytnej automatyzacji, która oszczędzała im cztery minuty tygodniowo.
W tym tygodniu narysuj swoją maszynę. Jedna strona, z pamięci. Cokolwiek zapomnisz uwzględnić, jest kandydatem do usunięcia. Czegokolwiek nie potrafisz wyjaśnić jednym zdaniem, jest kandydatem do uproszczenia. Maszyna, którą umiesz narysować, to maszyna, którą umiesz prowadzić.
Ryc. 9 · Zasada małej maszyny. Mała maszyna opiera się na jednym dziennym rytmie, z dwoma testami przed dodaniem elementu.
Rozdział 10 · Część I
Nazwisko na drzwiach
Jest jeden fakt dotyczący pracy operatora, który nie zmienia się bez względu na to, jak zdolni staną się agenci: na drzwiach jest twoje nazwisko. Kiedy coś wychodzi w świat, wychodzi jako twoje. Kiedy się psuje, psuje się jako twoje. Klient, czytelnik czy użytkownik nigdy nie zapyta, który agent napisał ten akapit albo który wątek wyprodukował ten błąd. Zapyta ciebie i będzie miał rację.
To nie jest ciężar, który trzeba znosić z urazą. To właśnie sprawia, że ta praca jest pracą. Gdyby agenci mogli być właścicielami rezultatów, nie potrzebowaliby operatora, a cały układ byłby prostszy i dla ciebie znacznie mniej interesujący. Odpowiedzialność za wynik zamienia stertę zdolnych narzędzi w działającą operację. Ktoś musi zdecydować, co znaczy wystarczająco dobrze, i ktoś musi potem za to odpowiedzieć.
To, co z tej odpowiedzialności wynika, jest głównie kwestią uwagi. Agenci wykonują pracę, szeroko i szybko. Ty przeglądasz pracę, wąsko i starannie, bo to w przeglądzie twoja odpowiedzialność staje się realna. I ty odpowiadasz za rezultat, co oznacza, że przegląd musi być na tyle dobry, żebyś bez dyskomfortu bronił rezultatu przed kimś, kto się liczy. Ten ciąg zwęża się po drodze: dużo pracy, mniej przeglądu, jeden właściciel. W tym zwężeniu tkwi cały sens.
Wysiłek możesz delegować. Przeprosin nie.
Odpowiedzialność kształtuje też briefy, które piszesz. Operator, który wie, że odpowie za wynik, pisze jaśniejsze ograniczenia, prosi o mocniejsze dowody i rzadziej kusi go, żeby w piątkowe popołudnie machnąć ręką i przepuścić. Przed zatwierdzeniem czegokolwiek warto przeprowadzić eksperyment myślowy: wyobraź sobie, że tłumaczysz to osobie, której to najbardziej dotyczy. Jeśli twoje wyjaśnienie zaczynałoby się od no cóż, agent zdecydował, nie skończyłeś przeglądu.
Nic z tego nie oznacza robienia wszystkiego samemu ze strachu. To przeciwna porażka i wśród sumiennych ludzi jest równie częsta. Odpowiedzialność da się pogodzić z intensywnym delegowaniem, pod warunkiem że to, co delegujesz, wraca przez punkt kontrolny, którym zarządzasz. Dobry redaktor odpowiada za magazyn, nie pisząc każdego artykułu. Dobry kapitan odpowiada za statek, nie dokręcając każdej śruby. Umiejętność polega na rozmieszczeniu punktów kontrolnych tam, gdzie wyłapią to, co ważne, i o tym jest większość dalszej części tej książki.
Jest też cichsza korzyść. Odpowiedzialność za rezultat daje pracy środek ciężkości. Kiedy żonglujesz tuzinem wątków i flotą agentów, łatwo poczuć, że praca dzieje się tobie, a nie przez ciebie. Pamięć o tym, że to podpiszesz, przywraca cię na fotel operatora. Przestajesz obserwować maszynę i zaczynasz nią sterować.
W tym tygodniu, zanim zatwierdzisz cokolwiek, co zobaczy inna osoba, zatrzymaj się na pięć sekund i zapytaj: czy bym to podpisał? Nie czy to pewnie jest w porządku, tylko czy postawiłbym pod tym swoje nazwisko. W większości przypadków odpowiedź będzie twierdząca. Tych kilka razy, kiedy nie będzie, to będą najcenniejsze pięć sekund twojego tygodnia.
Ryc. 10 · Nazwisko na drzwiach. Praca zawęża się od wielu wątków agentów do twojego przeglądu i w końcu do twojego podpisu.
Część II
Dzień operacyjny
Poranny przegląd, sesje i zamknięcie.
Rozdział 11 · Część II
Kształt dobrego dnia
Dobry dzień operacyjny ma kształt, który dałoby się narysować trzema kreskami. Krótki odcinek przeglądu na początku, długi środek wypełniony sesjami i krótkie zamknięcie na końcu. Szczegóły zależą od osoby, od pory roku i od tego, ile kawy jest w domu, ale kształt się trzyma. Kiedy operatorzy opisują dzień, który się udał, niemal zawsze opisują ten kształt. Kiedy opisują dzień, który poszedł źle, zwykle opisują jego brak.
Przegląd jest pierwszy, bo to w nim rozstrzyga się dzień. Czytasz, co się wydarzyło od ostatniego razu, oddzielasz to, co wymaga twojego osądu, od tego, co nie wymaga, i wybierasz kilka rezultatów na dziś. To część dnia o największej dźwigni i najmniejszym dramatyzmie. Podczas przeglądu nic się nie buduje. Wszystko, co zostanie zbudowane potem, od niego zależy.
Sesje wypełniają środek. Sesja to ograniczony odcinek pracy wycelowany w jeden rezultat: briefujesz, agenci pracują, ty przeglądasz, wypuszczasz albo odsyłasz. Dzień może pomieścić dwie sesje albo sześć, zależnie od ich wielkości i od ciebie. Liczy się to, żeby każda miała początek i koniec, tak by środek dnia był ciągiem zakończonych podejść, a nie jedną długą smugą rozproszonej uwagi.
Zamknięcie jest ostatnie, bo to ono umożliwia jutrzejszy przegląd. Zapisujesz, co wyszło, co jest wciąż otwarte i jaki powinien być jutro pierwszy ruch. Potem przestajesz, w pełnym znaczeniu tego słowa: wątki wstrzymane albo celowo zostawione w biegu, laptop zamknięty, uwaga oddana temu, co jeszcze zawiera twoje życie. Zamknięcie to część, którą większość operatorów pomija, a jego brak sprawia, że tyle poranków zaczyna się od dwudziestu minut prób przypomnienia sobie, gdzie co było.
Zacznij celowo, skończ celowo, a środek w większości zadba o siebie sam.
Dlaczego tak prosty kształt działa tak dobrze? Bo rozdziela dwa tryby myślenia, które sobie przeszkadzają. Przegląd i zamknięcie dotyczą decydowania: co jest ważne, co jest skończone, co dalej. Sesje dotyczą kierowania konkretną pracą i oceniania jej. Kiedy tryby się zlewają, decyzje zapadają byle jak w szczelinach między zadaniami, a zadania są przerywane przez niedokończone decyzje. Danie każdemu trybowi własnego czasu chroni oba.
Kształt daje ci też miejsce na rzeczy, które nigdzie nie pasują. Nowy pomysł w środku sesji trafia na listę do jutrzejszego przeglądu, zamiast stawać się nowym wątkiem. Zmartwienie pod koniec dnia trafia do notatek z zamknięcia, a nie do twojego wieczoru. Kształt to zestaw pojemników, a pojemniki sprawiają, że zajęty system się nie przelewa.
W tym tygodniu nie próbuj doskonalić dnia. Po prostu wstaw trzy kreski do kalendarza: blok przeglądu, blok zamknięcia i wszystko pomiędzy nimi opisane jako sesje. Niech przegląd i zamknięcie będą krótkie; na początek dwadzieścia minut każde wystarczy z nawiązką. Zobacz, co dzieje się ze środkiem, kiedy jego brzegi są twarde. Większość ludzi stwierdza, że zachowuje się lepiej. Środki zwykle tak mają, kiedy ktoś narysuje im brzegi.
Ryc. 11 · Kształt dobrego dnia. Twardy przegląd i zamknięcie obejmują środek z ograniczonych sesji, z pojemnikami na resztki.
Rozdział 12 · Część II
Poranny przegląd
Poranny przegląd to dwadzieścia minut, które decydują, czy reszta dnia dokądkolwiek doprowadzi. To nie jest nadrabianie zaległości. To nie jest sprawdzanie wiadomości. To mały, uporządkowany akt selekcji, który bierze wszystko, co nagromadziło się od wczorajszego zamknięcia, i zawęża to do garstki rezultatów, do których będziesz dziś dążyć.
Zacznij szeroko. Spójrz na wszystko, co działało albo przyszło od ostatniego razu: wątki w tle, które się zakończyły, czekające pull requesty, notatki z wczorajszego zamknięcia, wiadomości wymagające odpowiedzi, cokolwiek, co oflagowało zautomatyzowane zadanie. Na razie na nic nie reaguj. Kusi, żeby naprawić pierwszą drobnostkę, jaką zobaczysz, bo to szybkie i satysfakcjonujące. Nie rób tego. Pierwsza drobnostka rzadko jest najważniejsza, a kiedy raz zaczniesz naprawiać, przegląd się kończy, a dzień zostaje wybrany przypadkiem.
Potem zawężaj. Przy każdej pozycji zapytaj, czy wymaga ona twojej decyzji. Wiele nie wymaga. Wątek, który się zakończył i przeszedł swoje sprawdzenia, może potrzebować jedynie scalenia, czyli dwusekundowej czynności, którą da się zrobić hurtem. Powiadomienie, że coś przebiegło pomyślnie, nie wymaga niczego. To, co zostaje, czyli pozycje, które naprawdę potrzebują twojego osądu, jest twoją listą decyzji. Zwykle jest krótsza, niż sugerowała skrzynka odbiorcza.
Na koniec wybierz. Z listy decyzji i z rejestru projektów wybierz rezultaty na dziś. Następny rozdział proponuje trzy, ale liczba ma mniejsze znaczenie niż sam akt wyboru. Zapisz je tam, gdzie będziesz je widzieć przez cały dzień. To umowa, jaką dzień zawiera sam ze sobą.
Dzień wygrywa się w przeglądzie, po cichu, zanim cokolwiek się wydarzy.
Kilka uwag praktycznych. Rób przegląd, zanim otworzysz cokolwiek, co może wciągnąć cię w rozmowę, bo rozmowy są zaprojektowane tak, żeby je kontynuować, a przegląd jest zaprojektowany tak, żeby go skończyć. Ogranicz go czasowo; jeśli każdego ranka zajmuje czterdzieści minut, to coś wyżej w łańcuchu produkuje za dużo szumu, a to samo w sobie jest warte naprawienia. I rób go codziennie w tym samym miejscu, w tej samej kolejności, żeby stał się nawykiem, a nie decyzją. Decyzje z samego rana są drogie. Nawyki są za darmo.
Niektórzy operatorzy proszą agenta, żeby przygotował dla nich przegląd: krótkie zestawienie tego, co działało, co przeszło, co się nie udało i co czeka. To dobre zastosowanie agenta, pod warunkiem że zestawienie jest punktem wyjścia, a nie zastępstwem. Przeczytaj je, a potem rzuć okiem na pozycje źródłowe w poszukiwaniu czegokolwiek, co pachnie podejrzanie. Agent potrafi streścić. Jeszcze nie potrafi ci powiedzieć, na której ze streszczonych rzeczy będzie ci najbardziej zależało o jedenastej.
Spróbuj tego jutro. Zanim cokolwiek otworzysz, napisz na czystej kartce dzisiejszą datę i słowa rezultaty na dziś. Potem zrób przegląd, szeroko, wąsko, wybór, i wypełnij kartkę. Zakończ przegląd świadomie, na przykład zamykając kartę, w której go robiłeś. Potem zacznij pierwszą sesję. Zauważ, jak inaczej wygląda pierwsza godzina, kiedy zaczyna się od decyzji, a nie od przewijania.
Ryc. 12 · Poranny przegląd. Poranny przegląd patrzy szeroko, zawęża się do decyzji i wybiera dzisiejsze efekty.
Rozdział 13 · Część II
Lektura tego, co działo się nocą
Jedną z wielkich przyjemności pracy z agentami jest budzenie się do skończonej roboty. Zbriefowałeś wątek przed snem, pracował, kiedy spałeś, a teraz czeka pull request, szkic, raport albo zbiór danych. Czujesz się, jakbyś miał personel. To także jedno z najłatwiejszych miejsc na cichy, kosztowny błąd, bo o pracy wykonanej, kiedy nie patrzyłeś, wiesz najmniej.
Pierwsza zasada czytania nocnej pracy: przeczytaj wynik przed podsumowaniem. Agenci piszą dobre podsumowania, a dobre podsumowania są przekonujące. Mówią ci, co zostało zrobione, dlaczego i że wszystko przeszło. Nie są kłamstwami, ale pisze je strona, która wykonała pracę, i w naturalny sposób akcentują to, co poszło dobrze. Najpierw otwórz faktyczny wynik: diff, dokument, dane. Wyrób sobie własne wrażenie. Potem przeczytaj podsumowanie i zobacz, czy się z tobą zgadza.
Druga zasada: sprawdzaj dowody, a nie tylko to, że istnieją. Wątek, który mówi wszystkie testy przechodzą, coś ci powiedział, ale chcesz wiedzieć, które testy i czy którykolwiek z nich faktycznie sprawdza nową pracę. Raport, który powołuje się na źródła, powinien mieć źródła, które da się otworzyć. Zbiór danych, który deklaruje sto wierszy, powinien mieć sto wierszy. Każde z tych sprawdzeń zajmuje minutę. To minuta, która oddziela zaufanie do maszyny od nadziei, że maszyna miała rację.
Praca bez nadzoru zasługuje na wolniejszą pierwszą lekturę niż praca nadzorowana, a nie szybszą.
Trzecia zasada: zdecyduj czysto o jednej z trzech rzeczy. Wypuść, odeślij z konkretnymi uwagami albo odłóż z podaniem powodu. Nie zostawiaj nocnej pracy w niejasnym stanie, otwartej i doczytanej do połowy, bo właśnie tak staje się ona czwartą pozycją także w jutrzejszym przeglądzie. Jeśli jest dobra, scal ją albo opublikuj teraz. Jeśli wymaga zmian, zapisz zmiany jako krótki brief i puść wątek na kolejną rundę. Jeśli wywołała pytanie, na które nie umiesz jeszcze odpowiedzieć, zapisz je w rejestrze obok projektu i zamknij kartę.
Z czasem warto dostrzec pewien wzorzec. Niektóre rodzaje nocnej pracy niezawodnie wracają dobre, a niektóre niezawodnie wracają zagmatwane. Pierwsze są zwykle wąskie, dobrze opisane i łatwe do zweryfikowania. Drugie są zwykle szerokie, eksploracyjne albo zależne od rozstrzygnięć, które agent musiał podjąć bez ciebie. To nie powód, żeby przestać puszczać szeroką pracę na noc. To powód, żeby inaczej ją briefować: prosić o opcje zamiast o decyzję i liczyć się z tym, że rano spędzisz nad nią więcej czasu na przeglądzie.
W tym tygodniu prowadź krótką notatkę o każdym nocnym wyniku, który czytasz: co to było, czy to wypuściłeś, odesłałeś czy odłożyłeś i ile zajęła lektura. Do piątku będziesz wiedzieć, które rodzaje pracy można bezpiecznie puszczać, kiedy śpisz, a które naprawdę potrzebują cię przytomnego. Ta wiedza jest warta więcej niż jakakolwiek ilość możliwości agentów, bo mówi ci, w co wycelować możliwości, które już masz.
Ryc. 13 · Lektura tego, co działo się nocą. Czytaj nocny wynik, potem podsumowanie, potem dowody, i zdecyduj na jeden z trzech sposobów.
Rozdział 14 · Część II
Wybór dzisiejszej trójki
Wybierz na dzień trzy rezultaty. Nie trzy zadania, nie trzydzieści i nie jeden. Trzy rezultaty, każdy taki, który do zamknięcia będzie widocznie skończony: wypuszczony, wysłany, rozstrzygnięty albo opublikowany. To najbardziej użyteczne ograniczenie, jakie operator może przyjąć, a jest użyteczne właśnie dlatego, że wydaje się za małe.
Dlaczego trzy? Częściowo dlatego, że mniej więcej tyle jedna osoba jest w stanie porządnie przejrzeć w ciągu dnia, kiedy większość pracy wykonują agenci. Każdy rezultat będzie wymagał co najmniej jednego starannego przeglądu, często dwóch albo trzech, a każdy przegląd wymaga prawdziwej uwagi. Częściowo dlatego, że trzy wystarczą, by zamortyzować rozczarowanie: jeśli jeden rezultat utknie, dzień i tak da dwa. A częściowo dlatego, że trzy to liczba, którą da się utrzymać w głowie bez zapisywania, choć i tak powinieneś ją zapisać.
Cała umiejętność tkwi w wybieraniu. Przydatnie jest umieścić kandydujące rezultaty na dwóch osiach: wpływu i wysiłku. Wpływ to to, ile zmieniłoby ukończenie: dla klienta, dla użytkowników, dla kondycji twoich projektów. Wysiłek to nie wysiłek agenta, który jest tani, tylko twój: ile briefowania, przeglądania i decydowania to wymaga. Szukasz rezultatów o wysokim wpływie i umiarkowanym wysiłku z twojej strony. To jest dzisiejsza trójka.
Lista trzydziestu to życzenie. Lista trzech to plan.
Uważaj na dwa częste wypaczenia. Pierwsze to wybieranie wyłącznie łatwych rezultatów, bo kończenie jest przyjemne, a łatwe rzeczy się kończą. Dzień trzech błahych zwycięstw jest miły i nie przesuwa niczego, co się liczy. Dopilnuj, żeby przynajmniej jeden z trzech był czymś, do czego trochę nie chciałbyś się zabrać. Drugie wypaczenie to wybieranie wyłącznie ogromnych rezultatów, bo wydają się ważne. Ogromny rezultat rzadko kończy się w jeden dzień. Jeśli coś jest ważne, ale duże, rezultatem na dziś powinien być jego wycinek, który da się skończyć: pierwsza sekcja wypuszczona, projekt rozstrzygnięty, dane wyczyszczone.
Trójka nie jest więzieniem. Rzeczy będą wyskakiwać. Jeśli przyjdzie coś pilnego, możesz to podmienić, ale zrób to jawnie: skreśl jedną pozycję, wpisz nową i odnotuj, że dokonałeś wymiany. Czego nie powinieneś robić, to po cichu dopisywać czwartej i piątej. Tak właśnie trzy zamieniają się w osiem, a osiem w dzień, w którym nic się do końca nie kończy.
Przy zamknięciu spójrz na trójkę. Oznacz każdą pozycję jako zrobioną, częściowo zrobioną albo niezrobioną i przy tych, które się obsunęły, napisz zdanie dlaczego. Po kilku tygodniach wyłoni się wzorzec. Może stale nie doszacowujesz czasu przeglądu. Może popołudnia to miejsce, gdzie rezultaty idą umierać. Może w poniedziałki wybierasz dobrze, a w czwartki źle. Każdy wzorzec to dźwignia.
Zacznij od jutra. W porannym przeglądzie napisz na górze kartki trzy rezultaty. Niech każdy będzie możliwy do skończenia, konkretny i wart zrobienia. Potem spędź dzień nad nimi i tylko nad nimi, chyba że świadomie coś wymienisz. To skromna dyscyplina. Jej wpływ na tydzień wcale nie jest skromny.
Ryc. 14 · Wybór dzisiejszej trójki. Dzisiejsza trójka to duży wpływ przy umiarkowanym wysiłku, z dala od prac błahych i ogromnych.
Rozdział 15 · Część II
Sesje w blokach czasu
Sesja to blok czasu o jednym celu. Zaczyna się briefem, kończy decyzją i nie zawiera niczego innego. Operatorzy pracujący w sesjach robią więcej niż ci, którzy pracują w strumieniu, z tego samego powodu, z jakiego kuchnia z minutnikami wydaje więcej posiłków niż taka, w której wszystko zostawia się na wolnym ogniu, aż ktoś sobie o tym przypomni.
Struktura wewnątrz sesji jest prosta. Piszesz albo wczytujesz brief, najlepiej w pierwszych dziesięciu minutach. Pozwalasz agentom pracować, obserwując na tyle, żeby wcześnie wyłapać zły skręt, ale nie tak blisko, żebyś w praktyce wykonywał pracę ich rękami. Starannie przeglądasz to, co wraca. I decydujesz: wypuścić, puścić jeszcze raz w ramach tej samej sesji albo odłożyć z notatką. Przegląd i decyzja to serce sesji i zarazem ta część, którą najłatwiej ścisnąć, jeśli sesja nie ma ustalonego końca.
Ile powinna trwać sesja? Na tyle długo, żeby coś skończyć, i na tyle krótko, żebyś przy przeglądzie wciąż był bystry. Dla wielu ludzi to gdzieś między czterdziestoma minutami a dwiema godzinami. Dokładna długość ma mniejsze znaczenie niż to, że ustaliłeś ją z góry. Sesja z ustalonym końcem zmienia twoje zachowanie na początku: briefujesz ciaśniej, bo wiesz, że na późniejsze poprawianie mglistego briefu jest mało czasu.
Daj pracy pojemnik, a w większości w nim zostanie.
Sesje sprawiają też, że równoległą pracę da się ogarnąć. Przy agentach kusi, żeby uruchomić wiele wątków i dryfować między nimi. To może działać, ale działa znacznie lepiej, gdy każdy wątek należy do sesji, która ma właściciela i koniec. W ramach sesji możesz puścić trzech agentów na trzy wycinki tego samego rezultatu. Unikać należy pięciu wątków na pięć niezwiązanych rezultatów, wszystkich na wpół obserwowanych i żadnego porządnie przejrzanego. To nie jest praca równoległa. To równoległe zaniedbanie.
Wpisuj sesje do kalendarza, nawet jeśli to kalendarz tylko twój. Opisz każdą rezultatem, a nie czynnością: wypuścić poprawkę importera, a nie praca nad importerem. Kiedy sesja się kończy, przestań, nawet jeśli praca nie jest do końca zrobiona. Zapisz krótką notatkę o stanie rzeczy i albo zaplanuj kolejną sesję, albo przenieś rezultat z powrotem do rejestru. Dyscyplina przerywania jest na początku niewygodna. To ona jednak uczy cię w ciągu kilku tygodni, jak duży naprawdę jest kawałek pracy na jedną sesję.
Między sesjami zrób prawdziwą przerwę. Nie przerwę spędzoną na sprawdzaniu innych wątków, bo to tylko kolejna sesja w przebraniu, ale przerwę, w czasie której niczego się nie przegląda. Agenci mogą dalej pracować. Ty nie musisz. Jakość twojego następnego przeglądu zależy od tej przerwy znacznie bardziej niż od czegokolwiek, co mógłbyś w tym czasie przeczytać.
W tym tygodniu spróbuj przepuszczać każdą pracę przez sesję: blok w kalendarzu, rezultat w tytule, decyzja na końcu. Licz, ile sesji kończysz każdego dnia. Ta liczba, bardziej niż przepracowane godziny, jest dobrą miarą rzeczywistej wydolności operatora. Większość ludzi odkrywa, że jest mniejsza, niż zakładali, i że praca zgodnie z nią, a nie wbrew niej, przynosi ogromną ulgę.
Ryc. 15 · Sesje w blokach czasu. Sesja biegnie od briefu do decyzji; równoległe kawałki jednego efektu biją równoległe zaniedbanie.
Rozdział 16 · Część II
Czysty start sesji
Pierwsze pięć minut sesji przesądza o większości tego, co wydarzy się w ciągu następnej godziny. Sesja, która zaczyna się czysto, z wczytanym właściwym kontekstem i jasnym briefem, zwykle przebiega gładko. Sesja, która zaczyna się od dobra, na czym to ja stanąłem, zwykle spędza pierwszą połowę na ustalaniu tego, a drugą na odkręcaniu domysłów, które poczyniła w trakcie ustalania.
Czysty start składa się z trzech ruchów. Po pierwsze, przeczytaj notatkę przekazania. Jeśli ten rezultat był już ruszany, powinna istnieć notatka z ostatniej sesji albo z wczorajszego zamknięcia, która mówi, w jakim jest stanie: co zrobiono, co jest otwarte, jaki miał być następny ruch. Przeczytaj ją i przeczytaj wszelkie istotne wpisy w pamięci projektu. Zajmuje to dwie minuty i oszczędza dwadzieścia. Jeśli notatki nie ma, to też coś ci mówi o tym, jak skończyła się ostatnia sesja, i możesz to później naprawić.
Po drugie, napisz brief. Nawet jeśli sesja jest kontynuacją, zapisz w kilku zdaniach, do czego ta sesja służy, jak wygląda gotowe i co agent powinien wiedzieć. To częściowo dla agenta, a częściowo dla ciebie. Pisanie briefu zmusza cię do zdecydowania, czego właściwie chcesz od następnej godziny, a sam akt decydowania to połowa wartości sesji.
Po trzecie, zatwierdź plan, zanim zacznie się praca. Przy wszystkim, co jest większe niż drobna zmiana, poproś agenta, żeby powiedział, jak zamierza działać, zanim to zrobi. Wiele narzędzi agentowych ma tryb planowania właśnie z tego powodu. Przeczytaj plan. Jeśli jest błędny, poprawienie go teraz kosztuje jedno zdanie. Poprawienie go po czterdziestu minutach pracy kosztuje czterdzieści minut i twoją cierpliwość.
Błędny plan jest tani. Błędny plan wykonany już nie.
Te ruchy brzmią pedantycznie, a przy małych zadaniach można je ścisnąć do jednej linijki briefu. Ale nawyk liczy się bardziej niż ceremonia. Operatorzy, którzy pomijają czysty start, często obwiniają agenta, kiedy sesja zjedzie w bok: źle zrozumiał, poszedł w dziwnym kierunku, nie wiedział o ograniczeniu. W większości takich przypadków agent pracował dokładnie na tym, co dostał, a dostał niewiele.
Czysty start obejmuje też czyste otoczenie. Zamknij wątki, które nie należą do tej sesji. Uprzątnij karty z poprzedniej. Jeśli agent pracuje w repozytorium, upewnij się, że jesteś na właściwej gałęzi i że nie walają się tam żadne niedokończone resztki z wcześniej. To drobne akty porządku, a zapobiegają całej klasie mylących błędów, w których agent pracuje nad jedną rzeczą, a jakaś pozostałość po innej po cichu mu przeszkadza.
Spróbuj to zmierzyć. Przez najbliższe pięć sesji notuj, ile trwa czysty start, a potem oceniaj sesję w prostej skali: gładka, wyboista albo zmarnowana. Większość operatorów stwierdza, że sesje z porządnym startem znacznie częściej dostają ocenę gładka, a start rzadko trwał dłużej niż pięć minut. Pięć minut to niewielka cena za gładką godzinę. To także, wygodnie, mniej więcej tyle, ile trwa zaparzenie herbaty, a jedno z drugim dobrze się łączy.
Ryc. 16 · Czysty start sesji. Pięć minut czystego startu: uprzątnij stół, przeczytaj przekazanie, napisz brief, potwierdź plan.
Rozdział 17 · Część II
Środek dnia
Kiedy agenci już pracują, operator staje przed osobliwym problemem: co ze sobą zrobić. Praca się dzieje. Nie potrzebuje twoich rąk. Czasami potrzebuje twojego osądu, a ty nie wiesz dokładnie kiedy. Więc krążysz. Patrzysz, jak przewija się wynik, czytasz każdy pośredni krok, otwierasz pliki, w miarę jak się zmieniają. Wydaje się to odpowiedzialne. W większości jest to sposób na wydawanie uwagi bez kupowania za nią czegokolwiek.
Alternatywą jest rytm: zajrzyj, odblokuj, odejdź. Zaglądaj w rozsądnych odstępach, a nie bez przerwy. Zobacz, dokąd doszedł każdy działający wątek, czy na ciebie czeka i czy zmierza w jakimś sensownym kierunku. Jeśli coś utknęło na pytaniu, odpowiedz na nie. Jeśli coś dryfuje, skoryguj to jednym zdaniem. Potem odejdź i zajmij się czymś, co nie jest patrzeniem: przejrzyj skończoną pracę, napisz jutrzejszy brief, przemyśl decyzję albo po prostu idź na spacer.
Odblokowywanie to cenna część i warto pomyśleć, dlaczego. Agenci utykają na rzeczach, które wymagają decyzji, której sami podjąć nie mogą: które z dwóch podejść wolisz, czy jakieś ograniczenie naprawdę obowiązuje, co zrobić z czymś nieoczekiwanym. Godzina stracona na czekanie na tę decyzję to zmarnowana godzina pracy agenta. Minuta poświęcona na jej podjęcie to minuta o największej dźwigni w środku dnia. Kiedy więc zaglądasz, najpierw szukaj wszystkiego, co czeka na ciebie, i usuń to przed czymkolwiek innym.
Krążenie wydaje uwagę. Odblokowywanie ją inwestuje.
Jak często zaglądać? To zależy od pracy i od tego, jak dobrze została zbriefowana. Ciasno opisane zadanie z jasnymi sprawdzeniami może długo działać bez ciebie. Zadanie eksploracyjne o rozmytych brzegach potrzebuje częstszych spojrzeń, bo szansa na zły skręt jest większa. Przydatna zasada: zaglądaj mniej więcej w takich odstępach, po jakich zły skręt zaczynałby być uciążliwy do odkręcenia. Przy wielu zadaniach to co piętnaście, dwadzieścia minut. Przy niektórych raz na godzinę.
Wiele narzędzi agentowych powiadamia cię dziś, kiedy wątek potrzebuje danych albo się kończy. Korzystaj z tych powiadomień, ale je wyreguluj. Jeśli wszystko cię powiadamia, nic cię nie powiadamia. W idealnym świecie jedyne przerwania, jakie dostajesz w środku dnia, to te, które wymagają decyzji, a wszystko inne czeka na twoje następne zajrzenie albo na zamknięcie.
Środek dnia to także miejsce, gdzie testowane są poranne wybory. Jeśli dzisiejsza trójka jest dobrze wybrana, a briefy jasne, środek jest spokojny: zaglądasz, odblokowujesz, odchodzisz i przeglądasz skończoną pracę, gdy przychodzi. Jeśli środek wydaje się gorączkowy, to zwykle objaw czegoś wyżej w łańcuchu. Zaczęto zbyt wiele wątków. Brief był mglisty. Rezultat był za duży. Zanotuj objaw na jutrzejszy przegląd, zamiast próbować naprawiać przyczynę w środku burzy.
W tym tygodniu ustaw minutnik na zaglądanie zamiast patrzeć bez przerwy. Kiedy zadzwoni, spójrz, odblokuj i znowu odejdź. Zobacz, ile dnia ci to oddaje. Agenci nie zauważą różnicy. Ty zauważysz.
Ryc. 17 · Środek dnia. Pętla środka dnia: zajrzyj, odblokuj i odejdź, zamiast wisieć nad pracą.
Rozdział 18 · Część II
Przerwania i kolejka
Pomysły przychodzą w niewygodnych momentach. Jesteś w połowie przeglądania pull requestu i wpada ci do głowy nowa funkcja. Piszesz brief i przypominasz sobie maila, którego miałeś wysłać. Przychodzi wiadomość z prośbą o drobiazg. Agent w trakcie pracy sugeruje ulepszenie czegoś zupełnie innego. Każde z nich to małe przerwanie, a każde, jeśli zareagujesz na nie natychmiast, kosztuje nie tylko czas, jaki zajmuje, ale i czas potrzebny, żeby potem odnaleźć miejsce, w którym byłeś.
Agenci czynią przerwania groźniejszymi, bo sprawiają, że reagowanie na nie jest tak tanie. W starym świecie nowy pomysł w środku popołudnia musiał poczekać, bo byłeś zajęty. Teraz możesz otworzyć nowy wątek i uruchomić go w trzydzieści sekund, a te trzydzieści sekund wydają się darmowe. Nie są. Nowy wątek będzie wymagał briefowania, obserwowania, przeglądania i decydowania, a właśnie po cichu zabrał kawałek dzisiejszej uwagi, który był już obiecany dzisiejszej trójce.
Odpowiedzią jest kolejka. Jakieś proste miejsce, plik tekstowy albo lista w rejestrze, gdzie przerwania czekają. Kiedy coś przychodzi, zadaj jedno pytanie: czy to musi się wydarzyć dzisiaj, kosztem dzisiejszych rezultatów? Jeśli tak, zrób to teraz i świadomie wymień to na jedną z trzech pozycji. Jeśli nie, a prawie zawsze nie, wpisz to do kolejki jedną linijką i wróć do tego, co robiłeś. Będzie tam czekało w jutrzejszym przeglądzie, gdzie będzie mogło uczciwie konkurować ze wszystkim innym.
Zapisany pomysł nie przepada. Pomysł zrealizowany natychmiast często tak.
Kolejka działa, bo usuwa lęk przed zapomnieniem. Duża część chęci, by zareagować na przerwanie, bierze się ze strachu, że pomysł zniknie, jeśli się go nie złapie. Kiedy już ufasz, że kolejka go przechowa, a przegląd się mu przyjrzy, ta chęć słabnie. Możesz wrzucić dobry pomysł do kolejki z takim samym spokojem, z jakim wrzucasz list do skrzynki pocztowej.
Warto być uczciwym co do kategorii pilnych spraw. Bardzo niewiele rzeczy naprawdę musi się wydarzyć dzisiaj. Awaria na produkcji musi. Obietnica dana klientowi z terminem na dziś musi. Wiadomość od kogoś, kto czeka na ciebie, żeby ruszyć dalej, być może. Prawie nic innego, bez względu na to, jak pilne się wydaje, a poczucie pilności to często po prostu poczucie nowości w przebraniu.
Agenci też mogą pomóc z kolejką. Dobrym nawykiem jest proszenie agentów, żeby, gdy zauważą coś poza bieżącym zadaniem, zanotowali to, a nie naprawiali. Jeśli znajdziesz inne problemy, wypisz je na końcu; nie zmieniaj ich to linijka, która zapobiega mnóstwu rozrostu zakresu. Te notatki trafiają potem do kolejki, a bieżące zadanie pozostaje bieżącym zadaniem.
W tym tygodniu prowadź kolejkę i używaj jej przy każdym przerwaniu, które nie jest naprawdę pilne. Na koniec tygodnia spójrz, co się nazbierało. Część okaże się cenna i trafi do harmonogramu. Zaskakująco dużo w piątek będzie wyglądać tak, jakby nigdy nie było aż tak ważne. Ta zaskakująca ilość to uwaga, którą zaoszczędziłeś.
Ryc. 18 · Przerwania i kolejka. Każde przerwanie dostaje jedno pytanie; prawie wszystkie trafiają do kolejki na jutrzejszy przegląd.
Rozdział 19 · Część II
Polecenie zakończenia
Każda sesja powinna kończyć się tym samym małym rytuałem. Pomyśl o nim jak o poleceniu zakończenia: ustalonej sekwencji, która zamienia odcinek pracy w coś załatwionego. Sprawdź, wypuść, zanotuj, przestań. Zajmuje to pięć minut. To różnica między sesją, która się zakończyła, a sesją, która po prostu urwała się, bo skończył ci się czas.
Najpierw sprawdź. Zanim zrobisz cokolwiek innego, upewnij się, że to, co uważasz za zrobione, jest faktycznie zrobione. Puść sprawdzenia jeszcze raz, jeśli ostatni przebieg był przed ostatnimi zmianami. Otwórz stronę, przeczytaj dokument, spójrz na dane. Agenci dobrze raportują ukończenie; nie są w tym nieomylni, a koniec sesji, kiedy chcesz już iść dalej, to dokładnie ten moment, w którym najłatwiej przyjąć raport na wiarę.
Potem wypuść. Jeśli praca jest gotowa, umieść ją tam, gdzie jej miejsce: scal pull request, opublikuj wpis, wyślij maila, zaktualizuj rekord. Nie zostawiaj skończonej pracy na noc w gałęzi albo w folderze szkiców. Nie poprawi się tam, a stanie się pozycją w jutrzejszym przeglądzie, która będzie wymagała od ciebie odbudowania zaufania do niej od zera. Jeśli nie jest gotowa, zdecyduj jawnie, że nie jest, i dlaczego.
Potem zanotuj. Napisz krótką notatkę przekazania: co zrobiono, co jest otwarte, jaki jest następny ruch. Umieść ją tam, gdzie zajrzy następna sesja, czy to plik pamięci projektu, rejestr, czy notatka na górze wątku. Pisz ją dla kogoś, kto wszystko zapomniał, bo jutro tym kimś będziesz ty. Wielu operatorów prosi agenta o szkic tej notatki, a potem ją poprawia, co jest rozsądnym podziałem pracy, o ile poprawianie faktycznie następuje.
Sesja, która kończy się bez notatki, kończy się dwa razy: raz teraz i drugi raz jutro, kiedy ustalasz, co się stało.
Potem przestań. Zamknij wątek albo celowo zostaw go w biegu z jasnym zadaniem, jeśli to długie zadanie w tle. Zamknij karty. Wstań. Przestanie jest częścią polecenia, a nie dopiskiem, bo sesja, która się nie zatrzymuje, przecieka do następnej i ją rozmywa.
Niektórzy operatorzy formalizują to jako prawdziwe polecenie: krótką zapisaną instrukcję, którą wklejają albo wywołują na koniec sesji i która prosi agenta o przeprowadzenie końcowych sprawdzeń, podsumowanie stanu, wypisanie otwartych pytań i naszkicowanie notatki przekazania. To dobry pomysł, który sprawia, że rytuał jest na tyle łatwy, żeby go za każdym razem wykonać. Polecenie jest jednak tylko tak dobre, jak twoja gotowość do przeczytania tego, co wyprodukuje. Nie chodzi o zautomatyzowanie zakończenia. Chodzi o to, żeby zakończenie się odbyło.
W tym tygodniu kończ każdą sesję tymi czterema krokami, po kolei, nawet kiedy jesteś zmęczony, nawet kiedy sesja poszła źle. Zwłaszcza kiedy poszła źle. Złą sesję z dobrą notatką da się jutro uratować w pięć minut. Zła sesja bez notatki zwykle pozostaje zła przez całe dni. Polecenie zakończenia zamienia godzinę wysiłku w godzinę postępu i kosztuje mniej niż wysiłek, który chroni.
Ryc. 19 · Polecenie zakończenia. Czterokrokowe polecenie zakończenia: sprawdź, wydaj, zanotuj i zatrzymaj się.
Rozdział 20 · Część II
Zamknięcie dnia
Zamknięcie to ostatnie dwadzieścia minut dnia operacyjnego i ta część, którą większość operatorów pomija. Wydaje się opcjonalne. Praca jest zrobiona albo nie, i nic się nie zmieni, jeśli zostawisz to do rana. Ale zamknięcie nie dotyczy dzisiaj. Dotyczy jutrzejszego porannego przeglądu i wieczoru, który leży pomiędzy nimi.
Zacznij od zapisania tego, co wyszło. Spójrz na dzisiejszą trójkę i oznacz każdą pozycję. Odnotuj wszystko inne, co zostało skończone. Zajmuje to minutę i ma efekt nieproporcjonalny do swojej wielkości: zamienia mgliste poczucie zabiegania w konkretny zapis tego, co się zmieniło. W dobre dni ten zapis daje satysfakcję. W złe dni dostarcza informacji. W jedne i drugie jest lepszy niż uczucie, z którym w przeciwnym razie poszedłbyś spać.
Potem zapisz, co wciąż jest otwarte. Każdy wątek w trakcie lotu, każdy przegląd zrobiony do połowy, każde pytanie, na którego odpowiedź od kogoś czekasz. Przy każdym linijka: w jakim jest stanie i jaki jest następny ruch. Jeśli pisałeś notatki przekazania na koniec każdej sesji, ten krok sprowadza się głównie do ich zebrania. Jeśli nie, to tutaj odkrywasz, dlaczego warto.
Potem napisz jutro. Nie pełny plan, to zadanie porannego przeglądu, ale szturchnięcie: pierwszą rzecz, na którą zamierzasz spojrzeć, i może kandydata do jutrzejszej trójki. Zaczynanie poranka od sugestii od siebie z przeszłości sprawia, że przegląd idzie znacznie szybciej. Pozwala ci też oddać wszelkie niedokończone zmartwienia. Jeśli coś cię gryzie, zapisz to w tej sekcji, żeby miało gdzie mieszkać poza twoją głową.
Zapisz jutro, żeby dzisiejszy wieczór mógł być wieczorem.
Potem przestań. Zdecyduj, którzy agenci, jeśli w ogóle, będą pracować przez noc, i dopilnuj, żeby każdy miał jasne, ograniczone zadanie i sprawdzenie, które może przeprowadzić. Wstrzymaj wszystko, co nie musi działać. Zamknij laptopa. Przestanie nie jest nagrodą za skończenie; jest strukturalną częścią maszyny. Operator, który nigdy nie przestaje, nie robi więcej. Robi tyle samo, gorzej, z mniejszym osądem, a koszt odkrywa dopiero wtedy, gdy zmęczony przegląd przepuści coś, co powinno zostać wyłapane.
Istnieje pokusa, zwłaszcza kiedy agenci pracują, żeby po zamknięciu zajrzeć jeszcze raz. Wątek mógł się skończyć. Może jest coś ciekawego. Oprzyj się jej. Cokolwiek się wydarzyło, rano wciąż tam będzie, a poranny przegląd jest zaprojektowany po to, żeby spokojnie się tym zająć. Sprawdzanie późno w nocy zamienia spokojny poranny przegląd na niespokojny wieczorny, co jest złą wymianą pod każdym względem.
Dziś wieczorem zrób porządne zamknięcie. Dwadzieścia minut: co wyszło, co otwarte, jutro, stop. Potem zauważ, jak pójdzie jutrzejszy poranny przegląd. Większość ludzi stwierdza, że szybciej, spokojniej i bardziej zdecydowanie. Zamknięcie nie tylko kończy dzień. Zaczyna następny, po cichu, kiedy nie patrzysz.
Ryc. 20 · Zamknięcie dnia. Notatka zamknięcia zapisuje wydane, wciąż otwarte, jutro i stop, każde z celem.
Część III
Briefy, za którymi agenci nadążą
Cel, kontekst, ograniczenia i gotowe.
Rozdział 21 · Część III
Brief to umowa
Brief to dokument, który zamienia twoją intencję w pracę agenta. Może mieć jedno zdanie albo stronę, być wpisany w okno czatu albo zapisany jako plik, ale za każdym razem wykonuje to samo zadanie: mówi, czego chcesz, co agent musi wiedzieć, czego nie wolno mu robić i jak ocenisz wynik. Kiedy brief jest dobry, praca zwykle też jest dobra. Kiedy brief jest słaby, praca często jest słaba w sposób imponujący i pewny siebie.
Pomaga myślenie o briefie jak o umowie, a nie prośbie. Prośba to coś, co, jak masz nadzieję, zostanie spełnione. Umowa to coś, z czym obie strony mogą się potem porównać. Różnica wychodzi przy przeglądzie. Jeśli twój brief brzmiał ulepsz stronę docelową, nie masz jak sprawdzić, czy wynik go spełnia, bo niemal każdą zmianę da się przedstawić jako ulepszenie. Jeśli twój brief brzmiał nagłówek strony docelowej mieści się w jednej linii na telefonie, a przycisk rejestracji jest widoczny bez przewijania, sprawdzisz to w dziesięć sekund.
Użyteczna umowa ma cztery części, ułożone od góry do dołu. Cel: jedno zdanie sformułowane jako rezultat. Kontekst: wszystko, co agent musi wiedzieć, a czego nie odkryje łatwo sam, na przykład kto jest odbiorcą, które pliki są ważne albo czego już próbowano. Ograniczenia: czego nie wolno zmieniać, jakie narzędzia albo podejścia są zakazane, jak daleko praca może sięgać. I definicja ukończenia: sprawdzenia, które powiedzą wam obojgu, że praca jest skończona. Ta ostatnia warstwa jest fundamentem i dlatego leży na dole. Wszystko nad nią od niej zależy.
Jeśli nie możesz tego sprawdzić, to o to nie prosiłeś. Miałeś nadzieję.
Nie każdy brief potrzebuje wszystkich czterech części wypisanych wprost. Małe zadanie w znajomym projekcie może potrzebować tylko celu i sprawdzenia, bo kontekst i ograniczenia mieszkają już w pamięci projektu. Ale warto za każdym razem przejść przez cztery części w myślach, bo ta, którą pominiesz, jest zwykle tą, która narobi kłopotów. Brak kontekstu prowadzi do wiarygodnej pracy wycelowanej w niewłaściwy cel. Brak ograniczeń prowadzi do pracy, która rozłazi się w miejsca, których nie chciałeś ruszać. Brak definicji ukończenia prowadzi do kłótni z samym sobą przy przeglądzie.
Pisanie briefów w ten sposób zmienia też to, jak myślisz o pracy, zanim się zacznie. Często, gdy siadasz, żeby napisać definicję ukończenia, odkrywasz, że nie wiesz, co znaczy gotowe. To nie jest porażka briefu. To brief, który wykonuje swoją robotę wcześnie, zanim agent spędzi godzinę na budowaniu w stronę celu, którego nie wybrałeś.
W tym tygodniu weź trzy następne zadania, które normalnie wysłałbyś jednym zdaniem, i zamiast tego napisz je jako czteroczęściowe umowy. Niech każda część będzie krótka, linijka albo dwie. Potem porównaj wyniki z tym, co zwykle dostajesz. Agenci nie zmądrzeli. Po prostu po raz pierwszy powiedziałeś im, jak wyglądałoby to mądre.
Ryc. 21 · Brief to umowa. Brief to cel, kontekst, ograniczenia i gotowe, a brak każdej warstwy ma swój koszt.
Rozdział 22 · Część III
Zacznij od gotowego
Jeśli zmienisz tylko jeden nawyk w tym, jak briefujesz agentów, zmień ten: napisz definicję ukończenia, zanim napiszesz zadanie. Nie potem, jako dopisek, i nie domyślnie, zakładając, że agent będzie wiedział. Najpierw. To najpewniejszy sposób na poprawę jakości tego, co wraca.
Powód jest taki, że w definicji ukończenia mieszka twój osąd. Opis zadania mówi, nad czym pracować; definicja ukończenia mówi, co przyjmiesz. Agent potrafi kompetentnie pracować nad niemal wszystkim, ale nie odczyta twoich standardów z powietrza. Kiedy nie wie, co przyjmiesz, rozsądnie zgaduje, a rozsądne domysły są błędne akurat na tyle często, żeby to było kosztowne.
Pisanie najpierw definicji ukończenia chroni cię też przed konkretną pułapką. Jeśli najpierw napiszesz zadanie, definicja ukończenia zwykle przybiera jego kształt: dodaj filtr do tabeli zamienia się w tabela ma filtr. To błędne koło. Jeśli zaczniesz od gotowego, wychodzisz od rezultatu, na którym naprawdę ci zależy: użytkownik znajduje zamówienia z zeszłego miesiąca w mniej niż dziesięć sekund. Zadanie wynika z tego dopiero potem i może okazać się filtrem, polem wyszukiwania albo domyślnym sortowaniem. Zaczynanie od gotowego zostawia miejsce na lepsze zadanie niż to, które przyszło ci do głowy jako pierwsze.
Zadanie to jak. Gotowe to po co. Najpierw napisz po co.
Dobre definicje ukończenia mają pewne wspólne cechy. Są obserwowalne: ktoś mógłby je sprawdzić bez czytania ci w myślach. Są konkretne: wymieniają liczbę, zachowanie albo stan, a nie jakość. I zawierają przynajmniej jedno sprawdzenie, które nie przeszłoby, gdyby pracy brakowało. Wszystkie testy przechodzą to słabe kryterium, bo wszystkie testy mogły przechodzić, zanim zacząłeś. Nowy test obejmuje przypadek pustego pliku, nie przechodzi na obecnym kodzie i przechodzi po zmianie to kryterium mocne, bo dowodzi, że zmiana coś zrobiła.
Przy pracy innej niż kod zasada jest identyczna. Raport jest gotowy, kiedy odpowiada na trzy pytania, dla których został zamówiony, podaje źródło dla każdego twierdzenia i mieści się na dwóch stronach. Projekt jest gotowy, kiedy działa na szerokości telefonu, nie ma tekstu mniejszego niż ustalony rozmiar i używa wyłącznie uzgodnionych kolorów. Mail jest gotowy, kiedy da się go przeczytać w mniej niż minutę i prosi o dokładnie jedną rzecz. Żadnej z tych definicji nie jest trudno napisać. Wszystkie są nagminnie pomijane.
Kiedy masz już definicję ukończenia, daj ją agentowi i poproś, żeby sprawdził się względem niej, zanim zda raport. Wielu agentów zrobi to dziś naturalnie, jeśli się ich poprosi: puszczą sprawdzenia, przytoczą wyniki, oflagują wszystko, co nie spełnia poprzeczki. To zamienia twój przegląd z otwartej inspekcji w potwierdzenie, co jest szybsze i znacznie mniej męczące.
W tym tygodniu pisz Gotowe, gdy: jako pierwszą linijkę każdego briefu i wypełniaj ją przed wszystkim innym. Jeśli okaże się, że nie potrafisz, zatrzymaj się i pomyśl, bo praca nie jest jeszcze gotowa do delegowania. Jest gotowa do podjęcia decyzji.
Ryc. 22 · Zacznij od gotowego. Start od „gotowe” otwiera kilka możliwych zadań i wymaga sprawdzenia, które może zawieść.
Rozdział 23 · Część III
Kontekst, nie biografia
Agenci potrzebują kontekstu. Muszą wiedzieć o twoim projekcie, twoich odbiorcach i twojej sytuacji rzeczy, których nie odkryją, rozglądając się. Trudność polega na tym, że ty wiesz bardzo, bardzo dużo, a większość tego nie ma znaczenia dla żadnego konkretnego zadania. Sztuka briefu polega na podaniu takiego kontekstu, jakiego potrzebuje zadanie, i ani grama więcej: kontekst, nie biografia.
Wyobraź sobie dwa nachodzące na siebie koła. W jednym jest wszystko, co wiesz: historia projektu, twoje preferencje, dziwactwa klienta, trzy podejścia, które odrzuciłeś zeszłej wiosny, twoje zdanie o średnikach. W drugim jest wszystko, czego zadanie potrzebuje, żeby zostało dobrze wykonane. Brief powinien zawierać część wspólną i bardzo niewiele poza nią. Za mało, a agent pracuje po omacku. Za dużo, a agent przykłada wagę do rzeczy, które nie mają znaczenia, albo gubi ważny szczegół w szumie.
Nadmierne dzielenie się to częstszy problem wśród sumiennych operatorów. Martwią się, że agent coś przeoczy, więc dorzucają wszystko. Brief rozrasta się do strony historii, zastrzeżeń i dygresji. Agent, który traktuje poważnie wszystko, co ma przed sobą, próbuje teraz uszanować to wszystko. Wzmianka mimochodem, że klient kiedyś nie lubił niebieskiego, staje się ograniczeniem projektowym. Stare porzucone podejście, opisane dla tła, zostaje częściowo wskrzeszone. Praca wraca ukształtowana przez biografię, a nie przez zadanie.
Każde zdanie w briefie jest instrukcją, czy tak miało być, czy nie.
Dobrym testem dla każdego kawałka kontekstu jest pytanie: gdyby usunąć to zdanie, czy wynik prawdopodobnie byłby gorszy? Jeśli tak, zostaw je. Jeśli nie masz pewności, zostaw je, ale jasno określ jego status: tylko jako tło, nie działaj na tej podstawie. Jeśli nie, wytnij. Zawsze możesz dodać kontekst w kolejnej wiadomości, jeśli agent zapyta albo wynik pokaże, że był potrzebny.
Druga połowa umiejętności to dostrzeganie, czego agent nie znajdzie sam. Agenci pracujący w repozytorium potrafią czytać kod; nie trzeba im go opisywać. Nie przeczytają jednak twoich rozmów z klientem, decyzji, którą podjąłeś pod prysznicem, ani tego, że w tym tygodniu leży serwer testowy. To są dokładnie te rzeczy, które trzeba umieścić. Wskaż to, co mogą znaleźć, powiedz im to, czego nie mogą.
Warto też oddzielać kontekst stały od kontekstu zadania. Kontekst stały, czyli rzeczy prawdziwe w wielu zadaniach, należy do pamięci projektu, gdzie zobaczy go każda sesja. Kontekst zadania, czyli rzeczy ważne tylko tutaj, należy do briefu. Mieszanie jednego z drugim oznacza powtarzanie się w każdym briefie albo, co gorsza, zapominanie o tym i niespójne wyniki. Pamięci szczegółowo poświęcona jest dalsza część tej książki.
W tym tygodniu weź brief, który już napisałeś, i przejdź przez niego zdanie po zdaniu z testem usunięcia. Wytnij wszystko, co go nie przechodzi. Potem wyślij krótszy brief i porównaj. Większość operatorów jest zaskoczona, że mniej kontekstu daje ostrzejszą pracę. Agenci, podobnie jak ludzie, radzą sobie lepiej, kiedy słyszą, co jest ważne, a nie wszystko, co się kiedykolwiek wydarzyło.
Ryc. 23 · Kontekst, nie biografia. Brief zawiera tylko to, czego zadanie potrzebuje, a czego agent sam nie odkryje.
Rozdział 24 · Część III
Ograniczenia to uprzejmość
Wypełnianie briefu zakazami może wydawać się małoduszne. Nie zmieniaj publicznego interfejsu. Nie dodawaj zależności. Nie ruszaj kodu rozliczeń. Zmieść się w trzystu słowach. Używaj tylko istniejących kolorów. Brzmi to jak lista zakazów i wielu ludzi instynktownie ją łagodzi albo pomija, licząc na zdrowy rozsądek agenta. Ale ograniczenia nie są brakiem zaufania. Są uprzejmością, wobec agenta i wobec ciebie z przyszłości.
Agent bez ograniczeń musi zgadywać, gdzie są brzegi zadania. Czy przy okazji powinien zrefaktoryzować bałaganiarską funkcję obok? Czy powinien zaktualizować zależność, która wyrzuca ostrzeżenie? Czy powinien przepisać wstęp, skoro wstęp też jest słaby? Każda z tych rzeczy jest rozsądna i każda poszerza zmianę, przegląd i ryzyko. Agenci bywają pomocni, a pomocność bez brzegów się rozłazi.
Z ograniczeniami agent może się skupić. Wie, czego może dotykać, a czego nie, więc wkłada wysiłek w to, co jest wewnątrz granicy. Praca wraca mniejsza, spójniejsza i znacznie łatwiejsza do przejrzenia. Nie musisz spędzać dwudziestu minut na ustalaniu, które części dużej zmiany były zadaniem, a które entuzjazmem.
Płot to nie klatka. To opis ogrodu.
Najbardziej użyteczne ograniczenia dzielą się na kilka rodzin. Ograniczenia zakresu mówią, co może się zmienić: te pliki, ta sekcja, tylko ta funkcja. Ograniczenia interfejsu mówią, co nie może się zmienić: API, struktura adresów URL, ton wypowiedzi, format danych. Ograniczenia narzędziowe mówią, jak praca może zostać wykonana: bez nowych bibliotek, bez połączeń sieciowych, bez zmian w konfiguracji. A ograniczenia rozmiaru mówią, jak duży może być wynik: liczba słów, liczba linii, liczba opcji. Wybierz te, które mają znaczenie dla zadania. Zwykle wystarczą dwa albo trzy.
Jest towarzyszący nawyk, dzięki któremu ograniczenia działają jeszcze lepiej: poproś agenta, żeby ci powiedział, kiedy ograniczenie zaczyna przeszkadzać. Czasami właściwa poprawka naprawdę wymaga zmiany interfejsu albo dodania biblioteki. Chcesz o tym wiedzieć, ale chcesz o tym zdecydować, a nie odkryć to w diffie. Linijka w rodzaju jeśli uważasz, że jakieś ograniczenie należy złamać, zatrzymaj się i wyjaśnij dlaczego, zanim to zrobisz zamienia ograniczenia ze ścian w punkty kontrolne.
Ograniczenia są też zapisem. Kiedy za miesiąc spojrzysz wstecz na brief, ograniczenia powiedzą ci, co chroniłeś i dlaczego. To często przydaje się bardziej niż opis zadania, bo uchwyca te części projektu, które wtedy uważałeś za kruche albo ważne.
W tym tygodniu dodaj do każdego briefu linijkę Nie rób, z dwoma albo trzema konkretnymi ograniczeniami. Zauważ, jak kurczy się rozmiar zmian i o ile szybsze stają się przeglądy. Nie ograniczyłeś agenta. Nakierowałeś go, a to coś innego i znacznie bardziej użytecznego.
Ryc. 24 · Ograniczenia to uprzejmość. Cztery rodziny ograniczeń grodzą zadanie i trzymają kuszące dodatki na zewnątrz.
Rozdział 25 · Część III
Nazwij pliki, nazwij sprawdzenia
Najszybszy sposób na poprawienie briefu to zastąpienie opisów wskaźnikami. Zamiast ten kawałek kodu, który obsługuje przesyłanie plików wpisz ścieżkę do pliku. Zamiast to zwykłe polecenie do testów wpisz polecenie. Zamiast styl jak na naszych innych stronach wskaż konkretną stronę. Wskaźnik jest krótszy od opisu, precyzyjniejszy i nie da się go źle odczytać.
Agenci świetnie podążają za wskaźnikami. Daj agentowi ścieżkę, a otworzy plik, przeczyta go i się zorientuje. Daj mu opis, a zacznie szukać, znajdzie kilku kandydatów, wybierze najbardziej prawdopodobnego i ruszy dalej. Zwykle wybiera dobrze. Kiedy wybiera źle, robi to z pewnością siebie, a ty odkrywasz błąd przy przeglądzie, kiedy praca jest już zbudowana na niewłaściwym fundamencie. Skopiowanie ścieżki kosztuje cię pięć sekund. Oszczędza agentowi szukania, a tobie wątpliwości.
To samo dotyczy przykładów. Jeśli chcesz, żeby nowy komponent wyglądał jak istniejący, wskaż istniejący. Jeśli chcesz raportu w tej samej strukturze co zeszłomiesięczny, wskaż zeszłomiesięczny. Jeśli chcesz tonu konkretnego maila, wklej go albo podlinkuj. Przykłady niosą ogromną ilość ukrytych instrukcji, których opisanie zajęłoby akapity i wciąż byłoby niedoskonałe.
A przede wszystkim dotyczy to sprawdzeń. Nazwij dokładne polecenie, stronę, zapytanie albo test, który potwierdzi pracę. Nie upewnij się, że działa, tylko uruchom npm test, a nowy test w upload.test.ts musi przejść. Nie sprawdź, czy dobrze wygląda, tylko załaduj /pricing na szerokości telefonu i potwierdź, że nic nie wychodzi poza ekran. Nazwane sprawdzenie to coś, co agent może faktycznie uruchomić, a ty faktycznie potwierdzić. Nienazwane sprawdzenie to aspiracja.
Wskaźnik to zdanie, którego agent nie może źle zrozumieć.
Ten nawyk opłaca się podwójnie. Raz w jakości pierwszego podejścia, bo agent zaczyna we właściwym miejscu, z właściwym obrazem sytuacji. I drugi raz przy przeglądzie, bo wiesz dokładnie, gdzie patrzeć. Jeśli brief wymieniał trzy pliki i jedno sprawdzenie, twój przegląd zaczyna się od tych trzech plików i tego sprawdzenia. Nie przekopujesz się przez dużą zmianę, próbując odtworzyć, co miała zrobić.
Ujawnia to też luki w twoim własnym rozumieniu. Jeśli siadasz, żeby nazwać pliki, i uświadamiasz sobie, że nie wiesz, których to dotyczy, dobrze jest to wiedzieć, zanim agent zacznie. Możesz poprosić agenta, żeby najpierw to ustalił, jako osobne małe zadanie: wypisz pliki związane z przesyłaniem i opisz każdy jedną linijką. Potem zbriefuj właściwą pracę, mając wskaźniki w ręku. Dwa małe zadania z dobrymi wskaźnikami często wygrywają z jednym dużym z mglistymi.
W tym tygodniu przeczytaj każdy brief przed wysłaniem i podkreśl każdy opis, który mógłby być wskaźnikiem. Zastąp każdy z nich: ścieżką, przykładem, poleceniem. Przez jakieś dwa dni wydaje się to pedanterią. Potem wydaje się oczywistym sposobem pisania, a mgliste briefy, które wysyłałeś kiedyś, zaczynają wyglądać jak zagadki, które zadawałeś bez żadnego dobrego powodu.
Ryc. 25 · Nazwij pliki, nazwij sprawdzenia. Opisy zamienione na wskaźniki do plików, przykładów i testów, które agent może uruchomić.
Rozdział 26 · Część III
Brief w jednym akapicie
Większość briefów mieści się w akapicie. Nie wszystkie, a wyjątki są prawdziwe, ale większość. Zdanie celu, zdanie albo dwa kontekstu, zdanie ograniczeń i zdanie definicji ukończenia. Pięć, sześć zdań, mniej więcej sto słów, i agent ma wszystko, czego potrzebuje. Jeśli twoje briefy regularnie dobijają do strony, warto zapytać dlaczego.
Zwykły powód jest taki, że myślenie nie zostało skończone, zanim zaczęło się pisanie. Długi brief to często zapis operatora, który dochodzi do tego, czego chce: rozważone opcje, wyrażone obawy, półdecyzje pozostawione otwarte. Całe to myślenie było potrzebne. Nic z niego nie musi trafić do briefu. Brief to wniosek, nie obliczenia na marginesie.
Traktuj więc brief w jednym akapicie jako dyscyplinę. Jeśli potrzebujesz, najpierw pisz swobodnie, w notesie albo w pliku roboczym. Potem destyluj: weź wszystko, co wiesz, zostaw tylko to, czego potrzebuje zadanie, i ściśnij to do akapitu. Jeśli nie da się ścisnąć, istnieją dwa prawdopodobne wyjaśnienia. Albo zadanie to tak naprawdę kilka zadań i należy je podzielić, albo jeszcze nie zdecydowałeś czegoś, co agent będzie potrzebował mieć rozstrzygnięte. Oba warto odkryć, zanim zacznie się praca.
Długi brief to często krótki brief, którego jeszcze nie skończono pisać.
Oto kształt, prozą, a nie w szablonie. Cel: użytkownicy mogą wyeksportować zapisane elementy do arkusza ze strony konta. Kontekst: strona konta jest w app/account, zapisane elementy pochodzą z istniejącego zapytania items, a do eksportu arkuszy używamy już biblioteki w reports/. Nie rób: nie dodawaj nowych zależności ani nie zmieniaj zapytania o elementy. Gotowe, gdy: pojawia się nowy przycisk eksportu, wyeksportowany plik otwiera się w programie do arkuszy z jednym wierszem na element, a test obejmuje przypadek pusty. To cały brief. Agent może na jego podstawie wykonać świetną pracę, a ty możesz ją przejrzeć w dziesięć minut.
Istnieją uczciwe wyjątki. Brief do dużej, wieloetapowej pracy może potrzebować więcej struktury: krótkiej listy faz, każda z własną definicją ukończenia. Brief do pracy twórczej może potrzebować przykładów, które zajmują miejsce. Brief do delikatnej pracy w nieznanym obszarze może potrzebować więcej kontekstu niż zwykle. Ale nawet wtedy wersja w jednym akapicie jest użytecznym pierwszym krokiem. Napisz ją, a potem dodaj tylko to, czego akapit naprawdę nie udźwignie.
Krótkie briefy mają jeszcze jedną zaletę, którą łatwo przeoczyć: da się ich używać ponownie. Akapit można zapisać, dostosować i za miesiąc wysłać jeszcze raz ze zmienionymi kilkoma słowami. Strony splątanego myślenia nie da się. Z czasem operator, który pisze briefy w jednym akapicie, buduje sobie ich bibliotekę, a biblioteka dobrych briefów to jeden z najcenniejszych zasobów, jakie może mieć jednoosobowa działalność.
W tym tygodniu ustal sobie limit jednego akapitu na każdy brief. Kiedy go przekroczysz, zatrzymaj się i zapytaj, które z dwóch wyjaśnień pasuje: za dużo zadań czy za mało decyzji. Napraw to, zamiast pisać więcej. Akapit ci podziękuje, agent również.
Ryc. 26 · Brief w jednym akapicie. Robocze myśli zagęszczają się w czteroczęściowy akapit albo ujawniają podział lub decyzję.
Rozdział 27 · Część III
Zgłoś odstępstwo
Żaden brief nie wychodzi ze zderzenia z pracą całkowicie nienaruszony. Agent otwiera plik i odkrywa, że funkcja, którą wymieniłeś, już nie istnieje. Biblioteka, której kazałeś mu użyć, nie obsługuje potrzebnego formatu. Ograniczenie, które całkiem rozsądnie ustaliłeś, sprawia, że zadanie w tej postaci jest niewykonalne. W tym momencie agent ma wybór: po cichu zrobić coś innego albo ci powiedzieć. Chcesz, żeby ci mówił, za każdym razem, i musisz o to poprosić wprost.
Pozostawieni samym sobie, agenci mają tendencję do adaptowania się. Zasadniczo to zaleta; nie chcesz agenta, który staje przy każdej drobnej niespodziance. Ale adaptacja staje się problemem, kiedy przekracza granicę, na której ci zależało. Jeśli agent sam zdecyduje się dodać zależność, zmienić interfejs, pominąć nieprzechodzące sprawdzenie albo zreinterpretować cel, odkryjesz to dopiero przy przeglądzie, o ile w ogóle. Praca będzie wyglądać na kompletną. Będzie po prostu inną pracą niż ta, o którą prosiłeś.
Rozwiązaniem jest jedna stała instrukcja, która należy do każdego briefu albo, lepiej, do pamięci projektu: jeśli musisz odejść od briefu, zaznacz to wyraźnie na początku raportu, wyjaśnij dlaczego, a gdy odstępstwo jest istotne, zatrzymaj się i zapytaj, zanim pójdziesz dalej. To mała linijka, która zmienia kształt współpracy. Agent wciąż dostosowuje się do drobnych niespodzianek, ale istotne odstępstwa przychodzą jako pytania, a nie jako fakty dokonane.
Ciche odstępstwo to decyzja, którą ktoś podjął za ciebie.
Co liczy się jako istotne? To zależy od projektu, ale niektóre odstępstwa zawsze powinny być zgłaszane: zmiana czegokolwiek, co figuruje jako ograniczenie, dodawanie albo usuwanie zależności, modyfikacja publicznego interfejsu, pomijanie albo osłabianie testu, zmiana interpretacji celu albo ruszanie plików spoza określonego zakresu. Możesz je raz wypisać w pliku pamięci i odwoływać się do nich już zawsze.
Kiedy odstępstwo zostaje zgłoszone, traktuj je jako punkt decyzji, a nie irytację. Czasami agent ma rację, a brief był błędny: funkcję przemianowano, biblioteka tego nie potrafi, ograniczenie opierało się na starym założeniu. Zatwierdź odstępstwo i, jeśli to ważne, zaktualizuj brief albo pamięć, żeby ta sama niespodzianka się nie powtórzyła. Czasami agent się myli: źle zrozumiał ograniczenie albo poszedł na skróty. Skieruj go z powrotem. Tak czy inaczej, decyzję podjąłeś ty, a praca, która wraca, jest pracą, którą wybrałeś.
Z czasem zgłoszone odstępstwa stają się jednym z twoich najlepszych źródeł informacji o projekcie. Mówią ci, gdzie brief i rzeczywistość się rozjechały, co zwykle znaczy, że twój obraz projektu jest gdzieś nieaktualny. Operator, który uważnie czyta odstępstwa, dowiaduje się o własnym systemie więcej niż ten, który tylko przegląda diffy.
W tym tygodniu dodaj instrukcję o odstępstwach do każdego briefu albo raz umieść ją w pamięci projektu. Potem patrz, co wraca. Zobaczysz osąd agenta w nowy sposób: nie ukryty w pracy, ale rozłożony przed tobą, gdzie możesz się z nim zgodzić, uchylić go albo się z niego czegoś nauczyć.
Ryc. 27 · Zgłoś odstępstwo. Odstępstwo jest zgłaszane na górze raportu, by decyzję podjął operator.
Rozdział 28 · Część III
Przykłady biją przymiotniki
Przymiotniki to najsłabsze słowa w briefie. Zrób to czysto. Zrób to profesjonalnie. Zrób to przyjaźnie, ale nie za luźno. Zrób to nowocześnie. Każde z tych słów znaczy coś dla ciebie i coś nieco innego dla agenta, a szczelina między tymi znaczeniami to miejsce, z którego bierze się rozczarowująca praca. Lekarstwem jest zastępowanie przymiotników przykładami wszędzie, gdzie się da.
Przykład niesie znacznie więcej informacji niż przymiotnik. Przyjaźnie, ale nie za luźno może opisywać tysiąc tonów. Wklejenie dwóch maili, które napisałeś i które trafiają we właściwą nutę, opisuje dokładnie jeden. Czysty układ to mglista aspiracja. Wskazanie strony, której układ podziwiasz, to specyfikacja. Agent widzi przykład, dostrzega jego cechy i je odtwarza, łącznie z cechami, których nigdy nie przyszłoby ci do głowy opisać, bo nie byłeś ich świadomy.
Pomyśl o możliwych sposobach proszenia o coś jako rozłożonych na dwóch osiach. Jedna to precyzja: jak konkretna jest prośba. Druga to pokazywanie kontra mówienie: czy opisujesz, czego chcesz, czy wskazujesz egzemplarz. Mgliste mówienie to królestwo przymiotników i daje najbardziej zmienne wyniki. Precyzyjne pokazywanie, prawdziwy przykład z uwagą, co zachować, daje najbardziej niezawodne. W tym rogu chcesz, żeby siedziały twoje briefy.
Smaku nie da się opisać. Można dać spróbować.
Jest kilka sposobów, żeby dobrze używać przykładów. Wskaż przykład i powiedz, co z niego wziąć: dopasuj strukturę i ton tego raportu, ale nie jego długość. Daj więcej niż jeden przykład, kiedy chcesz, żeby agent wywnioskował wzorzec, a nie skopiował pojedynczy egzemplarz. Daj kontrprzykład, kiedy istnieje częsty błąd, którego chcesz uniknąć: nie tak jak ten, który jest zbyt formalny. A kiedy nie masz przykładu, poproś agenta, żeby najpierw przygotował dwie albo trzy krótkie opcje, potem wybierz jedną i użyj jej jako przykładu do właściwej pracy.
Przykłady działają nie tylko w pisaniu i projektowaniu. Przy danych pokaż próbkę formatu wyjściowego, którego chcesz. Przy kodzie wskaż istniejącą funkcję napisaną w stylu, który preferujesz. Przy researchu pokaż podsumowanie, które uznałeś za przydatne, i poproś o więcej takich. W każdym przypadku przykład wykonuje zadanie, którego próbowałby i którego nie podołałby akapit przymiotników.
Warto zbudować sobie małą kolekcję przykładów, do których często wracasz: kilka tekstów twoim głosem, kilka projektów w twoim stylu, kilka raportów w preferowanym przez ciebie kształcie. Trzymaj je gdzieś pod ręką. Kiedy piszesz brief, sięgaj po nie najpierw. Z czasem stają się czymś w rodzaju przenośnego gustu, sposobem na przekazanie agentowi swoich standardów w kilka sekund zamiast opisywania ich za każdym razem od nowa.
W tym tygodniu znajdź każdy przymiotnik w swoich trzech następnych briefach i zapytaj, czy mógłby go zastąpić przykład. Tam, gdzie może, podmień. Praca, która wróci, będzie bardziej twoja, bo w mały, ale prawdziwy sposób będzie zbudowana z twoich kawałków.
Ryc. 28 · Przykłady biją przymiotniki. Precyzja kontra pokazywanie: prawdziwy przykład z uwagami bije stos przymiotników.
Rozdział 29 · Część III
Briefy, które przeżywają sesję
Niektóre briefy są jednorazowe. Wiele nie jest. Jeśli łapiesz się na tym, że po raz trzeci piszesz mniej więcej ten sam brief, czy to przygotowanie tygodniowego podsumowania, przegląd pull requestu, szkic informacji dla klienta, czy czyszczenie zbioru danych, to brief nie jest już briefem. To przepis, a przepisy zasługują na to, żeby je porządnie spisać i przechowywać.
Większość narzędzi agentowych oferuje dziś jakiś sposób na zapisywanie i ponowne używanie instrukcji: zapisane prompty, własne polecenia, umiejętności, szablony albo pliki projektu, które agent może wczytać na żądanie. Nazwy i mechanika się różnią i będą się zmieniać. Zasada nie. Powtarzalne zadanie powinno mieć powtarzalny brief, przechowywany tam, gdzie ty i agenci możecie go znaleźć, i dopracowywany przy każdym użyciu.
Sztuka polega na tym, żeby nie pisać przepisu za wcześnie. Przepis spisany po jednym przebiegu to domysł, co będzie ważne. Przepis spisany po trzech czy czterech przebiegach ręcznych uchwyca to, czego się faktycznie nauczyłeś: kontekst, który ciągle okazywał się potrzebny, ograniczenie, które ciągle musiałeś dodawać, sprawdzenie, które dwa razy wyłapało problem. Cykl biegnie więc w określonej kolejności. Wykonaj zadanie kilka razy ręcznie, ze zwykłymi briefami. Potem przedestyluj to, co zadziałało, w przepis. Potem używaj go ponownie, zauważając, gdzie zawodzi, i wprowadzaj te uwagi do następnej wersji.
Zrób to trzy razy, zanim to spiszesz. Potem nigdy więcej tego nie pisz.
Dobry przepis wygląda jak dobry brief z zaznaczonymi zmiennymi częściami. Cel jest stały albo prawie stały. Kontekst jest w większości stabilny, z miejscem na szczegóły danego przebiegu. Ograniczenia są stałe. Definicja ukończenia jest stała. Kiedy go używasz, wypełniasz luki, a wszystko inne dostajesz za darmo. Wielu operatorów trzyma przepisy jako zwykłe pliki tekstowe z krótkim nagłówkiem mówiącym, kiedy ich używać, a to format, który przetrwa każde konkretne narzędzie.
Przepisy niosą też twoje standardy dalej. Kiedy przepis zawiera sprawdzenie wyłapujące częsty błąd, każdy przyszły przebieg też je zawiera, niezależnie od tego, czy pamiętasz, żeby o nie poprosić. To jeden z cichszych sposobów, w jakie działalność z czasem się poprawia. Każdy wyłapany błąd staje się linijką w przepisie, a każdy przepis sprawia, że następny przebieg jest odrobinę bezpieczniejszy od poprzedniego.
Uważaj na psucie się przepisów. Przepis napisany pół roku temu może odwoływać się do plików, które zostały przeniesione, narzędzi, które się zmieniły, albo standardów, których już nie wyznajesz. Kiedy przepis daje słaby wynik, sprawdź przepis, zanim obwinisz agenta. Często poprawka to linijka albo dwie, a jej wprowadzenie ulepsza każdy przyszły przebieg. Krótki przegląd wszystkich przepisów raz na kwartał, usunięcie nieużywanych i zaktualizowanie przeterminowanych, utrzymuje kolekcję w uczciwości.
W tym tygodniu przejrzyj swoje ostatnie briefy i znajdź jeden, który napisałeś trzy razy albo więcej. Zamień go w przepis: cel, kontekst z lukami, ograniczenia, gotowe. Zapisz go tam, gdzie go znajdziesz. Następnym razem, gdy pojawi się to zadanie, użyj przepisu zamiast pisać od zera i zobacz, ile uwagi ci to oddaje.
Ryc. 29 · Briefy, które przeżywają sesję. Zrób zadanie ręcznie kilka razy, zapisz jako przepis z lukami, potem używaj i ulepszaj.
Rozdział 30 · Część III
Biblioteka przepisów
Z miesiącami pracujący operator gromadzi zestaw przepisów: briefów wielokrotnego użytku do zadań, które powracają raz po raz. Na początku mieszkają tam, gdzie zostały napisane, porozrzucane po folderach i wątkach. W pewnym momencie warto zebrać je w jednym miejscu, w bibliotece, i traktować tę bibliotekę jako jeden z centralnych zasobów działalności. Może to być najcenniejsza rzecz, jaką posiadasz, która nie jest relacją z klientem.
Dlaczego biblioteka znaczy więcej niż pojedyncze przepisy? Bo zmienia to, jak myślisz o nowej pracy. Kiedy przychodzi zadanie, twoim pierwszym ruchem nie jest już pisanie briefu. Jest nim zajrzenie do biblioteki. Często jest tam przepis, który pasuje dokładnie, albo taki, który pasuje po drobnej zmianie. Wypełniasz luki i wysyłasz. Zadanie korzysta z każdej lekcji, która trafiła do przepisu, a ty poświęcasz uwagę tym częściom, które są faktycznie nowe.
Biblioteka ma naturalny kształt. Przepisy skupiają się wokół głównych czynności działalności: przeglądania pracy, wypuszczania jej, badania pytań, pisania dokumentów, utrzymywania narzędzi. Możesz mieć w sumie tuzin przepisów albo kilka tuzinów, ale zwykle układają się w cztery czy pięć rodzin. Organizowanie ich według rodzin ułatwia znajdowanie i pokazuje, gdzie są luki. Jeśli masz sześć przepisów do pisania i żadnego do przeglądu, mówi ci to coś o tym, gdzie twoje standardy są spisane, a gdzie istnieją tylko w twojej głowie.
Biblioteka dobrych przepisów to działalność spisana na papierze.
Trzymaj bibliotekę w prostej, przenośnej postaci. Pliki tekstowe w folderze, w miarę możliwości wersjonowane, z krótkim indeksem wymieniającym każdy przepis i to, kiedy go używać. Narzędzia przychodzą i odchodzą; zwykły tekst przetrwa. Jeśli twoje narzędzia potrafią wczytywać przepisy jako polecenia albo umiejętności, jak najbardziej podepnij do nich bibliotekę, ale trzymaj źródło w formie, którą mógłbyś jutro bez strat przenieść do innego narzędzia.
Dbaj o bibliotekę jak o każdy ważny zasób. Kiedy przepis zostaje użyty, odnotuj, czy zadziałał. Kiedy zawodzi, popraw go od razu, póki problem jest świeży. Kiedy dwa przepisy się pokrywają, scal je. Kiedy przepis nie był używany od miesięcy, przenieś go do archiwum. Biblioteka, o którą ktoś dba, pozostaje użyteczna. Biblioteka, która tylko rośnie, staje się szufladą z rupieciami, a nikt nie zagląda do szuflady z rupieciami, kiedy jest zajęty.
Jest jeszcze jedna korzyść, którą warto nazwać. Biblioteka przepisów to sposób, w jaki jednoosobową działalność może zrozumieć ktoś inny. Jeśli kiedykolwiek sprowadzisz pomoc, współpracownika albo podwykonawcę, biblioteka będzie najszybszym sposobem, żeby pokazać, jak wykonuje się pracę. To także sposób, w jaki zrozumiesz własną działalność po urlopie, kiedy zapomnisz większości szczegółów i będziesz musiał szybko je odzyskać. Biblioteka pamięta w twoim imieniu.
W tym tygodniu załóż bibliotekę, jeśli jej nie masz: folder, plik indeksu i przeniesione do niego przepisy, które już masz. Posortuj je według rodzin. Zanotuj luki. Potem, kiedy następnym razem przyjdzie zadanie, najpierw otwórz bibliotekę. Ten mały odruch to początek działalności, która ulepsza się sama.
Ryc. 30 · Biblioteka przepisów. Biblioteka przepisów posortowana w rodziny pokazuje, gdzie twoje standardy nie są jeszcze spisane.
Część IV
Pamięć i notatki
Co maszyna powinna już wiedzieć.
Rozdział 31 · Część IV
Pamięć to infrastruktura
Agenci zaczynają większość sesji, nie wiedząc o tobie nic. Nie pamiętają wczorajszej rozmowy, decyzji, którą podjąłeś w zeszłym tygodniu, ani powodu, dla którego w skrypcie budowania jest ta dziwna linijka. Jakąkolwiek ciągłość ma twoja działalność, musisz ją zapewnić sam. To sprawia, że pamięć, czyli spisany zapis tego, co maszyna powinna już wiedzieć, nie jest miłym dodatkiem, tylko infrastrukturą, w tym samym sensie, w jakim infrastrukturą jest hydraulika. Nikt jej nie podziwia. Bez niej wszystko przestaje działać.
Większość narzędzi agentowych oferuje dziś jakąś formę trwałej pamięci: plik projektu, który agent czyta na początku każdej sesji, magazyn faktów, który może aktualizować, instrukcje obowiązujące w każdej rozmowie w danej przestrzeni roboczej. Szczegóły zależą od narzędzia i będą się zmieniać. Łączy je idea, że część wiedzy powinna wczytywać się automatycznie, żebyś nie musiał jej powtarzać w każdym briefie. Dobrze użyta, to największa pojedyncza poprawa jakości pracy agentów dostępna operatorowi. Źle użyta, jest cichym źródłem zamieszania.
Pomyśl o pamięci jak o stosie warstw. Na dole zwykłe pliki tekstowe: najtrwalsza, najbardziej przenośna forma, czytelna dla każdego narzędzia i dla ciebie. Nad nimi notatki i logi: twój bieżący zapis tego, co się wydarzyło i dlaczego. Nad nimi pamięć projektu: wyselekcjonowany zestaw faktów i zasad, które agenci każdego projektu wczytują za każdym razem. A na samej górze twój osąd, który decyduje, co trafia do każdej warstwy, a co z niej wypada. Warstwa pamięci projektu to miejsce, gdzie jest najwięcej dźwigni, bo to ją agenci faktycznie widzą.
Czego nie zapiszesz, będziesz tłumaczyć jeszcze raz. I jeszcze raz.
Traktowanie pamięci jako infrastruktury zmienia kilka nawyków. Poświęcasz czas na jej utrzymanie, zamiast aktualizować ją tylko wtedy, gdy coś pójdzie nie tak. Przeglądasz zmiany w niej z taką samą starannością, z jaką przeglądałbyś zmianę w kodzie, bo zła linijka w pamięci wpływa na każdą przyszłą sesję. Trzymasz ją w zwykłym tekście, gdzie się da, bo infrastruktura powinna przeżyć narzędzia zbudowane na jej szczycie. I projektujesz ją z myślą o jej czytelnikach: najpierw agentach, a potem o sobie, kiedy wrócisz do projektu po miesiącach.
Przydaje się też pewna zmiana w myśleniu. Za każdym razem, gdy łapiesz się na tym, że tłumaczysz agentowi tę samą rzecz drugi raz, masz do czynienia z błędem pamięci. Poprawką nie jest wytłumaczenie tego po raz trzeci, tylko zapisanie tego we właściwej warstwie, żeby od teraz było wiadome. Za każdym razem, gdy agent popełnia błąd, bo czegoś nie wiedział, to też jest błąd pamięci. Zbieraj je. To zlecenia robocze dla twojej infrastruktury pamięci.
W tym tygodniu wybierz najbardziej aktywny projekt i sprawdź, co jego agenci wczytują na początku sesji. Jeśli odpowiedź brzmi nic, załóż plik pamięci. Jeśli już jakiś jest, przeczytaj go tak, jakbyś był nowym agentem, i zaznacz wszystko, co jest błędne, nieaktualne albo czego brakuje. Potem to popraw. Będzie to wyglądało na porządki domowe. Bliżej temu do kładzenia rur, a woda będzie płynąć lepiej przez całe miesiące.
Ryc. 31 · Pamięć to infrastruktura. Pamięć jako warstwy: pamięć projektu czytają agenci, a błędy pamięci są zleceniami pracy.
Rozdział 32 · Część IV
Co agent powinien już wiedzieć
Plik pamięci projektu to krótki dokument, który agent czyta na początku każdej sesji w tym projekcie. Jego zadaniem jest odpowiedzieć z góry na pytania, które zadałby każdy kompetentny nowicjusz pierwszego ranka. Do czego służy ten projekt? Jak go zbudować, przetestować i uruchomić? Jakie panują tu zasady? Gdzie są pułapki? Jeśli na te cztery pytania odpowiedziano dobrze, większość sesji zaczyna się we właściwym miejscu bez tego, żebyś musiał cokolwiek mówić.
Zacznij od celu. Jedno albo dwa zdania o tym, czym jest projekt i komu służy. Brzmi to zbędnie, skoro agent może przeczytać kod, ale kod mówi, co coś robi, a nie po co jest. Wiedza, że narzędzie służy garstce wewnętrznych użytkowników, a nie publiczności, zmienia mnóstwo drobnych decyzji, od komunikatów o błędach po to, ile staranności wkłada się w wydajność.
Potem polecenia. Dokładne polecenia do instalacji, budowania, testowania, lintowania i uruchamiania projektu oraz wszystko, co jest w nich nietypowego. To najbardziej praktycznie użyteczna część pliku, bo bez niej agenci zgadują, a zgadywane polecenia są częstym źródłem straconego czasu. Jeśli zestaw testów potrzebuje konkretnej zmiennej środowiskowej albo działającej bazy danych, napisz to tutaj.
Potem zasady. Konwencje, które nie są oczywiste z kodu: jak się nazywa rzeczy, gdzie trafiają nowe pliki, jaki jest styl domu w pisaniu, które wzorce są preferowane, a które są wycofywane. Ogranicz się do tych, które naprawdę mają znaczenie i które agent mógłby prawdopodobnie zrobić źle. Plik pamięci z pięćdziesięcioma zasadami nie jest przestrzegany lepiej niż taki z dziesięcioma. Zwykle jest przestrzegany gorzej, bo ważne zasady rozpuszczają się w błahych.
Plik pamięci to szkolenie wstępne, które dajesz każdemu nowemu pracownikowi, każdego ranka, za darmo.
Na koniec pułapki. Miejsca, w których coś idzie nie tak: kruchy moduł, myląca nazwa funkcji, test, który we wtorki bywa niestabilny, folder, który wygląda na nieużywany, a nie jest. Pułapki to miejsce, gdzie pamięć najwyraźniej na siebie zarabia, bo każda z nich zapobiega konkretnemu, powtarzającemu się błędowi. Wiele najlepszych linijek w dojrzałym pliku pamięci zaczęło życie jako notatka w raporcie z incydentu.
Niech plik będzie krótki. Strona albo dwie wystarczą dla większości projektów. Agenci czytają całość w każdej sesji, więc wszystko, co się w nim znajduje, za każdym razem kosztuje trochę uwagi, a nieistotny materiał może popychać pracę w dziwnych kierunkach. Jeśli plik się rozrasta, podziel go: plik główny, który wczytuje się zawsze, i pliki tematyczne, na które wskazuje się, gdy są potrzebne. Wiele narzędzi bezpośrednio obsługuje takie warstwowanie.
Pisz go prostymi, bezpośrednimi zdaniami, w tym samym rejestrze co dobry brief. Unikaj deklaracji aspiracyjnych, których nikt nie sprawdzi, takich jak pisz kod wysokiej jakości. Wybieraj konkretne, takie jak każda nowa funkcja ma test w odpowiadającym jej pliku w tests/. Agent może zastosować się do drugiego. Przy pierwszym może co najwyżej pokiwać głową.
W tym tygodniu napisz albo przepisz plik pamięci jednego projektu, używając czterech nagłówków: cel, polecenia, zasady, pułapki. Zmieść się w dwóch stronach. Potem zacznij nową sesję i zobacz, o ile mniej musisz tłumaczyć. Ta cisza to plik, który wykonuje swoją pracę.
Ryc. 32 · Co agent powinien już wiedzieć. Plik pamięci projektu odpowiada na cel, polecenia, zasady i pułapki, zanim ktoś zapyta.
Rozdział 33 · Część IV
Notes operatora
Pliki pamięci projektu są dla agentów. Ty też potrzebujesz czegoś dla siebie: bieżącego notesu, w którym zapisujesz, co zrobiłeś, co zauważyłeś i nad czym się zastanawiasz. To najmniej efektowne narzędzie w zestawie operatora i jedno z najpotężniejszych, bo to jedyne miejsce, w którym cała działalność, przez wszystkie projekty, jest widoczna w jednym strumieniu.
Format ma mniejsze znaczenie niż nawyk. Pojedynczy plik tekstowy z nagłówkiem z datą dla każdego dnia sprawdza się doskonale. Papierowy notes też, jeśli wolisz. Ważne, żeby to było jedno miejsce, żebyś pisał w nim każdego dnia pracy i żebyś mógł je później przeszukać albo przejrzeć. Wielu operatorów trzyma go otwartego przez cały dzień i notuje linijkę, ilekroć coś się wydarzy: podjęta decyzja, napotkana niespodzianka, odłożony pomysł, wątek zaczęty albo skończony.
Co tam trafia? Głównie krótkie linijki. Wypuszczona poprawka importera; puste wiersze obsłużone.Agent ciągle sięgał po starą konfigurację; dodałem notatkę do pamięci.Klient chce raportu tydzień wcześniej; przesunąłem.Pomysł: tygodniowe zestawienie zaległych wątków; w kolejce. Żadna z nich nie jest dziełem literackim. Razem tworzą zapis działalności, który jest niezwykle użyteczny na sposoby, których nie da się przewidzieć w chwili pisania.
Notes nie pamięta za ciebie. Pamięta zamiast ciebie.
Notes zarabia na siebie na trzy sposoby. Po pierwsze, zasila zamknięcie i przegląd. Na koniec dnia przejrzenie dzisiejszych wpisów mówi ci, co wyszło i co jest otwarte, znacznie szybciej niż odtwarzanie tego z wątków. Po drugie, zasila przeglądy tygodniowe i kwartalne, którymi zajmuje się dalsza część książki. Spojrzenie wstecz na tydzień wpisów odsłania wzorce niewidoczne z dnia na dzień: projekt, który ciągle staje, rodzaj zadania, który ciągle idzie źle, godzinę, o której nie dzieje się nic dobrego. Po trzecie, to zapis, który możesz przeszukać, kiedy coś wraca. Kiedy klient pyta, dlaczego w marcu wprowadzono jakąś zmianę, notes często ma odpowiedź w jednej linijce.
Łańcuch, który się liczy, to: zanotuj, przeczytaj ponownie, zdecyduj. Notes, który jest pisany, ale nigdy nie czytany, to pamiętnik. Może i przydatny, ale nie jest narzędziem operacyjnym. Wbuduj ponowne czytanie w swój rytm: przejrzenie przy każdym zamknięciu, porządna lektura przy każdym przeglądzie tygodniowym. Każda lektura powinna kończyć się przynajmniej jedną decyzją, nawet jeśli to tylko dodaj tę pułapkę do pliku pamięci albo przestań zaczynać wątki po czwartej.
Agenci też mogą tu pomóc, ale ostrożnie. Agent może streścić tydzień wpisów, wydobyć powracające motywy albo naszkicować listę otwartych spraw. To przydatne. Czego agent nie powinien robić, to pisać notesu za ciebie, bo sam akt napisania linijki jest małą chwilą refleksji, a ta chwila jest częścią wartości.
W tym tygodniu załóż notes, jeśli go nie masz. Jeden plik, jeden nagłówek na dzień, jedna linijka na każdą rzecz, która się wydarzyła. Przy piątkowym zamknięciu przeczytaj wpisy z całego tygodnia od góry do dołu i na dole zapisz jedną decyzję. To cała praktyka. Procentuje po cichu, jak dobre nawyki.
Ryc. 33 · Notes operatora. Linijki z notesu zasilają zamknięcie, przegląd tygodniowy i późniejsze wyszukiwanie oraz kończą się decyzjami.
Rozdział 34 · Część IV
Dziennik decyzji
Decyzje to najcenniejsza rzecz, jaką wytwarza operator, i ta, która najrzadziej zostaje zapisana. Kod jest wersjonowany. Dokumenty są zapisywane. Pull requesty mają opisy. Ale powody, które za nimi stoją, czyli dlaczego to podejście, a nie tamto, dlaczego ten projekt, a nie inny, dlaczego zrezygnowaliśmy z funkcji, zwykle mieszkają tylko w twojej głowie, gdzie rozpadają się w zatrważającym tempie. Trzy miesiące później patrzysz na coś i naprawdę nie pamiętasz, dlaczego jest takie, jakie jest.
Dziennik decyzji naprawia to tanim kosztem. To pojedynczy plik, dla projektu albo dla całej działalności, w którym zapisujesz istotne decyzje w chwili ich podejmowania. Każdy wpis jest krótki: data, decyzja w jednym zdaniu, powód w jednym albo dwóch i główna odrzucona alternatywa. To wszystko. Kilka linijek, które zaoszczędzą ci godzin.
Po co zapisywać odrzuconą alternatywę? Bo to ta część, której najbardziej będziesz potrzebować później. Kiedy ty albo agent wracacie do decyzji, pierwsze pytanie brzmi zwykle czemu po prostu nie zrobiliśmy tej drugiej, oczywistej rzeczy? Jeśli w dzienniku stoi rozważano hostowaną usługę wyszukiwania; odrzucono, bo wyniki musiały działać offline, pytanie dostaje odpowiedź w kilka sekund, a stara debata nie musi być otwierana na nowo. Bez tej linijki możesz spędzić popołudnie na odkrywaniu powodu od nowa albo, co gorsza, odwrócić decyzję, nie pamiętając, że w ogóle jakiś był.
Zapisanie, co zdecydowałeś, jest przydatne. Zapisanie dlaczego to ta część, która cię ratuje.
Co liczy się jako istotne? Zgrubny test: czy ktoś mógłby o to rozsądnie zapytać później. Wybory architektoniczne, zmiany zakresu, porzucenie albo odłożenie projektu, wybór narzędzia, zmiana standardu, akceptacja znanego ryzyka. Drobne codzienne wybory nie potrzebują wpisów; od tego jest notes. Jeśli zapisujesz więcej niż kilka decyzji na projekt tygodniowo, prawdopodobnie zapisujesz za dużo.
Dziennik decyzji pomaga też agentom. Jeśli leży obok projektu, możesz wskazywać go agentom, kiedy pracują nad czymś, na co wpłynęła wcześniejsza decyzja, albo umieścić krótkie streszczenie w pamięci projektu. Agent, który wie, że usługę wyszukiwania odrzucono z powodów związanych z trybem offline, nie zaproponuje jej ponownie i nie wprowadzi jej po cichu z powrotem, naprawiając coś innego. To jedno z niewielu miejsc, gdzie danie agentom historii, a nie tylko bieżącego stanu, naprawdę poprawia ich pracę.
Jest jeszcze korzyść, którą łatwo przeoczyć. Zapisanie powodu zmusza cię do tego, żeby go mieć. Operatorzy czasem odkrywają, siadając do zapisania decyzji, że ich rozumowanie jest cieńsze, niż myśleli. To nie powód, żeby przestać zapisywać. To dziennik wykonujący swoją najbardziej użyteczną pracę, zanim decyzja zdążyła mieć jakiekolwiek konsekwencje.
W tym tygodniu załóż dziennik decyzji dla swojego najbardziej zajętego projektu. Uzupełnij wstecz trzy najistotniejsze decyzje, jakie pamiętasz z ostatniego miesiąca, z ich powodami i odrzuconymi alternatywami. Potem dodawaj wpisy, w miarę jak przychodzą nowe decyzje. Za trzy miesiące, kiedy ktoś zapyta dlaczego, będziesz mieć rzadką przyjemność zwyczajnego wiedzenia.
Ryc. 34 · Dziennik decyzji. Wpis w dzienniku decyzji z powodem i odrzuconą opcją odpowiada na pytanie miesiące później.
Rozdział 35 · Część IV
Notatki, które ktoś czyta
Operatorzy piszą bardzo dużo: briefy, notatki przekazania, pliki pamięci, wpisy w notesie, dzienniki decyzji, raporty z incydentów. Pytanie, które się w tym wszystkim liczy, nie brzmi, ile zostało napisane, tylko ile zostało przeczytane ponownie i ile z przeczytanego doprowadziło do lepszej decyzji. Wyobraź to sobie jako lejek. Na górę wpada dużo. Mniej zostaje przeczytane ponownie. Jeszcze mniej cokolwiek zmienia. Celem niekoniecznie jest pisanie mniej, tylko sprawienie, żeby lejek był węższy u góry i szerszy u dołu: mniej notatek, więcej z nich użytecznych.
Notatki, które ktoś czyta, mają kilka wspólnych cech. Są pisane dla konkretnego czytelnika na konkretny moment: jutrzejszy poranny przegląd, następną sesję w tym projekcie, agenta zaczynającego pracę, ciebie za trzy miesiące. Wiedza, kto to przeczyta i kiedy, zmienia to, co piszesz. Notatka przekazania na jutro może być lakoniczna. Wpis w dzienniku decyzji na za trzy miesiące potrzebuje wypisanych powodów, bo do tego czasu kontekst wyparuje.
Zaczynają od wniosku. Najważniejsza linijka jest pierwsza: jaki jest stan, co zdecydowano, co trzeba zrobić. Szczegóły idą potem, dla tych, którzy ich potrzebują. Notatki, które zaczynają się od opowieści, a kończą puentą, rzadko są czytane do końca, co oznacza, że puenta rzadko jest w ogóle czytana.
Pisz notatkę dla zmęczonej osoby, która będzie ją czytać. Tą osobą zwykle jesteś ty.
Leżą w przewidywalnym miejscu. Notatka, której nie da się znaleźć, nie istnieje. Zdecyduj, gdzie mieszka każdy rodzaj notatek, notes w jednym pliku, przekazania na górze pamięci projektu, decyzje w dzienniku, i trzymaj się tego. Jeśli musisz szukać notatki, często ci się nie będzie chciało, a notatka zostanie zmarnowana.
Są krótkie. Długie notatki się przelatuje wzrokiem, a przelatywane notatki gubią szczegóły. Jeśli notatka musi być długa, daj jej na górze jednolinijkowe streszczenie, które mogłoby stać samo. Wielu operatorów przyjmuje prostą zasadę: żadnej notatki dłuższej niż ekran bez linijki streszczenia.
I są przycinane. Notatka przekazania, która została zastąpiona nowszą, powinna zostać usunięta albo oznaczona jako stara, inaczej następny czytelnik zadziała na podstawie nieaktualnych informacji. Plik pamięci pełen przestarzałych rad jest gorszy niż krótki plik z aktualnymi. Następny rozdział zajmuje się przycinaniem bardziej szczegółowo, ale należy ono także tutaj, bo notatki, których nigdy się nie przycina, to notatki, którym w końcu przestaje się ufać.
Istnieje sposób, żeby przetestować swoje notatki. Raz w tygodniu wybierz jedną notatkę napisaną co najmniej dwa tygodnie temu i przeczytaj ją na zimno. Zapytaj, czy szybko powiedziała ci to, co musiałeś wiedzieć, czy coś w niej było błędne albo nieaktualne i czy skłoniła cię do jakiegokolwiek działania. Jeśli na wszystkie trzy pytania odpowiedź jest dobra, pisz dalej takie notatki. Jeśli nie, skoryguj.
W tym tygodniu spójrz na ostatnie dziesięć notatek dowolnego rodzaju, które napisałeś, i zapytaj o każdą: dla kogo była i czy ten ktoś ją przeczytał? Jeśli nie umiesz powiedzieć, notatka była prawdopodobnie pisana dla nikogo. Pisz mniej takich, a więcej dla kogoś konkretnego.
Ryc. 35 · Notatki, które ktoś czyta. Z tego, co spisane, mniej jest czytane i mniej wykonywane; pięć nawyków poszerza dół.
Rozdział 36 · Część IV
Przycinanie pamięci
Pamięć się nawarstwia. Za każdym razem, gdy agent popełnia błąd, dodajesz zasadę. Za każdym razem, gdy pojawia się nowa konwencja, notujesz ją. Za każdym razem, gdy ugryzie cię pułapka, zapisujesz ją. Wszystko to jest dobrą praktyką i nic z tego nigdy nie zostaje usunięte, bo usuwanie wydaje się ryzykowne, a dodawanie odpowiedzialne. Po pół roku plik pamięci jest trzy razy dłuższy niż był, jedna trzecia jest nieaktualna, a agenci wykonują instrukcje napisane dla projektu, który już nie do końca istnieje.
Nieaktualna pamięć jest gorsza niż brak pamięci. Agent bez pamięci zadaje pytania albo eksploruje. Agent z nieaktualną pamięcią działa pewnie na podstawie błędnych informacji. Używa starego polecenia, trzyma się porzuconej konwencji, omija pułapkę naprawioną miesiące temu, obchodząc ją w niepotrzebnie skomplikowany sposób. Błędy są subtelne, bo wyglądają jak celowe wybory, i w pewnym sensie nimi są: kiedyś były twoimi celowymi wyborami.
Lekarstwem jest cykl: dodaj, przejrzyj, przytnij. Dodawanie dzieje się naturalnie w trakcie pracy. Przeglądanie i przycinanie trzeba zaplanować, bo same z siebie nigdy się nie wydarzą. Raz w miesiącu, a w najgorszym razie przy każdym przeglądzie kwartalnym, przeczytaj w całości każdy plik pamięci z czerwonym długopisem w głowie. Przy każdej linijce zapytaj, czy wciąż jest prawdziwa, czy wciąż jest potrzebna i czy jest we właściwym miejscu.
Pamięć, która tylko rośnie, staje się muzeum. Agenci powinni pracować w warsztacie.
Niektóre linijki będą po prostu błędne: polecenia, które się zmieniły, pliki, które się przeniosły, zasady, które porzucono. Popraw je albo usuń. Niektóre będą prawdziwe, ale już niepotrzebne: pułapka naprawiona u źródła, konwencja, którą teraz wymusza narzędzie. Usuń je; narzędzie pamięta w twoim imieniu. Niektóre będą prawdziwe i potrzebne, ale w złym miejscu: zasada specyficzna dla projektu w pliku ogólnym albo jednorazowa instrukcja awansowana na stałą. Przenieś je.
Przydatnym trikiem jest poproszenie agenta o pomoc. Daj mu plik pamięci i bieżący stan projektu i poproś, żeby wskazał linijki, które wydają się nieaktualne, sprzeczne albo niepoparte tym, co widzi. Nie wyłapie wszystkiego i oflaguje kilka rzeczy, które są w porządku, ale to dobre pierwsze przejście, a szczególnie dobrze wyłapuje sprzeczności między zasadami pisanymi w odstępie miesięcy.
Przycinanie utrzymuje też pamięć krótką, co ma znaczenie samo w sobie. Każdą linijkę pliku pamięci czyta każda sesja. Plik przycięty do swojej istotnej połowy jest nie tylko dokładniejszy, ale i skuteczniejszy, bo pozostałe zasady nie konkurują o uwagę z martwymi.
W tym tygodniu weź swój największy plik pamięci i go przytnij. Postaraj się usunąć co najmniej jedną piątą. Przeczytaj każdą linijkę, usuń to, co błędne albo zbędne, przenieś to, co nie na miejscu. Potem przeprowadź normalną sesję i zobacz, czy coś pójdzie nie tak. W większości przypadków nic się nie stanie, a ty dowiesz się czegoś przydatnego: spora część tego, co dźwigałeś, była ciężarem, a nie wiedzą.
Ryc. 36 · Przycinanie pamięci. Każda linijka pamięci staje przed trzema pytaniami w planowym cyklu dodawania, przeglądu i przycinania.
Rozdział 37 · Część IV
Jedno źródło prawdy
Każdy fakt w twojej działalności powinien mieć dokładnie jeden dom. Polecenie testowe mieszka w jednym miejscu. Styl domu mieszka w jednym miejscu. Bieżący stan każdego projektu mieszka w jednym miejscu. Kiedy fakt mieszka w dwóch miejscach, obie kopie w końcu zaczną się różnić, a kiedy to nastąpi, ty i twoi agenci stracicie czas na ustalanie, która jest prawidłowa. Często nawet nie zauważysz rozbieżności, dopóki coś przez nią nie pójdzie źle.
Duplikacja wkrada się z niewinnych powodów. Wpisujesz instrukcje budowania do pliku pamięci dla agenta i do readme dla ludzi. Prowadzisz listę projektów w notesie i drugą w arkuszu. Zapisujesz decyzję w dzienniku decyzji i także w opisie pull requestu, a potem aktualizujesz jedno, ale nie drugie. Każda kopia była pomocna, kiedy powstawała. Kłopot w tym, że fakty się zmieniają, a ty zawsze zaktualizujesz tylko tę kopię, na którą akurat patrzysz.
Rozwiązaniem jest wybranie domu dla każdego rodzaju faktów i wskazywanie na niego ze wszystkich innych miejsc. Plik pamięci mówi polecenia budowania są w readme, zamiast je powtarzać, albo readme mówi zobacz plik pamięci, zależnie od tego, o który dbasz staranniej. Rejestr projektów jest jedynym miejscem, gdzie mieszka stan projektów; wszystko inne do niego linkuje. Dziennik decyzji jest miejscem, gdzie zapisuje się decyzje; opis pull requestu odwołuje się do wpisu w dzienniku.
Dwie kopie faktu to jeden fakt i jeden przyszły błąd.
Wskazywanie ma koszt: czytelnik musi pójść za wskaźnikiem. Dla agentów ten koszt jest zwykle znikomy; otwierają plik w mgnieniu oka. Dla ciebie jest trochę większy, ale znacznie mniejszy niż koszt działania na podstawie nieaktualnej kopii. Jedynym prawdziwym wyjątkiem jest krótkie streszczenie czegoś, co mieszka gdzie indziej, które czasem warto trzymać dla wygody. Jeśli je trzymasz, wyraźnie oznacz je jako streszczenie i napisz, gdzie jest źródło, żeby każdy, kto ma wątpliwości, wiedział, czemu ufać.
Jedno źródło prawdy ma szczególne znaczenie w świecie wielu agentów. Jeśli trzy wątki pracują nad tym samym projektem i każdy ma nieco inne wyobrażenie o konwencjach, bo był briefowany z nieco innej kopii, dostaniesz trzy nieco inne rodzaje pracy. Zebranie konwencji w jednym pliku pamięci, który wczytuje każdy wątek, to najprostszy sposób, żeby flota zachowywała się spójnie.
Ma to znaczenie także dla ciebie, bo duplikacja to podatek od twojej pamięci tak samo jak od pamięci agentów. Jeśli musisz pamiętać, że stan jest w notesie, a także w rejestrze, a także w arkuszu, o jednym zapomnisz. Jeśli stan jest tylko w rejestrze, nie ma nic do zapamiętania poza tym, gdzie jest rejestr.
W tym tygodniu wybierz jeden fakt, o którym wiesz, że jest zapisany w więcej niż jednym miejscu, i go skonsoliduj. Wybierz dom, zaktualizuj go i zastąp pozostałe kopie wskaźnikami. Potem zrób to samo z kolejnym w przyszłym tygodniu. To nieefektowne sprzątanie, a usuwa z działalności całą kategorię zamieszania, na stałe.
Ryc. 37 · Jedno źródło prawdy. Fakty kopiowane w wiele miejsc się rozjeżdżają; jeden dom plus wskaźniki utrzymuje spójność.
Rozdział 38 · Część IV
Sekrety zostają na zewnątrz
Pliki pamięci, notesy, briefy i logi są zaprojektowane tak, by czytano je szeroko. Agenci czytają je w każdej sesji. Trafiają do repozytoriów, synchronizują się z chmurą, są wklejane do wątków i od czasu do czasu udostępniane współpracownikom. To właśnie czyni je użytecznymi i właśnie dlatego nigdy nie mogą zawierać sekretów. Pamięć to nie sejf.
Myśląc o sekretach, myśl szeroko. Hasła i klucze dostępu, oczywiście. Ale też tokeny, prywatne ciągi połączeń, dane osobowe klientów czy użytkowników, wszystko objęte umową o poufności i wszystko, czego nie chciałbyś zobaczyć w publicznych wynikach wyszukiwania. Zasada jest prosta: jeśli w niepowołanych rękach wyrządziłoby szkodę, nie trafia do niczego, co agent domyślnie czyta.
Pomocnym sposobem myślenia o każdej informacji jest umieszczenie jej na dwóch osiach. Jedna to wrażliwość: ile szkody wyrządziłoby jej ujawnienie. Druga to zasięg: w ilu miejscach i u ilu czytelników się znajdzie. Pliki pamięci i briefy mają bardzo duży zasięg. Wszystko, co wrażliwe, a ląduje w dokumencie o dużym zasięgu, jest w złej ćwiartce. Trzymaj to z dala i umieść zamiast tego w miejscu zaprojektowanym dla materiałów wrażliwych.
Jeśli agent może to przeczytać każdego ranka, załóż, że świat w końcu też to przeczyta.
Praktyczne alternatywy są dobrze ugruntowane. Dane uwierzytelniające należą do porządnego magazynu sekretów, zmiennych środowiskowych albo mechanizmu zarządzania sekretami, który zapewniają twoje narzędzia, a agenci dostają do nich dostęp przez te mechanizmy, nigdy przez wklejenie wartości do briefu. Dane osobowe klientów należą do systemu, którego używasz do ewidencji klientów, a kiedy agent musi z nimi pracować, powinien dostać tylko minimum potrzebne do zadania. Na materiały poufne należy wskazywać przez lokalizację, a nie je kopiować: warunki umowy są w folderze klienta, a nie same warunki.
Warto też pomyśleć o tym, co agenci mogą sami zapisać do pamięci. Niektóre narzędzia pozwalają agentom zachowywać fakty, których dowiedzą się w trakcie sesji. To przydatne, ale oznacza, że wartość zobaczona raz podczas debugowania mogłaby zostać zapisana na stałe. Okresowo przeglądaj automatyczną pamięć i dodaj stałą instrukcję, że agentom nigdy nie wolno przechowywać w pamięci ani notatkach danych uwierzytelniających, tokenów ani danych osobowych. Większość agentów po usłyszeniu tego niezawodnie się zastosuje. Niektórym trzeba będzie przypominać.
Jeśli sekret jednak trafi tam, gdzie nie powinien, potraktuj to jako incydent, a nie porządki. Zmień dane uwierzytelniające, a nie tylko usuń linijkę, bo sekret, który był w repozytorium albo w synchronizowanym pliku, należy uznać za widziany. Potem napisz krótką notatkę z incydentu i dodaj zabezpieczenie, które by mu zapobiegło. Ta sama zasada pojawia się ponownie w rozdziale o niecommitowaniu sekretów, bo to jedna z bardzo niewielu zasad w tej książce, która nie ma wyjątków.
W tym tygodniu przeszukaj każdy plik pamięci, notes i przepis, jaki masz, pod kątem czegokolwiek, co wygląda na klucz, hasło, token albo czyjeś dane osobowe. Usuń to, co znajdziesz, i zmień wszystko, co było aktywnym poświadczeniem. Potem dodaj stałą instrukcję do pamięci. Zajmuje to pół godziny i zamyka drzwi, które w przeciwnym razie zostałyby po cichu otwarte.
Ryc. 38 · Sekrety zostają na zewnątrz. Wrażliwe dane w notatkach o dużym zasięgu są w złej ćwiartce i należą do sejfu.
Rozdział 39 · Część IV
Przekazania między sesjami
Każda sesja się kończy i przy każdej poważniejszej pracy inna sesja podejmie ją później. Może to być ty jutro, świeży wątek agenta albo równoległy wątek, który musi wiedzieć, co zrobił ten. Jakość tego przejęcia zależy niemal całkowicie od jednego małego dokumentu: notatki przekazania. Napisz ją dobrze, a następna sesja ruszy w kilka minut. Pomiń ją, a następna sesja zacznie się od archeologii.
Dobra notatka przekazania odpowiada na cztery pytania. Jaki był cel tej sesji? Jaki jest bieżący stan, konkretnie, łącznie z tym, co zostało skończone, a co nie? Jaki jest następny ruch? I co następna sesja powinna wiedzieć, czego inaczej by nie odkryła: już zbadany ślepy zaułek, podjęta decyzja, znaleziona niespodzianka? Cztery krótkie akapity albo cztery linijki, zależnie od wielkości pracy.
Najważniejsze z czterech jest pytanie o następny ruch. Notatka przekazania, która pięknie opisuje stan, ale nie mówi, co robić dalej, zostawia następnej sesji ustalenie tego, co marnuje czas i grozi innym wnioskiem. Dalej: dodaj test dla pustego przypadku, potem puść cały zestaw jest warte więcej niż strona opisu, bo pozwala następnej sesji od razu zacząć działać.
Najlepsza notatka przekazania to taka, która pozwala następnej sesji zacząć od czasownika.
Drugie co do ważności są ślepe zaułki. Agenci, podobnie jak ludzie, mają skłonność do ponownego odkrywania tej samej złej ścieżki. Jeśli ta sesja spędziła pół godziny na odkryciu, że oczywista poprawka nie działa z powodu jakiegoś ukrytego ograniczenia, napisz to w notatce. Inaczej następna sesja spędzi własne pół godziny na tym samym odkryciu i może nawet nie dojść do tego samego wniosku.
Gdzie mieszka notatka przekazania? Tam, gdzie następna sesja zajrzy bez mówienia jej o tym. Dla wielu operatorów to krótka sekcja na górze pliku pamięci projektu, podmieniana na koniec każdej sesji. Dla innych to notatka w rejestrze projektów obok linijki danego projektu. Przy pracy w repozytorium może to być opis pull requestu, aktualizowany w miarę postępu prac. Miejsce ma mniejsze znaczenie niż konsekwencja: wybierz jedno i zawsze go używaj.
Agenci dobrze szkicują notatki przekazania i powinieneś im na to pozwolić. Na koniec sesji poproś agenta, żeby napisał notatkę, posługując się czterema pytaniami. Potem ją przeczytaj i popraw. Krok poprawiania nie jest opcjonalny. Agenci bywają optymistami co do stanu rzeczy, opisują coś jako prawie skończone, kiedy jest skończone w połowie, i nie zawsze wiedzą, które z ich odkryć będą później ważne. Twoja redakcja to miejsce, w którym notatka staje się wiarygodna.
W tym tygodniu kończ każdą sesję przy pracy na wiele sesji notatką przekazania z czterema pytaniami. Umieszczaj ją za każdym razem w tym samym miejscu. Potem zauważ, jak idzie następna sesja. Prawdopodobnie odkryjesz, że pierwsze dziesięć minut, które kiedyś szło na ustalanie, gdzie co jest, teraz idzie na robienie rzeczy. Notatka przekazania to drobna uprzejmość wobec siebie z przyszłości, a ty z przyszłości jesteś wymagającym klientem.
Ryc. 39 · Przekazania między sesjami. Przekazanie napisane przez agenta, poprawione przez ciebie i przeczytane przez następną sesję.
Rozdział 40 · Część IV
Umysł jak szafka na akta
Popularna jest idea, że rozwiązaniem na przeciążenie informacyjne jest drugi mózg: ogromny, powiązany, czule otagowany osobisty system wiedzy, w którym wszystko, co kiedykolwiek przeczytałeś albo pomyślałeś, jest przechowywane na później. Niektórzy ludzie takie budują i uznają za naprawdę przydatne. Znacznie więcej buduje je i odkrywa, że stworzyli piękne archiwum, do którego nigdy nie zaglądają. Dla operatora lepszy jest skromniejszy model: nie drugi mózg, tylko szafka na akta.
Różnica polega na tym, pod co optymalizujesz. Drugi mózg optymalizuje pod zbieranie: wrzucić wszystko, połączyć, wzbogacić. Szafka na akta optymalizuje pod odnajdywanie: możliwość położenia ręki na właściwej rzeczy we właściwym momencie. Zbieranie bez odnajdywania to zbieractwo. Odnajdywanie bez zbierania jest niemożliwe. Chcesz części wspólnej, czyli informacji, które zebrałeś i które naprawdę potrafisz znaleźć i wykorzystać, kiedy ich potrzebujesz. Ta część wspólna jest zwykle znacznie mniejsza niż archiwum.
Operatorzy z agentami mają szczególny powód, by przedkładać odnajdywanie. Agenci świetnie szukają, czytają i streszczają, co oznacza, że dobrze zorganizowane zwykłe pliki są dziś dramatycznie bardziej użyteczne niż kiedyś. Nie musisz ręcznie tagować i linkować wszystkiego, jeśli agent może przeszukać folder i wyciągnąć to, co istotne. Potrzebujesz natomiast, żeby pliki leżały w przewidywalnych miejscach, miały sensowne nazwy i były napisane na tyle jasno, żeby wyszukiwanie je znalazło.
Notatka, której nie możesz znaleźć, to notatka, której nie napisałeś.
Utrzymuj więc szafkę w prostocie. Niewielka liczba folderów najwyższego poziomu, które pasują do tego, jak myślisz o swojej pracy: projekty, przepisy, decyzje, materiały referencyjne, archiwum. W każdym folderze projektu za każdym razem te same kilka plików: pamięć, wpis w rejestrze, dziennik decyzji, przekazania. Nazwy, które znajdzie wyszukiwanie. Zwykły tekst, gdzie tylko się da. I twardy nawyk archiwizowania tego, co skończone, żeby w aktywnych szufladach było tylko to, co aktywne.
Zbieraj wybiórczo. Nie wszystko trzeba zachowywać. Przydatny test: czy potrafisz sobie wyobrazić konkretny przyszły moment, w którym będziesz tego chciał, na przykład pytanie klienta, powtarzalne zadanie, decyzję do ponownego rozważenia. Jeśli tak, odłóż to tam, gdzie zajrzysz w tym momencie. Jeśli nie, odpuść. Strach przed utratą czegoś jest prawdziwy, ale większość tego, co operatorzy zachowują, nigdy nie zostaje ponownie otwarta, a bałagan, jaki to tworzy, utrudnia znajdowanie rzeczy przydatnych.
Odnajdywanie poprawia się z praktyką. Kiedy czegoś potrzebujesz, spróbuj to znaleźć, zanim poprosisz agenta o wyszukanie. Zauważ, gdzie zajrzałeś najpierw. Tam twój umysł spodziewa się to znaleźć, a jeśli było gdzie indziej, rozważ przeniesienie. Z czasem szafka przekształca się wokół tego, jak faktycznie myślisz, a to jedyny system organizacji, który niezawodnie działa.
W tym tygodniu poproś agenta, żeby znalazł w twoich plikach trzy rzeczy, o których wiesz, że istnieją: decyzję z zeszłego kwartału, rzadko używany przepis, starą notatkę o kliencie. Zmierz czas każdego wyszukiwania. Tam, gdzie wyszukiwanie było powolne albo się nie powiodło, zapytaj dlaczego i popraw układ akt. Nie budujesz mózgu. Budujesz szafkę, która otwiera się na właściwej szufladzie, a to rzecz znacznie łatwiejsza do osiągnięcia.
Ryc. 40 · Umysł jak szafka na akta. Prosta szafka na akta z szufladami, zbudowana do odnajdywania, nie do zbierania.
Część V
Rejestr i wątki
Projekty, delegowanie i praca równoległa.
Rozdział 41 · Część V
Rejestr projektów
Operator z agentami może mieć w toku zdumiewającą liczbę rzeczy. Projekt dla klienta, dwa narzędzia wewnętrzne, szkic książki, pytanie badawcze, migracja, która od trzech tygodni jest zrobiona w dziewięćdziesięciu procentach, pomysł, który zacząłeś w niedzielę. Przy każdym może pracować kilka wątków. Bez jednego miejsca, które to wszystko wymienia, działalności nie da się zobaczyć w całości, a czego nie da się zobaczyć w całości, tym nie da się sterować.
Tym jednym miejscem jest rejestr projektów. To lista wszystkich projektów obecnych w twoim życiu, po jednej linijce na każdy, ze stanem i następnym ruchem. Nie jest to system zarządzania projektami, menedżer zadań ani tablica kanban, choć jeśli chcesz, może mieszkać w każdym z nich. To widok z najwyższego poziomu: odpowiedź na pytanie co ja właściwie prowadzę?
Rejestr stoi na szczycie małej hierarchii. Pod nim są projekty, po jednej linijce. Każda linijka wskazuje następny ruch, czyli najważniejszą rzecz, która powinna się wydarzyć w danym projekcie. A pod nimi są wątki i sesje wykonujące faktyczną pracę. Rejestr to część, na którą patrzysz każdego ranka. Wątki to część, na którą patrzą agenci. Rozdzielenie tych dwóch poziomów pozwala ci myśleć o działalności, nie tonąc w jej szczegółach.
Jeśli nie ma tego w rejestrze, to nie jest projekt. To rozproszenie z ambicjami.
Co trafia do rejestru? Wszystko, co będzie wymagało więcej niż jednej sesji, wiąże się ze zobowiązaniem wobec kogoś albo wytworzy coś, co wyjdzie w świat. Jednorazowe zadania tam nie należą; ich miejsce jest w dzisiejszej trójce albo w kolejce. Stałe obowiązki, takie jak aktualizowanie narzędzia, mogą trafić do rejestru jako projekty stałe z własnym prostym stanem.
Trzymaj go w jednym miejscu, w zwykłym tekście, jeśli możesz, i na tyle krótko, żeby dało się go przeczytać w minutę. Wielu operatorów trzyma go jako pojedynczy plik z nagłówkiem na każdy stan i linijką na każdy projekt. Niektórzy jako tabelę. Kilku na papierze przy biurku. Format ma znacznie mniejsze znaczenie niż dyscyplina posiadania dokładnie jednego rejestru i aktualizowania go przy każdym zamknięciu.
Rejestr wykonuje trzy zadania naraz. Zasila poranny przegląd, bo to z niego wybiera się dzisiejszą trójkę. Utrzymuje cię w uczciwości co do wydolności, bo liczba aktywnych linijek jest widoczną miarą tego, ile wziąłeś na siebie. I pokazuje ci, co dryfuje, bo linijka, której następny ruch nie zmienił się od dwóch tygodni, to linijka, która potrzebuje decyzji, a nie więcej pracy.
Pozwala też agentom pomagać w nadzorze. Agent może przeczytać rejestr razem z wątkami i powiedzieć ci, w których projektach w tym tygodniu nic się nie działo, które następne ruchy są nieaktualne i które wątki nie są przypięte do żadnego projektu. To przydatne poranne zestawienie, o ile sam rejestr pozostaje twój do edytowania.
W tym tygodniu napisz swój rejestr. Każdy projekt, jedna linijka, stan i następny ruch. Długość listy może cię zaskoczyć. To zaskoczenie to pierwsza użyteczna rzecz, jaką rejestr ci kiedykolwiek powie.
Ryc. 41 · Rejestr projektów. Rejestr wymienia każdy projekt ze stanem i następnym ruchem, ponad wątkami roboczymi.
Rozdział 42 · Część V
Jedna linijka na projekt
Rejestr działa tylko wtedy, gdy każdy projekt mieści się w jednej linijce. Brzmi to jak zasada formatowania. W rzeczywistości to zasada myślenia, bo ściśnięcie projektu do jednej linijki zmusza cię do tego, żebyś wiedział, jaki jest jego stan i co powinno się wydarzyć dalej. Jeśli nie potrafisz napisać tej linijki, nie rozumiesz w tej chwili projektu na tyle dobrze, żeby nim sterować.
Dobra linijka ma cztery części: nazwę projektu, jego stan, następny ruch i, jeśli ma to znaczenie, datę. Przepisanie importera: aktywny; dalej wypuścić poprawkę pustych wierszy; do czwartku.Raport dla klienta: czeka; dalej dopytać o uwagi do drugiej wersji.Konspekt kursu: odłożony; dalej wrócić przy przeglądzie kwartalnym. Każda linijka to zdanie, które da się wypowiedzieć w niecałe pięć sekund, i każda mówi dokładnie, co robić, jeśli zdecydujesz się teraz zająć tym projektem.
Wartość tkwi w kompresji. Z każdym projektem wiąże się znacznie więcej informacji, niż zmieści jedna linijka: historia, kontekst, otwarte pytania, ryzyka, pomysły. Wszystko to ma swoje miejsce, w pliku pamięci projektu, dzienniku decyzji albo notatkach przekazania. Linijka w rejestrze nie jest streszczeniem tego wszystkiego. Jest destylatem tego, co ważne dla sterowania: gdzie to jest i co dalej?
Jeśli nie umiesz tego powiedzieć w jednej linijce, to jeszcze tego nie wiesz.
Najtrudniejszą i najbardziej użyteczną częścią jest zapisanie następnego ruchu. Musi to być konkretne działanie, a nie temat. Praca nad importerem to temat. Wypuścić poprawkę pustych wierszy to ruch. Pomyśleć o cenach to temat. Naszkicować dwie opcje cenowe i wybrać jedną to ruch. Tematy nie mówią ci, co robić dziś rano. Ruchy mówią, dlatego rejestr ruchów to coś, według czego da się prowadzić dzień, a rejestr tematów to jedynie lista zmartwień.
Kiedy linijkę projektu trudno napisać, potraktuj to poważnie. Zwykle oznacza to jedną z trzech rzeczy. Projekt to w rzeczywistości kilka projektów i należy go rozbić na osobne linijki. Projekt czeka na decyzję, której nie podjąłeś, i wtedy następnym ruchem jest jej podjęcie. Albo projekt stracił cel i trwa z przyzwyczajenia, i wtedy następnym ruchem może być odłożenie go albo zakończenie. Wszystkie trzy warto wiedzieć.
Agenci mogą szkicować linijki rejestru na podstawie notatek przekazania projektu, co jest wygodnym skrótem przy zamknięciu. Ale redaguj każdą linijkę sam. Zwłaszcza następny ruch jest decyzją, a agenci skłaniają się ku proponowaniu najbardziej oczywistej kontynuacji, a nie najcenniejszej. Czasami najcenniejszym następnym ruchem jest przestać, a agent rzadko proponuje to nieproszony.
W tym tygodniu przepisz każdą linijkę rejestru w czteroczęściowej formie: nazwa, stan, następny ruch, data. Tam, gdzie następny ruch jest tematem, zamień go w działanie. Tam, gdzie linijka nie daje się ścisnąć, ustal dlaczego. Na koniec powinieneś móc przeczytać cały rejestr na głos w niecałą minutę i wiedzieć dokładnie, czego potrzebuje każdy projekt. To rejestr wykonujący swoją pracę.
Ryc. 42 · Jedna linijka na projekt. Linijka rejestru dzieli się na nazwę, stan, następny ruch i datę; ruchy biją tematy.
Rozdział 43 · Część V
Słowa stanu, które coś znaczą
Każdy projekt w rejestrze ma stan, a słownictwo, jakiego używasz do stanów, ma większe znaczenie, niż można by się spodziewać. Za dużo słów i zlewają się ze sobą: w toku, w trakcie, w realizacji, rozpoczęty, w rozwoju. Za mało i ukrywają ważne różnice. Potrzebujesz małego, uczciwego słownika, w którym każde słowo pociąga za sobą konkretne działanie, a najbardziej użyteczny zestaw dla większości operatorów to cztery słowa: pomysł, aktywny, odłożony i gotowy.
Pomysł to coś, co mógłbyś zrobić, ale czego się nie podjąłeś. Leży w rejestrze albo, częściej, na osobnej liście, żeby nie przepadł, ale nikt niczego od niego nie oczekuje. Pomysły są tanie i powinny takie pozostać. Niebezpieczeństwo przy agentach polega na tym, że pomysły stają się aktywne przypadkiem: zaczynasz wątek, żeby coś zbadać, wątek daje coś obiecującego i nagle istnieje projekt, którego nigdy nie postanowiłeś zacząć. Trzymaj twardą granicę między pomysłem a aktywnym i przekraczaj ją tylko celowo.
Aktywny oznacza, że się tego podjąłeś i w tym tygodniu dostaje uwagę. Aktywne projekty mają następny ruch, nad którym trwa praca, i konkurują o miejsce w dzisiejszej trójce. Liczba aktywnych projektów to najważniejsza liczba w rejestrze, bo to najbliższa rzecz, jaką masz, do miary obciążenia. Większość jednoosobowych operatorów potrafi dobrze prowadzić od trzech do pięciu aktywnych projektów. Więcej i każdy dostaje mniej przeglądu, niż potrzebuje.
Stan to obietnica co do tego, co wydarzy się dalej. Niech obietnic będzie mało.
Odłożony oznacza celowo wstrzymany. Nie nieudany, nie zapomniany, nie porzucony. To projekt, którym na razie postanowiłeś się nie zajmować, z notatką, dlaczego i kiedy do niego wrócisz. Odłożony to najrzadziej używany stan w większości działalności i najcenniejszy, bo daje ci uczciwy sposób na zmniejszenie obciążenia bez udawania, że projekty nie istnieją. Następny rozdział jest właśnie o nim.
Gotowy oznacza skończony i wypuszczony. To stan, do którego ma dojść każdy projekt, i powinien być wyraźnie oznaczony, z datą i linijką o tym, co wyszło. Gotowe projekty mogą trafić do sekcji archiwum rejestru, ale zachowaj zapis. Spojrzenie wstecz na to, co udało się zrobić w kwartale, to jedna z bardziej podnoszących na duchu rzeczy, jakie może zrobić operator.
Możesz chcieć jeszcze jednego stanu dla projektów zablokowanych przez kogoś innego: czeka. W porządku, pod warunkiem że każdy czekający projekt ma wskazaną osobę albo zdarzenie, na które czeka, i datę, kiedy się upomnisz. Bez tego czeka staje się uprzejmym synonimem słowa utknął.
Opieraj się dodawaniu kolejnych. Każde nowe słowo stanu dokłada decyzję o tym, którego słowa użyć, a każde dwuznaczne słowo staje się kryjówką dla projektów. Jeśli łapiesz się na tym, że chcesz stanu w rodzaju prawie gotowy albo w toku, ale powoli, to zwykle znak, że projekt potrzebuje decyzji, a nie nowej etykiety.
W tym tygodniu przejdź przez rejestr i przypisz każdemu projektowi dokładnie jedno z czterech słów. Tam, gdzie żadne nie pasuje, zdecyduj, które powinno. Policz aktywne. Jeśli liczba cię zaskoczy, pomoże następny rozdział.
Ryc. 43 · Słowa stanu, które coś znaczą. Projekty przechodzą między pomysłem, aktywnym, czekającym, odłożonym i gotowym celowymi przejściami.
Rozdział 44 · Część V
Odkładanie bez poczucia winy
Każdy operator ma więcej projektów, niż jest w stanie dobrze prowadzić. Naturalną reakcją jest utrzymywanie ich wszystkich nominalnie aktywnych, dawanie każdemu odrobiny uwagi, poczucie winy wobec tych, które dostają jej mniej, i powolny, rozproszony postęp we wszystkim. Lepszą reakcją jest odkładanie. Odłożenie to celowe wstrzymanie projektu, zapisanie, dlaczego i kiedy do niego wrócisz, a potem niemyślenie o nim aż do tego czasu.
Test na odłożenie jest prosty: czy ten projekt może w tym tygodniu zrobić znaczący postęp, biorąc pod uwagę wszystko inne? Jeśli tak, zostaw go aktywnym. Jeśli nie, bo na coś czeka, bo inne projekty są ważniejsze albo bo po prostu nie masz uwagi, odłóż go. Przy projektach, na których ci zależy, odpowiedź często będzie brzmieć nie. To w porządku. Zależeć na czymś to nie to samo, co mieć na to w tym tygodniu przestrzeń.
Porządne odłożenie obejmuje trzy kroki. Po pierwsze, napisz notatkę przekazania, żeby po powrocie podjąć pracę tam, gdzie skończyłeś, bez archeologii. Po drugie, zapisz powód odłożenia i warunek powrotu: odłożony do potwierdzenia zakresu przez klienta albo odłożony do przeglądu kwartalnego, albo odłożony do skończenia importera. Po trzecie, zatrzymaj wszelkie wątki przypięte do projektu albo zostaw je w czystym, zakończonym stanie. Odłożony projekt z żywymi wątkami nie jest odłożony. Jest zaniedbany.
Odłożenie to decyzja. Dryfowanie to jej brak.
Poczucie winy jest najtrudniejszą częścią. Odkładanie wydaje się przyznaniem do porażki, zwłaszcza przy projektach zaczętych z entuzjazmem. Ale alternatywa, czyli utrzymywanie zbyt wielu aktywnych projektów, gwarantuje, że niektóre z nich będą dryfować, a dryfujące projekty niosą znacznie więcej winy niż odłożone, bo ich stan jest niepewny. Odłożony projekt leży spokojnie z dołączoną jasną notatką. Dryfujący projekt gryzie cię za każdym razem, gdy widzisz jego nazwę.
Odkładanie poprawia też projekty, które zostają aktywne. Kiedy mniej linijek konkuruje o dzisiejszą trójkę, każdy aktywny projekt dostaje więcej przeglądu, lepsze briefy i szybsze zakończenia. Operatorzy, którzy odkładają agresywnie, często odkrywają, że ich łączna przepustowość rośnie, a nie maleje, bo skończenie kilku rzeczy jest znacznie bardziej produktywne niż posuwanie wielu.
Agenci sprawiają, że odkładanie staje się ważniejsze, a nie mniej ważne. Ponieważ zaczynanie jest tak tanie, liczba rzeczy, nad którymi mógłbyś pracować, stale rośnie. Bez nawyku odkładania rejestr puchnie, aż staje się nieczytelny. Z nim rejestr zachowuje rozsądne rozmiary, a pomysły, które by go rozdęły, czekają w uporządkowanej kolejce, gdzie można je spokojnie ocenić.
Przeglądaj odłożone projekty przy każdym przeglądzie kwartalnym albo wtedy, gdy spełni się warunek ich powrotu. Niektóre wrócą do aktywnych. Niektóre w chłodnym świetle kilku miesięcy okażą się projektami, których już nie chcesz, i te można zakończyć łagodnie, o czym mówi jeden z dalszych rozdziałów.
W tym tygodniu spójrz na swoje aktywne projekty i odłóż co najmniej jeden. Napisz notatkę, określ warunek, zatrzymaj wątki. Potem zauważ, jak czujesz się z pozostałymi aktywnymi. Zwykle lżej. Odłożony projekt nie będzie miał nic przeciwko. Ma notatkę.
Ryc. 44 · Odkładanie bez poczucia winy. Projekty, które nie ruszą w tym tygodniu, odkłada się w trzech krokach, do spełnienia warunku.
Rozdział 45 · Część V
Wątki to jednostki delegowania
Większość narzędzi agentowych organizuje pracę w wątki: osobne rozmowy albo sesje, każda z własnym kontekstem, historią i bieżącym stanem. Łatwo myśleć o wątku jak o oknie czatu, miejscu, w którym akurat rozmawiasz z agentem. Bardziej użytecznie jest myśleć o nim jak o jednostce delegowania, ograniczonym zleceniu przekazanym wykonawcy, z briefem, zakresem, zestawem sprawdzeń i notatką przekazania na końcu.
Ta zmiana myślenia zmienia to, jak zaczynasz wątki. Okno czatu otwiera się od niechcenia, ilekroć przyjdzie ci do głowy pytanie. Jednostkę delegowania otwiera się celowo, kiedy jest praca warta oddelegowania i wiesz, jak wygląda gotowe. Pierwszy nawyk produkuje dziesiątki na wpół używanych wątków, z których każdy przechowuje fragment kontekstu, a żaden nie jest wyraźnie skończony. Drugi produkuje mniej wątków, każdy z celem i końcem.
Wątek jako jednostka delegowania ma cztery części, zebrane wokół niego jak wokół piasty. Brief, który go rozpoczął i który określa cel i gotowe. Zakres, który mówi, czego ten wątek może dotykać, a czego nie. Sprawdzenia, które musi przeprowadzić, zanim zda raport. I notatka przekazania, którą zostawia, gdy kończy albo się zatrzymuje. Jeśli potrafisz nazwać wszystkie cztery dla danego wątku, to dobrze uformowany kawałek delegowania. Jeśli nie, to rozmowa, która może zamienić się w pracę, a to coś innego i mniej niezawodnego.
Wątek bez briefu to rozmowa. Wątek z briefem to zlecenie.
Myślenie w jednostkach pomaga też zdecydować, kiedy zacząć nowy wątek, a kiedy kontynuować stary. Kontynuuj, gdy praca to wciąż to samo zlecenie, a kontekst jest wciąż aktualny. Zacznij od nowa, gdy zlecenie się zmieniło, gdy kontekst zagracił się ślepymi zaułkami albo gdy chcesz świeżego spojrzenia. Długi wątek gromadzi historię, a historia nie zawsze pomaga. Agenci mogą zakotwiczyć się przy wczesnym podejściu, które już dawno porzuciłeś. Świeży wątek z czystym briefem i dobrą notatką przekazania często wypada lepiej niż długi wątek, który wie za dużo.
Jednostki delegowania sprawiają też, że działa rejestr. Każdy wątek powinien należeć do projektu w rejestrze. Jeśli znajdziesz wątek, który nie należy, to albo jest częścią projektu, którego nie zarejestrowałeś, co należy naprawić, albo jest zabłąkany i należy go skończyć albo zamknąć. Szybki audyt otwartych wątków względem rejestru to dobry cotygodniowy nawyk i niemal zawsze wyłapuje kilka zabłąkanych.
Kiedy opisujesz sobie swoją pracę w kategoriach wątków jako zleceń, naturalnie zaczynasz myśleć jak ktoś, kto deleguje, bo tym właśnie jesteś. Pytasz, czy brief był jasny, czy zakres był właściwy, czy sprawdzenia wystarczyły. To pytania, które poprawiają delegowanie. Czemu ten czat poszedł źle? takim pytaniem nie jest.
W tym tygodniu, zanim otworzysz jakikolwiek nowy wątek, zapisz jego cztery części, każdą w linijce albo dwóch. Jeśli nie potrafisz, jeszcze nie otwieraj wątku. Na koniec tygodnia policz, ile wątków otworzyłeś w porównaniu z poprzednim tygodniem. Mniej, prawie na pewno. Lepszych, prawie na pewno też.
Ryc. 45 · Wątki to jednostki delegowania. Wątek jako jednostka delegowania, z briefem, zakresem, testami i przekazaniem.
Rozdział 46 · Część V
Jeden wątek, jeden rezultat
Każdy wątek powinien celować w dokładnie jeden rezultat. Nie jeden rezultat i kilka powiązanych porządków. Nie dwa rezultaty, które akurat dotykają tych samych plików. Jeden. To najskuteczniejsza pojedyncza zasada utrzymywania równoległej pracy agentów w stanie nadającym się do przeglądu i jest łamana nieustannie, zwykle w najlepszych intencjach.
Pokusą jest wydajność. Masz otwarty wątek przy importerze, agent ma wczytany kontekst, a ty przypominasz sobie, że eksporter ma podobny błąd. Czemu nie poprosić tego samego wątku, żeby naprawił i to? Jest pod ręką. Zna kod. Zajmie to pięć minut. I tak oto wątek ma dwa rezultaty, splecione ze sobą, a kiedy wraca, masz jedną dużą zmianę, która naprawia dwie rzeczy, i musisz przejrzeć obie naraz, rozplątując, które części należą do której.
Splatanie rezultatów ma trzy koszty. Przegląd staje się trudniejszy, bo zmiany o różnych celach są wymieszane, a łatwo zatwierdzić całość, bo jedna połowa jest wyraźnie dobra. Wypuszczanie staje się trudniejsze, bo jeden rezultat może być gotowy, a drugi nie, a teraz siedzą w tej samej pracy. I wycofywanie staje się trudniejsze, bo jeśli jedna poprawka okaże się błędna, cofnięcie jej oznacza cofnięcie obu. Wszystkie trzy koszty płaci się później, i dlatego wydajność na starcie tak kusi.
Dwa rezultaty w jednym wątku to jeden wątek, którego nie da się wypuścić.
Pomyśl o wątkach na dwóch osiach: jak szeroki jest ich zakres i jak jasny jest ich rezultat. Wąski zakres z jasnym rezultatem to róg, którego szukasz. Szeroki zakres z jasnym rezultatem jest do ogarnięcia, ale powolny w przeglądzie. Wąski zakres z niejasnym rezultatem zwykle błądzi. Szeroki zakres z niejasnym rezultatem to wątek, który działa trzy dni i produkuje coś, czego nikt nie potrafi ocenić. Jeden wątek, jeden rezultat stanowczo popycha cię w stronę dobrego rogu.
Kiedy więc w środku wątku przychodzi powiązany pomysł, wyślij go do kolejki albo otwórz dla niego osobny wątek z własnym briefem. Tak, nowy wątek będzie musiał ponownie wczytać kontekst. To kosztuje minutę. Rozplątanie splecionej zmiany kosztuje znacznie więcej, a ta minuta kupuje ci dwa czyste kawałki pracy, z których każdy można osobno przejrzeć, wypuścić i wycofać.
Ta sama zasada pomaga agentom. Agent pracujący nad jednym rezultatem może sprawdzić swoją pracę względem jednej definicji ukończenia. Agent pracujący nad dwoma musi je wyważać i może uznać, że zmiana pomocna dla jednego jest do przyjęcia, nawet jeśli odrobinę szkodzi drugiemu. Chcesz, żeby takie kompromisy zawierał ty, przy przeglądzie, a nie agent, w trakcie pracy.
Istnieją wyjątki. Czasami dwie zmiany są naprawdę nierozłączne, bo jednej nie da się zrobić bez drugiej. Wtedy to w rzeczywistości jeden rezultat i brief powinien to powiedzieć. Zasada nie dotyczy liczby ruszanych plików. Dotyczy liczby rzeczy, o których będziesz musiał zdecydować, kiedy praca wróci.
W tym tygodniu zrób audyt otwartych wątków. Dla każdego zapisz jego rezultat jednym zdaniem. Jeśli potrzebujesz słowa i, wątek ma dwa rezultaty. Rozdziel go albo niech jeden poczeka. Twoje przeglądy skrócą się niemal natychmiast.
Ryc. 46 · Jeden wątek, jeden rezultat. Wąski zakres i jasny efekt sprawiają, że wątki da się przejrzeć, wydać i cofnąć.
Rozdział 47 · Część V
Równolegle, nie w supeł
Jedną z wielkich obietnic agentów jest równoległość. Kilka wątków może działać naraz, każdy nad innym kawałkiem działalności, podczas gdy ty przeglądasz wyniki w miarę ich nadchodzenia. Dobrze zrobione, to coś niezwykłego: poranek, w którym cztery osobne prace posuwają się jednocześnie i każda kończy się czysto. Źle zrobione, to supeł, w którym wątki sobie przeszkadzają, depczą sobie po zmianach i generują więcej przeglądu, niż jest w stanie udźwignąć jedna osoba.
Różnica sprowadza się do rozdzielenia. Praca równoległa pozostaje czysta, gdy kawałki są naprawdę oddzielne: różne pliki, różne rezultaty, różne gałęzie, żadnego wspólnego stanu, który zmienia naraz więcej niż jeden wątek. Czysta praca równoległa to część wspólna dwóch rzeczy: dziania się w tym samym czasie i niedotykania się nawzajem. Strać którąkolwiek, a dostaniesz albo powolną pracę sekwencyjną, albo szybką pracę w supeł.
Najczęstszy supeł to dwa wątki zmieniające te same pliki. Każdy wątek wykonuje rozsądną pracę na własnych warunkach, a kiedy oba kończą, ich zmiany wchodzą w konflikt. Rozwiązanie konfliktu wymaga szczegółowego zrozumienia obu zmian, czyli dokładnie tego wysiłku przeglądowego, który równoległość miała rozłożyć. Rozwiązaniem jest takie planowanie pracy równoległej, żeby każdy wątek miał własne terytorium. Jeśli dwie prace muszą dotykać tych samych plików, puść je po kolei, nie równolegle.
Praca równoległa jest darem tylko wtedy, gdy kawałki nie mają wspólnej ściany.
Wiele narzędzi bezpośrednio w tym pomaga. Agenci mogą pracować w osobnych kopiach repozytorium, często nazywanych worktree albo izolowanymi środowiskami, tak żeby ich zmiany nie zderzały się, dopóki nie zdecydujesz się ich połączyć. Używaj ich zawsze, gdy puszczasz więcej niż jeden wątek na tej samej bazie kodu. Przy pracy innej niż kod odpowiednikiem są osobne dokumenty albo osobne sekcje, każda należąca do jednego wątku.
Drugi supeł to przeciążenie przeglądem. Cztery równoległe wątki produkują cztery zestawy wyników i zwykle kończą mniej więcej w tym samym czasie. Jeśli każdy wymaga starannego przeglądu, masz teraz kolejkę pracy przeglądowej, która może trwać dłużej, niż trwało działanie wątków. Rozwiązaniem jest rozłożenie w czasie: zaczynaj wątki w odstępach albo dawaj im prace różnej wielkości, żeby wyniki przychodziły pojedynczo. Albo po prostu puszczaj mniej naraz. Dwa wątki, które dobrze przejrzysz, wygrywają z pięcioma przejrzanymi w pośpiechu.
Trzeci supeł to uwaga. Obserwowanie kilku wątków naraz wydaje się wydajne, a nie jest. Każde zajrzenie kosztuje przełączenie kontekstu, a przełączenia kontekstu są drogie dla ludzi, nawet jeśli dla agentów są darmowe. Grupuj zaglądanie: patrz na wszystkie działające wątki razem w ustalonych odstępach, zamiast skakać między nimi, ilekroć któryś się poruszy.
W tym tygodniu, zanim zaczniesz równoległe wątki, narysuj szybką mapę: który wątek dotyka których plików albo dokumentów. Jeśli dowolne dwa się nakładają, puść je po kolei. Używaj izolowanych kopii przy kodzie. Rozkładaj starty w czasie. Potem zauważ, jak wyglądają przeglądy. Praca równoległa powinna przypominać dobrze prowadzoną kuchnię, a nie zatłoczoną, a różnica leży głównie w planowaniu, zanim ktokolwiek weźmie do ręki nóż.
Ryc. 47 · Równolegle, nie w supeł. Rozłożone w czasie wątki na osobnych terenach oddają wyniki do przeglądu po kolei.
Rozdział 48 · Część V
Dobre przekazanie pracy
Każde delegowanie zaczyna się od przekazania: momentu, w którym oddajesz kawałek pracy agentowi. Większość operatorów myśli o tym jak o pisaniu briefu i brief rzeczywiście stanowi większość. Ale dobre przekazanie to krótka wymiana, a nie pojedyncza wiadomość, a jej druga połowa, ta, w której agent zadaje pytania przed rozpoczęciem, to miejsce, gdzie wyłapuje się wiele kosztownych nieporozumień.
Wymiana przebiega tak. Wysyłasz brief i kontekst, jakiego agent potrzebuje. Agent go czyta, przegląda odpowiednie pliki albo materiały i wraca z pytaniami albo krótkim planem. Ty odpowiadasz, korygujesz albo potwierdzasz. Dopiero wtedy zaczyna się praca. W obu przypadkach jest to znacznie tańsze niż odkrycie nieporozumienia po wykonaniu pracy.
Wielu agentów nie zada pytań, jeśli nie zostanie do tego zaproszonych. Są zbudowani, żeby być pomocni, a pomocny często znaczy: brać się do roboty. Zaproś ich więc wprost. Linijka w rodzaju przed rozpoczęciem wypisz wszelkie pytania i niejasności i zaproponuj krótki plan zamienia monolog w dialog. Jeśli agent nie ma pytań, powie to, a ty nic nie tracisz. Jeśli ma, znalazłeś lukę w briefie, zanim cokolwiek kosztowała.
Pytania, które agent zadaje przed rozpoczęciem, są tańsze niż odpowiedzi, które zgaduje.
Czytaj pytania uważnie, bo mają wartość diagnostyczną. Jeśli agent pyta o coś, co uważałeś za oczywiste, twój brief prawdopodobnie zakładał kontekst, którego nie było. Odpowiedz i rozważ dodanie odpowiedzi do pamięci projektu, żeby następny brief nie miał tej samej luki. Jeśli agent pyta o coś, czego nie wziąłeś pod uwagę, dobrze: znalazł prawdziwą niejasność i możesz ją rozstrzygnąć teraz, zamiast później odkrywać, co agent zgadł.
Czytaj uważnie także plan. Plan mówi ci, jak agent zrozumiał zadanie. Jeśli plan celuje w niewłaściwy cel, nieporozumienie jest widoczne czarno na białym, zanim wykonano jakąkolwiek pracę. Jeśli plan jest właściwy, ale ambitniejszy, niż chciałeś, możesz go przyciąć. Jeśli jest właściwy i odpowiednich rozmiarów, potwierdź i odejdź.
Dobre przekazanie ustala też oczekiwania co do raportowania. Powiedz agentowi, co chcesz zobaczyć, kiedy skończy: wynik, dowody, wszelkie odstępstwa, wszelkie otwarte pytania. Powiedz mu, kiedy ma się zatrzymać i odezwać, na przykład przed jakąkolwiek nieodwracalną zmianą albo jeśli zadanie okaże się znacznie większe, niż oczekiwano. Te instrukcje kształtują koniec pracy w takim samym stopniu, w jakim brief kształtuje jej początek.
Istnieje pokusa, kiedy już ufasz agentowi, żeby pominąć wymianę i po prostu wysłać brief. Przy małych, znajomych zadaniach to w porządku. Przy czymkolwiek poważnym albo nowym zachowaj wymianę, nawet jeśli trwa tylko minutę. Zaufanie buduje się na wymianach, które wcześnie wyłapały problemy; pomiń je, a w końcu odkryjesz na nowo, dlaczego były ważne.
W tym tygodniu dodaj linijkę o pytaniach i planie do każdego briefu przy poważnym zadaniu. Licz, jak często wymiana coś wyłapuje. Większość operatorów stwierdza, że częściej, niż się spodziewali, i że każde wyłapanie oszczędziło znacznie więcej czasu, niż kosztowała wymiana.
Ryc. 48 · Dobre przekazanie pracy. Wymiana przy przekazaniu: brief, pytania i plan zwrotnie, potwierdzenie, potem praca.
Rozdział 49 · Część V
Kiedy ściągnąć wątek z powrotem
Wątki dryfują. Agent wyrusza w dobrze zbriefowane zadanie i gdzieś po drodze zaczyna robić coś obok. Refaktoryzuje moduł, o którym brief nie wspominał. Spędza dwadzieścia minut nad problemem ze środowiskiem testowym, który nie ma nic wspólnego z zadaniem. Przepisuje sekcję, która wymagała tylko drobnej poprawki. Trzy razy kręci się w tej samej pętli, próbując lekkich wariacji podejścia, które nie działa. Każdy krok jest rozsądny sam w sobie. Kierunek jest zły.
Umiejętność operatora polega na tym, żeby wcześnie zauważyć dryf i ściągnąć wątek z powrotem, zanim będzie to dużo kosztować. Wymaga to wiedzy, jak dryf wygląda, i zaglądania na tyle często, żeby go zobaczyć. Pomaga opisany wcześniej rytm środka dnia: przy każdym zajrzeniu pytaj nie tylko, czy wątek jest zajęty, ale czy jest zajęty właściwą rzeczą.
Niektóre oznaki dryfu są niezawodne. Agent edytuje pliki poza ustalonym zakresem. Agent naprawia problemy, o których naprawienie go nie proszono. Agent próbował tego samego rodzaju poprawki więcej niż dwa razy bez powodzenia. Raporty agenta o postępach opisują aktywność, a nie wyniki. Upłynęło znacznie więcej czasu, niż zadanie powinno wymagać. Każda z tych oznak jest warta bliższego spojrzenia. Dwie lub więcej naraz niemal zawsze oznaczają dryf.
Dryf to nie brak wysiłku. To wysiłek skierowany w złą stronę.
Kiedy zauważysz dryf, reakcja zależy od tego, jak daleko zaszedł. Wczesny dryf można skorygować jednym zdaniem: zostań przy importerze; na razie zignoruj eksporter. Umiarkowany dryf może wymagać krótkiego ponownego briefu: zatrzymaj się, podsumuj, czego się dowiedziałeś, potem kontynuuj z tym węższym celem. Poważny dryf, kiedy wątek zabrnął głęboko na złe terytorium albo nagromadził mylącą historię, często najlepiej załatwić, zatrzymując wątek całkowicie i zaczynając od nowa z lepszym briefem i notatką przekazania, która uchwyci wszystko przydatne, co odkrył dryfujący wątek.
Ściągnięcie wątku z powrotem nie jest krytyką agenta. Dryf zwykle ma źródło wyżej w łańcuchu: brief, który zostawił niejasny zakres, ograniczenie, którego nie wypowiedziano, definicja ukończenia, która nie uczyniła celu jasnym, albo prawdziwa niespodzianka w pracy, z którą agent poradził sobie improwizując. Kiedy ściągasz wątek z powrotem, poświęć chwilę na pytanie, które z tych źródeł zadziałało. Naprawienie przyczyny poprawia każdy przyszły wątek. Naprawienie tylko objawu poprawia ten jeden.
Istnieją też argumenty za tym, żeby pozwolić wątkowi działać. Czasem to, co wygląda na dryf, jest odkrywaniem przez agenta, że zadanie naprawdę wymaga więcej, niż przewidywał brief. Jeśli wyraźnie to zgłosi, jak prosi go o to dobra instrukcja o odstępstwach, możesz zdecydować, czy większy zakres jest do przyjęcia. Problemem nie jest agent, który wychodzi poza brief. Problemem jest agent, który wychodzi poza brief po cichu.
W tym tygodniu przy każdym zajrzeniu zadawaj każdemu działającemu wątkowi jedno pytanie: czy pracuje nad tym, o co prosiłem? Ściągnij z powrotem wszystko, co nie pracuje. Notuj, co spowodowało każdy dryf. Po tygodniu będziesz mieć krótką listę nawyków pisania briefów do zmiany i mniej wątków do ściągania w następnym tygodniu.
Ryc. 49 · Kiedy ściągnąć wątek z powrotem. Oznaki dryfu i coraz mocniejsze reakcje, od jednego zdania do świeżego wątku.
Rozdział 50 · Część V
Fotel koordynatora
W pewnym momencie rola operatora przesuwa się od prowadzenia wątków do ich koordynowania. Zamiast jednego wątku naraz jest ich kilka, każdy pracuje nad wycinkiem większego rezultatu, a praca polega na decydowaniu, jak podzielić robotę, rozsyłaniu wycinków, przeglądaniu tego, co wraca, i scalaniu wyników w spójną całość. To fotel koordynatora i najambitniejszy sposób prowadzenia jednoosobowej działalności.
Niektóre narzędzia bezpośrednio wspierają koordynację: wiodący agent rozbija pracę i przekazuje wycinki innym agentom albo przestrzeń projektowa, w której sesja koordynująca rozsyła równoległe wątki. Są przydatne i będą się poprawiać. Ale rola koordynatora nie znika, kiedy narzędzie przejmuje jej część. Ktoś wciąż musi zdecydować, jak podzielić pracę, czy wycinki do siebie pasują i czy scalony wynik jest tym, czego chciano. Tym kimś jesteś ty.
Pętla koordynatora ma trzy kroki. Rozdziel: podziel rezultat na wycinki, które mogą działać równolegle bez splątania, i zbriefuj każdy z własnym celem, zakresem i definicją ukończenia. Przejrzyj: w miarę jak wycinki wracają, sprawdzaj każdy względem jego własnego briefu. Scal: połącz wycinki, sprawdź, czy całość działa, i zdecyduj, czy spełnia pierwotny rezultat. Potem zwykle idziesz na kolejne okrążenie, bo scalanie ma zwyczaj ujawniać lukę, która wymaga kolejnego wycinka.
Koordynator nie wykonuje pracy. Koordynator sprawia, że kawałki pasują.
Scalanie to miejsce, gdzie leży wartość, i krok, który najłatwiej niedoszacować. Każdy wycinek może przejść własne sprawdzenia, a całość i tak może zawieść, bo wycinki przyjęły nieco inne założenia albo nikt nie odpowiadał za styki między nimi. Dobrzy koordynatorzy definiują styki z góry: interfejs między dwoma wycinkami, wspólny format, uzgodnione słownictwo. Przy scalaniu też najpierw sprawdzają styki, bo tam chowają się problemy.
Podział pracy to drugie miejsce, w którym widać umiejętność. Dobry podział daje każdemu wycinkowi jasny, niezależny rezultat i minimalizuje styki. Zły podział tworzy wycinki, które zależą od wzajemnych szczegółów, tak że jeden nie może skończyć, dopóki nie skończy inny, a równoległość zapada się w kolejkę. Czas poświęcony na podział to czas zaoszczędzony wszędzie indziej. Rozrysuj go, zanim cokolwiek roześlesz.
Fotel koordynatora jest wymagający. Wymaga więcej uwagi niż prowadzenie pojedynczego wątku, a nie mniej, bo trzymasz całość w głowie, podczas gdy kawałki są wytwarzane. Warto przy dużych rezultatach, które naprawdę dobrze się dzielą. Nie warto przy rezultatach na tyle małych, że zmieszczą się w jednym wątku, a wielu operatorów sięga po koordynację za wcześnie, bo wydaje się zaawansowana. Jeden dobry wątek jest zwykle szybszy niż trzy koordynowane przy wszystkim, co mieści się w sesji.
W tym tygodniu znajdź jeden rezultat na tyle duży, żeby go podzielić. Narysuj na kartce wycinki i styki. Roześlij dwa albo trzy wycinki ze starannymi briefami. Przejrzyj każdy, potem scal, zaczynając od sprawdzenia styków. Zauważ, ile twojego czasu poszło na podział i styki, a ile na same wycinki. Ta proporcja to praca koordynatora.
Ryc. 50 · Fotel koordynatora. Koordynator rozdziela kawałki, przegląda każdy, łączy je przez styki i wraca w pętli.
Część VI
Przegląd pracy
Dowody, diffy i gust.
Rozdział 51 · Część VI
Przegląd to właściwa praca
Kiedy większość wytwarzania robią agenci, godziny pracy operatora przesuwają się w stronę przeglądania. To ludzi zaskakuje. Spodziewali się, że uwolniony czas poświęcą na strategię, kreatywność albo odpoczynek, a tymczasem przez dużą część każdego dnia czytają diffy, sprawdzają szkice i testują funkcje. Może to wyglądać na degradację: z twórcy na inspektora. Jest odwrotnie. Przegląd to miejsce, gdzie operator wnosi najwięcej wartości, a traktowanie go jako przykrego obowiązku to jeden z najkosztowniejszych błędów w tym fachu.
Zastanów się, co przegląd faktycznie robi. Praca agentów przychodzi na dół stosu: obfita, szybka, zwykle dobra, czasem błędna w trudny do zauważenia sposób. Na górze siedzi decyzja o wydaniu, która stawia twoje nazwisko pod pracą. Pomiędzy nimi jest przegląd, jedyna warstwa, w której twój osąd bezpośrednio dotyka pracy. Wszystko, co wiesz o kliencie, użytkownikach, poprzeczce jakości i ryzykach, wchodzi do pracy przez przegląd. Oszczędzaj na nim, a cała ta wiedza zostanie w twojej głowie, niewykorzystana.
Przegląd to także miejsce, gdzie się uczysz. Każdy przegląd pokazuje ci, jak agent zinterpretował twój brief, co mówi ci, jak następnym razem briefować lepiej. Pokazuje, gdzie pamięć projektu jest niekompletna, gdzie testy są słabe, gdzie konwencje są niejasne. Operator, który przegląda starannie, staje się lepszy w każdej innej części pracy, bo przegląd jest pętlą sprzężenia zwrotnego, która łączy te części.
Wytwarzanie jest dziś tanie. Wiedza, czy jest dobre, już nie.
Traktowanie przeglądu jako właściwej pracy zmienia to, jak go planujesz. Dostaje porządny czas w sesjach, a nie resztki minut między innymi rzeczami. Dostaje twoje najlepsze godziny, a nie najgorsze, bo zmęczony przegląd to miejsce, przez które prześlizgują się wady. I jest chroniony przed przerwaniami, bo przegląd wymaga ciągłej uwagi w sposób, w jaki briefowanie jej nie wymaga.
Zmienia to też sposób mierzenia własnej produktywności. Jeśli przegląd jest właściwą pracą, to dzień spędzony na starannym przejrzeniu czterech prac i wypuszczeniu trzech z nich jest doskonałym dniem, nawet jeśli sam niczego nie wytworzyłeś. Operatorzy, którzy mierzą się tym, co osobiście wyprodukowali, zwykle mają poczucie winy z powodu czasu spędzonego na przeglądzie i go przyspieszają. Operatorzy, którzy mierzą się tym, co dobrze wyszło, zwykle dają przeglądowi tyle czasu, ile potrzebuje.
Nic z tego nie oznacza przeglądania wszystkiego na tę samą głębokość. Jeden z dalszych rozdziałów opisuje, jak dopasować głębokość przeglądu do ryzyka. Zmiana jednej linijki tekstu wymaga rzutu oka. Zmiana sposobu naliczania płatności wymaga powolnej, rozważnej lektury i prawdziwego testu. Umiejętność polega na wiedzy, co jest czym, i daniu każdemu tego, czego potrzebuje.
W tym tygodniu spójrz na kalendarz i znajdź, gdzie odbywa się przegląd. Jeśli jest wciśnięty w szczeliny, daj mu własne bloki, w twoich najbystrzejszych godzinach. Potem zauważ, co się zmienia: mniej niespodzianek po wydaniu, lepsze briefy, w miarę jak uczysz się z każdego przeglądu, i rosnące poczucie, że prowadzisz pracę, a nie tylko ją odbierasz. To poczucie to właśnie ta praca, dobrze zrozumiana.
Ryc. 51 · Przegląd to właściwa praca. Praca agentów wznosi się przez twój przegląd, jedyną warstwę, której dotyka twój osąd.
Rozdział 52 · Część VI
Dowody ponad zapewnienia
Agenci uspokajają. Mówią ci, że praca jest kompletna, testy przechodzą, przypadki brzegowe są obsłużone, a zmiana jest gotowa do przeglądu. Przez większość czasu mają rację. Ale zapewnienie to nie dowód, a operator, który przyjmuje zapewnienie w miejsce dowodu, prędzej czy później wypuści coś, co nie było tym, za co się podawało.
Rozróżnienie jest proste. Zapewnienie to twierdzenie: wszystkie testy przechodzą. Dowód to coś, co możesz sprawdzić: wyjście z przebiegu testów, pokazujące, które testy się uruchomiły i że przeszły. Zapewnienie to strona działa na telefonie. Dowód to zrzut ekranu na szerokości telefonu albo, lepiej, ty otwierający stronę na swoim telefonie. Zapewnienie to obsłużyłem pusty przypadek. Dowód to test, który sprawdza pusty przypadek, i jego wynik. W każdej parze pierwsze to to, w co wierzy agent. Drugie to to, co możesz zweryfikować.
Powodem, by nalegać na dowody, nie jest to, że agenci kłamią. Chodzi o to, że agenci, tak jak ludzie, mogą się mylić co do własnej pracy. Przebieg testów mógł dotyczyć starej wersji. Sprawdzenie mogło przejść z niewłaściwego powodu. Przypadek brzegowy mógł zostać obsłużony w jednej ścieżce i pominięty w innej. Agent szczerze raportuje sukces, a raport jest błędny. Dowody wyłapują takie przypadki. Zapewnienia nie mogą.
Proś o paragon, nie o obietnicę.
Praktyczny nawyk to proszenie o dowody w briefie i patrzenie na nie przy przeglądzie. W briefie: kiedy skończysz, dołącz pełne wyjście z testów i zrzut ekranu nowej strony na szerokości telefonu. Przy przeglądzie: przeczytaj wyjście, obejrzyj zrzut i sprawdź, czy faktycznie pokazują to, co twierdzi podsumowanie. Zajmuje to minutę albo dwie. To najbardziej niezawodna minuta przeglądu.
Istnieje subtelniejsza wersja tej samej myśli. Niektóre dowody są mocniejsze od innych. Przechodzący test to słaby dowód, jeśli przeszedłby także przed zmianą. Zrzut ekranu to słaby dowód, jeśli pokazuje inną stronę niż zmieniona. Mocny dowód demonstruje, że zmiana coś zmieniła: nowy test nie przechodzi bez zmiany i przechodzi z nią; zrzuty sprzed i po pokazują poprawkę. Proś o mocne dowody, kiedy to ważne.
Agenci stali się całkiem dobrzy w dostarczaniu dowodów na prośbę, a wielu przy kodzie robi to już domyślnie. Przy innych rodzajach pracy może być potrzebna większa dosłowność. Przy podsumowaniu badań proś o źródła i cytaty. Przy transformacji danych proś o liczbę wierszy przed i po oraz próbkę wyniku. Przy zmianie projektu graficznego proś o zrzuty ekranu w rozmiarach, które mają znaczenie. Każda z tych próśb zamienia twierdzenie w coś sprawdzalnego.
W tym tygodniu przy każdej pracy agenta, którą przeglądasz, poszukaj dowodów, zanim przeczytasz podsumowanie. Tam, gdzie ich nie ma, poproś o nie przed zatwierdzeniem. Zauważ, jak często dowody potwierdzają podsumowanie i jak od czasu do czasu nie potwierdzają. Te sporadyczne przypadki są powodem, dla którego ten nawyk istnieje.
Ryc. 52 · Dowody ponad zapewnienia. Sześć twierdzeń agenta zestawionych z dowodami, które pozwolą sprawdzić każde z nich.
Rozdział 53 · Część VI
Czytaj diff, nie podsumowanie
Każda praca agenta przychodzi z podsumowaniem, a podsumowania agentów są znakomite: jasne, dobrze zorganizowane, pewne siebie i łatwe w lekturze. Pisze je też strona, która wykonała pracę, ze wszystkimi wynikającymi z tego naturalnymi skłonnościami do akcentowania tego, co poszło dobrze, i lekkiego przechodzenia nad tym, co nie poszło. Czytaj podsumowanie, jak najbardziej. Ale najpierw przeczytaj diff.
Diff, czyli faktyczny zapis tego, co się zmieniło, to prawda podstawowa. Pokazuje każdy ruszony plik, każdą dodaną i usuniętą linijkę, każdą zmianę, niezależnie od tego, czy podsumowanie o niej wspomniało. Przy kodzie to dosłownie diff. Przy dokumentach to porównanie starej i nowej wersji. Przy danych to stan przed i po. Bez względu na medium diff mówi ci, co się stało. Podsumowanie mówi ci, co według agenta się stało, a to zwykle to samo, a czasem istotnie co innego.
Różnice zwykle układają się w kilka wzorców. Podsumowanie pomija zmianę, bo agent uznał ją za drobną: poprawkę konfiguracji, usunięty test, zmodyfikowany plik spoza określonego zakresu. Podsumowanie opisuje intencję zamiast wyniku: ulepszona obsługa błędów, podczas gdy diff pokazuje, że jeden przypadek błędu został obsłużony, a dwa usunięte. Podsumowanie jest trafne, ale niepełne: wymienia to, o co proszono, a nie to, co przyszło przy okazji. Żadne z nich nie jest oszustwem. Wszystkie mają znaczenie.
Podsumowanie to opowieść. Diff to to, co się wydarzyło.
Czytanie diffów to umiejętność i warto ją rozwijać, nawet jeśli nie jesteś programistą. Zacznij od kształtu: ile plików się zmieniło, które i mniej więcej w jakim stopniu. Jeśli kształt cię zaskakuje, więcej plików niż oczekiwałeś, pliki spoza zakresu, usunięcia tam, gdzie spodziewałeś się dodań, patrz tam najpierw. Potem przeczytaj zmiany merytoryczne. Nie musisz rozumieć każdej linijki, żeby zauważyć, że usunięto test, że stała zmieniła wartość albo że cała sekcja dokumentu została przepisana, kiedy prosiłeś o drobną poprawkę.
Po diffie przeczytaj podsumowanie i porównaj. Czy podsumowanie wspomina wszystko, co widziałeś? Czy trafnie opisuje zmiany? Jeśli jest luka, zapytaj o nią. Często jest dobry powód. Czasem go nie ma, a pytanie wydobywa na powierzchnię coś, co w przeciwnym razie wyszłoby niezauważone.
Agenci mogą pomóc ci też czytać diffy. Poproszenie osobnego agenta o przejrzenie zmiany, bez żadnego kontekstu poza pierwotnym briefem i diffem, to przydatna druga opinia, zwłaszcza przy dużych zmianach. Agent recenzent, który nie wykonał pracy, nie jest do niej przywiązany i często zauważy rzeczy, które pierwotny agent prześlizgnął. Traktuj jego ustalenia jako dowody do zważenia, a nie werdykt do przyjęcia.
W tym tygodniu odwróć kolejność czytania. Przy każdej pracy agenta otwieraj diff przed podsumowaniem. Wyrób sobie własne zdanie o tym, co się zmieniło. Potem przeczytaj podsumowanie i zobacz, czy się zgadza. Licz, ile razy się nie zgadza. Ta liczba to miara tego, jak bardzo twój przegląd opierał się na czyjejś relacji z własnej pracy.
Ryc. 53 · Czytaj diff, nie podsumowanie. Zestawienie podsumowania agenta z jego diffem ujawnia pominięcia i przesady.
Rozdział 54 · Część VI
Najpierw najtańsze sprawdzenie
Nie każdy przegląd musi być głęboki. Niektóre zmiany są błahe, a niektóre niebezpieczne, a traktowanie ich wszystkich tak samo albo marnuje twój czas na błahych, albo oszczędza na niebezpiecznych. Lepszym podejściem jest uporządkowanie sprawdzeń według kosztu, najtańsze najpierw, i zatrzymanie się, gdy tylko masz dość pewności jak na dane ryzyko.
Najtańsze sprawdzenia trwają sekundy. Czy diff ma rozmiar, jakiego się spodziewałeś? Czy sprawdzenia przeszły? Czy podsumowanie pasuje do briefu? Czy są dowody? Te pytania wyłapują zaskakującą część problemów, zwłaszcza tych grubych: agent pracował na złym pliku, pominął połowę zadania albo zepsuł coś oczywistego. Jeśli którekolwiek nie przejdzie, wiesz, co trzeba, bez wydawania więcej czasu, a praca wraca.
Następny poziom to realne użycie. Otwórz stronę. Uruchom funkcję. Przeczytaj dokument tak, jak przeczytałby go docelowy czytelnik. Wczytaj dane do narzędzia, które będzie ich używać. Zajmuje to minuty, a nie sekundy, i wyłapuje inną klasę problemów: pracę, która jest technicznie poprawna, ale nie robi tego, czego ktokolwiek naprawdę potrzebował. Realne użycie to sprawdzenie najczęściej pomijane, bo wydaje się powolne w porównaniu z czytaniem. To także sprawdzenie, które najprawdopodobniej wyłapie problemy, jakie znaleźliby użytkownicy.
Patrz najpierw tam, gdzie patrzenie jest tanie. Patrz uważniej tam, gdzie błędy są drogie.
Najgłębszy poziom to staranna lektura. Linijka po linijce przez diff, myśląc o przypadkach brzegowych, pytając, co mogłoby pójść źle, sprawdzając, czy zmiana jest spójna z resztą systemu. To wymaga prawdziwego czasu i prawdziwej uwagi i jest właściwym sprawdzeniem przy zmianach o wysokiej stawce: wszystkim, co dotyczy pieniędzy, bezpieczeństwa, danych osobowych, nieodwracalnych działań albo kodu, od którego zależy wiele innych rzeczy. Jest niewłaściwym sprawdzeniem przy zmianie napisu na przycisku.
Kolejność ma znaczenie, bo pozwala zatrzymać się wcześnie. Zmiana, która oblewa tanie sprawdzenie, nie potrzebuje głębokiej lektury; trzeba ją zrobić od nowa. Zmianę, która przechodzi tanie sprawdzenia i test realnego użycia, można spokojnie wypuścić, jeśli stawka jest niska. Tylko zmiany, które przechodzą dwa pierwsze poziomy i niosą prawdziwe ryzyko, potrzebują trzeciego. Tak operator przegląda dużą ilość pracy, ani nie tonąc, ani nie stając się niedbałym.
Pomaga zdecydowanie o głębokości z góry, jako część briefu. Pisząc definicję ukończenia, zanotuj też poziom ryzyka: niski, średni albo wysoki. Praca o niskim ryzyku dostaje tanie sprawdzenia i szybki test realnego użycia. Praca o średnim ryzyku dostaje to wszystko plus skupioną lekturę kluczowych zmian. Praca o wysokim ryzyku dostaje wszystko, powoli, najlepiej kiedy jesteś wypoczęty. Zapisanie ryzyka wcześniej powstrzymuje cię przed decydowaniem o nim w danej chwili, kiedy jesteś zmęczony i skłonny uważać, że wszystko jest niskiego ryzyka.
W tym tygodniu oznacz każdy brief poziomem ryzyka i przeglądaj odpowiednio. Zauważ, ile czasu tanie sprawdzenia oszczędzają przy pracy niskiego ryzyka i o ile więcej uwagi zostaje ci na pracę wysokiego ryzyka. Ta realokacja to cały sens. Uwaga jest skończona; wydawaj ją tam, gdzie błędy kosztują najwięcej.
Ryc. 54 · Najpierw najtańsze sprawdzenie. Trzy poziomy przeglądu uporządkowane wg kosztu, z wczesnymi wyjściami do wydania lub odesłania.
Rozdział 55 · Część VI
Przegląd w dwóch przebiegach
Przy wszystkim, co jest większe niż drobna zmiana, przeglądaj w dwóch przebiegach. Pierwszy przebieg patrzy na kształt: czy to właściwy rodzaj rzeczy, wycelowany we właściwy cel, zbudowany w sensowny sposób? Drugi przebieg patrzy na szczegóły: czy każda część jest poprawna? Robienie tego w tej kolejności oszczędza mnóstwo czasu, bo praca o złym kształcie nie zasługuje na szczegółowy przegląd.
Przebieg kształtu jest szybki i ogólny. Przeczytaj podsumowanie i przejrzyj pobieżnie diff. Spójrz na strukturę dokumentu albo układ strony. Zapytaj: czy agent zrozumiał zadanie? Czy podejście jest rozsądne? Czy zakres jest właściwy, ani zbyt wąski, ani rozlazły? Czy pasuje do reszty projektu? Niczego nie sprawdzasz linijka po linijce. Sprawdzasz, czy praca jest tą pracą, której chciałeś.
Jeśli kształt jest zły, zatrzymaj się. Nie przechodź do szczegółów. Szczegółowe uwagi do pracy o złym kształcie są zmarnowane, bo praca zostanie zrobiona od nowa, a szczegóły się zmienią. Co gorsza, szczegółowe uwagi mogą sprawić wrażenie, że kształt jest do przyjęcia i tylko szczegóły wymagają poprawy, co kieruje następne podejście w złą stronę. Odeślij pracę z jasną uwagą o kształcie: to rozwiązuje problem na poziomie bazy danych; chciałem, żeby był rozwiązany w interfejsie. Jedno zdanie o kształcie jest warte dwudziestu o szczegółach.
Nigdy nie poleruj niewłaściwej rzeczy.
Jeśli kształt jest dobry, przejdź do przebiegu szczegółów. Teraz zwolnij. Sprawdź przypadki brzegowe, obsługę błędów, sformułowania, liczby. Spójrz na każdą zmianę i zapytaj, czy jest poprawna, spójna i potrzebna. Tu ma zastosowanie głębokość wybrana w poprzednim rozdziale: zmiana niskiego ryzyka dostaje lżejszy przebieg szczegółów, zmiana wysokiego ryzyka dokładny.
Potem zdecyduj. Wypuść, odeślij z konkretnymi uwagami albo odłóż. Decyzja zamyka pętlę, a jeśli praca wraca, następna wersja dostaje te same dwa przebiegi. Często za drugim razem przebieg kształtu zajmuje sekundy, bo kształt został ustalony, i tylko przebieg szczegółów wymaga prawdziwego czasu.
Nawyk dwóch przebiegów warto stosować także do własnej pracy, a nie tylko do pracy agentów. Kiedy piszesz brief, linijkę rejestru albo decyzję, spójrz najpierw, czy to właściwa rzecz, a potem, czy jest właściwa w szczegółach. Operatorzy, którzy pomijają przebieg kształtu przy własnej pracy, często łapią się na starannym redagowaniu briefu do zadania, którego w ogóle nie powinni byli zaczynać.
Jest też korzyść towarzyska, na te okazje, gdy przeglądasz pracę ludzi, a nie agentów. Oddzielenie kształtu od szczegółów sprawia, że informacja zwrotna jest dużo jaśniejsza. Podejście jest dobre; oto kilka szczegółów to coś zupełnie innego niż podejście wymaga przemyślenia, a ludzie doceniają, gdy wiedzą, jaki rodzaj uwag dostają, zanim zaczną je czytać.
W tym tygodniu przeglądaj każdą poważniejszą pracę w dwóch wyraźnych przebiegach. Po przebiegu kształtu, zanim zaczniesz przebieg szczegółów, zapisz jednolinijkowy werdykt. Zauważ, jak często sam przebieg kształtu rozstrzyga sprawę i o ile szybciej idzie przebieg szczegółów, kiedy już wiesz, że praca jest właściwą pracą.
Ryc. 55 · Przegląd w dwóch przebiegach. Przegląd kształtu poprzedza przegląd detali; zły kształt wraca przed jakąkolwiek redakcją.
Rozdział 56 · Część VI
Co ukrywa zieleń
Jest pewne uczucie, któremu operatorzy uczą się nie ufać: ulga na widok wszystkiego na zielono. Testy przechodzą. Sprawdzenia przechodzą. Budowanie się udaje. Agent raportuje ukończenie. Zieleń to dobra wiadomość i przez większość czasu znaczy to, co wydaje się znaczyć. Ale zieleń ma martwe pola, a najgroźniejsze problemy to te, które w nich mieszkają.
Zieleń mówi ci, że sprawdzenia, które masz, przeszły. Nie mówi ci, że to właściwe sprawdzenia. Zestaw testów, który obejmuje główną ścieżkę, a nie przypadki brzegowe, będzie zielony dla kodu, który wykłada się na przypadkach brzegowych. Sprawdzenie, które weryfikuje, że strona się ładuje, będzie zielone dla strony, która ładuje się z niewłaściwą treścią. Linter pilnujący formatowania będzie zielony dla kodu, który jest pięknie sformatowany i logicznie błędny. Część wspólna między wszystko zielone a i tak źle to miejsce, gdzie chowają się kłopoty.
Agenci dokładają tu konkretne ryzyko. Agent poproszony o to, żeby sprawdzenia przeszły, bardzo się stara, a czasem najłatwiejszym sposobem, żeby sprawdzenie przeszło, jest zmiana sprawdzenia. Może osłabić asercję, pominąć nieprzechodzący test, poszerzyć oczekiwaną wartość albo zamockować część, która się sypała. Większość agentów jest dziś całkiem porządna pod tym względem, a wielu zgłosi to, jeśli tak zrobi. Ale to się zdarza i daje najbardziej zwodniczy rodzaj zieleni: sprawdzenia, które przechodzą, bo nic już nie sprawdzają.
Zielono znaczy, że sprawdzenia przeszły. Nie znaczy, że sprawdzenia były właściwe.
Obroną jest przeglądanie sprawdzeń tak samo jak kodu. Kiedy diff zawiera zmiany w testach, czytaj je ze szczególną starannością. Zapytaj, czy któryś test się osłabił: usunięta asercja, poluzowana wartość, pominięty przypadek. Może tu pomóc brief, w którym stoi, że testy można dodawać, ale nie wolno ich osłabiać bez wyraźnej zgody, a każda zmiana istniejącego testu musi zostać zgłoszona.
Druga obrona to szukanie dowodów, że sprawdzenia przetestowały nową pracę. Nowa funkcja powinna przyjść z nowym testem, który bez niej nie przechodzi. Poprawka błędu powinna przyjść z testem, który odtwarza błąd. Jeśli wszystkie testy przechodziły przed zmianą i wszystkie przechodzą po niej, a nie dodano żadnego nowego testu, zieleń mówi ci tylko tyle, że nic oczywistego się nie zepsuło. Nie mówi nic o tym, czy nowa rzecz działa.
Trzecia obrona to realne użycie z jednego z wcześniejszych rozdziałów. Sprawdzenia to model tego, co znaczy poprawnie, a modele są zawsze niekompletne. Używanie rzeczy, otwarcie strony, uruchomienie importu, przeczytanie dokumentu, testuje ją względem rzeczywistości, a nie modelu. Realne użycie wyłapuje to, co ukrywa zieleń, niezawodniej niż cokolwiek innego.
W tym tygodniu, ilekroć zobaczysz wszystko na zielono, zadaj przed wydaniem jedno dodatkowe pytanie: co musiałoby być prawdą, żeby to było zielone i błędne? Przyjrzyj się konkretnie wszelkim zmianom w testach w diffie i sprawdź, czy przynajmniej jedno sprawdzenie przetestowało nową pracę. Dodaje to minutę. Usuwa klasę niespodzianek, które w przeciwnym razie przychodzą w najmniej dogodnym momencie, zwykle od użytkownika.
Ryc. 56 · Co ukrywa zieleń. Wszystko zielone i wciąż złe nakładają się w martwym polu; trzy obrony je zmniejszają.
Rozdział 57 · Część VI
Przegląd prozy i obrazów
Duża część tego, co agenci produkują dla operatora, to nie kod. To tekst: maile, raporty, oferty, dokumentacja, wpisy. Albo rzeczy wizualne: strony, slajdy, diagramy, układy. Nie mają one zestawu testów ani budowania, które zapala się na zielono. Ich przegląd wymaga innego zestawu sprawdzeń, a wielu operatorów przegląda je mniej starannie niż kod właśnie z tego powodu. To błąd, bo proza i obrazy to zwykle to, co widzą inni ludzie.
Prozę przeglądaj wzdłuż dwóch osi. Jedna to rzetelność: czy fakty się zgadzają, czy twierdzenia są poparte, czy coś nie zostało zmyślone? Druga to głos: czy brzmi to jak ty, we właściwym rejestrze dla czytelnika, bez manier, które zdradzają tekst wyprodukowany maszynowo? Proza rzetelna i pisana twoim głosem jest gotowa do wysłania. Proza rzetelna, ale nie twoim głosem, może się nadawać do użytku wewnętrznego, ale nie powinna trafić do klienta. Proza twoim głosem, ale nierzetelna, to rodzaj najniebezpieczniejszy, bo przekonuje.
Rzetelność wymaga prawdziwego sprawdzania. Agenci piszą płynnie, a płynność potrafi maskować błędy: datę lekko przesuniętą, liczbę z niewłaściwego źródła, streszczenie dokumentu, które subtelnie przekręca jego wniosek. Przy wszystkim, co przeczyta ktoś, kto się liczy, sprawdź każde twierdzenie faktyczne względem jego źródła. Poproś agenta, żeby podawał w szkicu źródła, tak abyś mógł je szybko sprawdzić, i naprawdę je klikaj. To żmudne i niezbędne.
Płynnie to nie to samo co prawdziwie, a czytelnik nie odróżni jednego od drugiego. Ty możesz.
Głos trudniej sprawdzić, ale da się. Przeczytaj prozę na głos albo przynajmniej powoli. Zauważ zwroty, których nigdy byś nie użył. Zauważ struktury, które się powtarzają: każdy akapit zaczyna się tak samo, każda lista ma dokładnie trzy pozycje, każde zakończenie streszcza to, co właśnie powiedziano. To częste wzorce w generowanym tekście, a czytelnicy coraz lepiej je rozpoznają. Wykreślaj je albo, lepiej, dodaj notatkę do pamięci albo przepisu, żeby przyszłe szkice ich unikały. Trzymanie pod ręką kilku przykładów własnego pisania, jak sugerował jeden z wcześniejszych rozdziałów, ogromnie tu pomaga.
Przy obrazach odpowiednikami są poprawność i dopasowanie. Poprawność: czy układ działa w rozmiarach, w jakich będzie oglądany, czy tekst jest czytelny, czy kolory są dostępne, czy wszystko, co powinno być klikalne, działa? Dopasowanie: czy wygląda, jakby należało do twojej marki i twoich innych prac, czy wygląda na generycznie kompetentne? Sprawdzaj w prawdziwych rozmiarach, na prawdziwych urządzeniach, w trybie jasnym i ciemnym, jeśli ma to znaczenie. Projekt przejrzany tylko na pełnej szerokości ekranu komputera to projekt przejrzany dla jednego czytelnika na pięciu.
Metoda dwóch przebiegów ma tu zastosowanie również. Najpierw kształt: czy to właściwy dokument albo projekt, z właściwą strukturą, dla właściwego czytelnika? Potem szczegóły: czy każde zdanie jest prawdziwe, każdy element poprawny? Proza i obrazy, które oblewają przebieg kształtu, powinny wracać bez redakcji ani jednej linijki.
W tym tygodniu weź jeden tekst napisany przez agenta, który ma trafić do kogoś innego, i przejrzyj go powoli pod kątem rzetelności i głosu, sprawdzając każde twierdzenie faktyczne i wykreślając każdy zwrot, którego byś nie użył. Zmierz czas. Zajmie to dłużej, niż się spodziewałeś, i za każdym razem będzie warte zachodu.
Ryc. 57 · Przegląd prozy i obrazów. Proza oceniana wg trafności i głosu, obok sprawdzeń, których wymagają obrazy.
Rozdział 58 · Część VI
Uwagi, które uczą
Kiedy odsyłasz pracę, uwagi, które piszesz, wykonują dwa zadania. Oczywiste to naprawienie tej konkretnej pracy. Mniej oczywiste, a z czasem ważniejsze, to ulepszenie następnej. Uwagi, które wykonują tylko pierwsze zadanie, sprawiają, że poprawiasz te same problemy raz za razem. Uwagi, które wykonują oba, sprawiają, że działalność staje się lepsza przy każdym przeglądzie.
Uwaga, która uczy, ma trzy cechy. Jest konkretna: mówi dokładnie, co jest nie tak i gdzie, zamiast wskazywać ogólne niezadowolenie. Drugi akapit podaje liczbę bez źródła zamiast potrzeba więcej rygoru. Jest wyjaśniająca: mówi dlaczego, żeby agent mógł zastosować ten powód w podobnych przypadkach. Klienci już wcześniej pytali o źródła; każda liczba musi je mieć zamiast samego dodaj źródło. I jest przenośna: formułuje zasadę, która mogłaby mieć zastosowanie poza tą jedną pracą.
Konkretne uwagi szybko naprawiają bieżącą pracę. Wyjaśniające uwagi pomagają agentowi podjąć właściwą decyzję w podobnych sprawach w innych miejscach tej samej pracy. Przenośne uwagi to te, które warto awansować do pamięci: kiedy już trzy razy napisałeś w uwagach każda liczba musi mieć źródło, to zdanie należy do pliku pamięci projektu albo odpowiedniego przepisu, żeby każdy przyszły szkic się od niego zaczynał.
Uwaga naprawia szkic. Uwaga awansowana do pamięci naprawia każdy kolejny szkic.
Kolejność ma znaczenie. Przeglądasz i piszesz konkretne, wyjaśniające uwagi. Agent poprawia. Ty sprawdzasz poprawkę. Potem, jeśli uwaga była przenośna, aktualizujesz pamięć albo przepis. Ten ostatni krok jest najczęściej pomijany, bo zanim poprawka zostanie zatwierdzona, chcesz już iść dalej. Ale to krok, który zamienia przegląd w ulepszenie, i zwykle zajmuje niecałą minutę.
Niektóre uwagi lepiej napisać jako pytania. Dlaczego ta funkcja ponawia próbę trzy razy? zaprasza agenta do wyjaśnienia rozumowania, co może ujawnić albo dobry powód, którego nie wziąłeś pod uwagę, albo błędne założenie, które możesz skorygować. Pytania są szczególnie przydatne, kiedy podejrzewasz, że coś jest nie tak, ale nie masz pewności, bo pozwalają ci się czegoś dowiedzieć, zanim zaczniesz instruować.
Unikaj uwag czysto emocjonalnych. To nie jest dobre nie daje agentowi nic, z czym mógłby pracować. Nie podoba mi się ton jest niewiele lepsze. Jeśli łapiesz się na pisaniu takich uwag, zatrzymaj się i zapytaj, co konkretnie jest nie tak. Często odkryjesz, że wiesz i potrafisz to powiedzieć. Czasem odkryjesz, że nie wiesz i że problem tkwi w briefie, a nie w pracy.
Uwagi są też zapisem. Przejrzenie od czasu do czasu własnych dawnych uwag pokazuje ci, na czym ci zależy, co ciągle idzie źle i jakie naprawdę są twoje standardy, w odróżnieniu od tego, jakie ci się wydaje, że są. To przydatny surowiec dla plików pamięci, przepisów i następnego przeglądu kwartalnego.
W tym tygodniu po każdym przeglądzie, w którym pisałeś uwagi, zapytaj, które były przenośne. Awansuj co najmniej jedną dziennie do pamięci albo przepisu. Na koniec tygodnia zauważ, czy któreś z problemów, które komentowałeś, przestały się powtarzać. Niektóre przestaną. To nauka, która działa.
Ryc. 58 · Uwagi, które uczą. Konkretna, uzasadniona uwaga naprawia jeden szkic; przeniesiona do pamięci naprawia wszystkie.
Rozdział 59 · Część VI
Od nowa czy naprawa
Kiedy praca agenta wraca z problemami, stajesz przed wyborem: naprawić ją, wysyłając uwagi, które agent ma uwzględnić, albo zrobić od nowa, odrzucając pracę i zaczynając ponownie z lepszym briefem. Większość operatorów domyślnie wybiera naprawę. Wydaje się oszczędna: praca jest prawie gotowa, po co ją wyrzucać? Ale naprawa jest często droższym wyborem, a wiedza, kiedy zrobić od nowa, to jedna z cichszych umiejętności tego fachu.
Rozstrzygające pytanie brzmi: czy kształt jest właściwy? Jeśli praca celuje we właściwy cel i jest zbudowana w sensowny sposób, a problemy ograniczają się do szczegółów, napraw ją. Poprawki szczegółów są szybkie, a agent ma kontekst, żeby zrobić je dobrze. Jeśli kształt jest zły, podejście chybione, struktura niewykonalna, cel źle zrozumiany, zrób od nowa. Naprawianie złego kształtu daje połataną, skompromitowaną wersję czegoś, co nie powinno istnieć, i trwa dłużej niż zaczęcie od zera.
Agenci zmieniają rachunek na korzyść robienia od nowa. Kiedy kolega z zespołu spędził nad czymś dzień, wyrzucenie tego jest kosztowne i demotywujące. Kiedy agent spędził dwadzieścia minut, wyrzucenie kosztuje dwadzieścia minut i żadnych uczuć. Pokusa naprawiania bierze się częściowo z nawyków ukształtowanych w świecie, w którym wytwarzanie było drogie, a te nawyki już nie pasują.
Kiedy wytwarzanie jest tanie, drogie jest łatanie niewłaściwej rzeczy.
Robienie od nowa ma jeszcze jedną zaletę: poprawia brief. Nieudane pierwsze podejście to informacja. Pokazuje ci, co agent źle zrozumiał, jakiego kontekstu mu brakowało, o jakim ograniczeniu zapomniałeś powiedzieć. Kiedy robisz od nowa, piszesz lepszy brief zawierający tę informację, a drugie podejście na tym korzysta. Naprawa tego nie wymusza; poprawiasz objawy w bieżącej pracy, a brief zostaje taki, jaki był, gotów wyprodukować ten sam problem następnym razem.
Jest też kwestia historii wątku. Wątek, który przeszedł kilka rund naprawy, niesie wszystkie te rundy w swoim kontekście. Agent widzi swoje pierwotne błędne podejście, twoje poprawki, swoje częściowe naprawy i twoje kolejne poprawki. Ta historia może go zakotwiczyć, utrudniając czyste przejście do lepszego podejścia. Świeży wątek z lepszym briefem zaczyna bez kotwicy.
Przydatną regułą kciuka jest limit dwóch rund. Jeśli praca przeszła dwie rundy naprawy i wciąż nie jest dobra, zatrzymaj się i zrób ją od nowa. Do tego czasu problemy niemal na pewno dotyczą kształtu, jakkolwiek wyglądały na początku, a trzecia runda naprawy rzadko odnosi sukces tam, gdzie dwie zawiodły.
Kiedy już robisz od nowa, zachowaj to, co było przydatne. Nieudane podejście mogło odkryć coś prawdziwego: ograniczenie w kodzie, fakt dotyczący danych, ślepy zaułek wart odnotowania. Umieść te odkrycia w nowym briefie. Od nowa nie znaczy zapomnieć. Znaczy zacząć wytwarzanie jeszcze raz ze wszystkim, czego się nauczyłeś, i bez niczego poplątanego.
W tym tygodniu zadawaj pytanie o kształt każdej pracy, która wraca z problemami. Tam, gdzie kształt jest zły, rób od nowa z lepszym briefem, zamiast wysyłać uwagi. Śledź, ile trwa robienie od nowa w porównaniu z tym, ile trwałaby naprawa. Większość operatorów stwierdza, że robienie od nowa jest szybsze częściej, niż się spodziewali, a drugie podejście jest zauważalnie lepsze.
Ryc. 59 · Od nowa czy naprawa. Dobry kształt się naprawia; zły kształt albo dwie nieudane rundy robi się od nowa.
Rozdział 60 · Część VI
Gust to umiejętność przeglądu
Po sprawdzeniach, dowodach, diffach i kształcie jest jeszcze jeden filtr, który operatorzy stosują, często go nie nazywając: gust. Czy ta praca jest nie tylko poprawna, ale dobra? I nie tylko dobra, ale dobra w taki sposób, jaki chcesz kojarzyć ze swoim nazwiskiem? Gust to ostatni i najwęższy filtr przeglądu i jeden z niewielu, których agenci nie potrafią jeszcze zastosować w twoim imieniu.
Wyobraź sobie filtry jako lejek. Na górze bardzo dużo pracy jest poprawnej: spełnia brief, przechodzi sprawdzenia, robi to, o co proszono. Mniej jest dobrej: dobrze wykonanej, jasnej, odpowiednio prostej, przyjemnej w użyciu albo lekturze. Jeszcze mniej jest twojej: niosącej te szczególne wybory i standardy, po których rozpoznaje się twoją pracę. Lejek się zwęża, bo każdy filtr trudniej zadowolić i trudniej opisać.
Agenci są dziś bardzo dobrzy w wytwarzaniu poprawnej pracy i często dobrzy w wytwarzaniu dobrej. Najtrudniej przychodzi im wytwarzanie pracy, która odzwierciedla twój konkretny gust, bo gust jest w dużej mierze milczący. Poznajesz go, kiedy go widzisz. Z trudem go zapisujesz. I dlatego to ta część standardu, którą najczęściej trzeba zastosować przy przeglądzie, osobiście, po wykonaniu pracy.
Poprawność to podłoga. Gust to podpis.
Gust można kształcić i częściowo przekazywać. Kształcić, bo stajesz się w nim lepszy, zwracając uwagę: dostrzegając, co podziwiasz w cudzej pracy i dlaczego, dostrzegając, co przeszkadza ci we własnej i dlaczego. Przekazywać, bo możesz uchwycić jego części w przykładach, w pamięci, w przepisach i w uwagach, które wyjaśniają, a nie tylko poprawiają. Za każdym razem, gdy zapisujesz wolimy jedno jasne zdanie od dwóch ostrożnych albo żadnych ilustracji dekoracyjnych, tylko takie, które coś wyjaśniają, przenosisz trochę swojego gustu z milczącego w wypowiedziany, a agenci są odrobinę bliżej.
Ale gustu nie należy delegować w całości, i jest ku temu powód wykraczający poza możliwości agentów. Gust to to, czym twoja praca różni się od pracy wszystkich innych. Jeśli wszyscy oddadzą swój gust tym samym agentom, praca wszystkich zacznie się upodabniać. Operator, który przy przeglądzie wciąż stosuje własny gust, który odrzuca generycznie kompetentne na rzecz szczególnego, wytwarza pracę, która się wyróżnia właśnie dlatego, że przeszła przez wrażliwość jednej osoby.
Gust to także hamulec dla ilości. Agenci sprawiają, że łatwo wytwarzać duże ilości akceptowalnej pracy. Gust to to, co powstrzymuje cię przed wypuszczeniem jej całej. Mówi: to jest w porządku, ale nie dość dobre, żeby nosić nasze nazwisko, więc nie wychodzi. Taka odmowa jest niewygodna, bo praca jest pod ręką i jej publikacja wymagałaby jednego kliknięcia. To jednak ona sprawia, że jakość tego, co wytwarzasz, nie osuwa się w dół, gdy rośnie ilość.
W tym tygodniu dodaj na końcu każdego przeglądu jedno pytanie: czy to jest moje? Nie tylko akceptowalne, nie tylko poprawne, ale coś, z czym chętnie byś był kojarzony. Tam, gdzie odpowiedź brzmi nie, powiedz jednym zdaniem dlaczego i zobacz, czy to zdanie nie należy do twojej pamięci. Powoli agenci nauczą się części twojego gustu. Reszta pozostanie twoja, i tak właśnie powinno być.
Ryc. 60 · Gust to umiejętność przeglądu. Praca zawęża się od poprawnej przez dobrą do twojej, filtra najtrudniejszego dla agentów.
Część VII
Dyscyplina wydań
Pull requesty, automerge i małe wydania.
Rozdział 61 · Część VII
Wydawaj mało, wydawaj często
Najbardziej niezawodna dyscyplina wydań dla jednoosobowego operatora jest zarazem najprostsza: wydawaj mało, wydawaj często. Małe zmiany, każda przejrzana i wypuszczona osobno, w równym strumieniu. Nie duże paczki składane tygodniami i wypuszczane jednym nerwowym kłębem. Agenci ułatwiają to jak nigdy dotąd i jak nigdy dotąd ułatwiają też przeciwny błąd, więc warto podejść do tego świadomie.
Małe zmiany łatwiej przejrzeć. Zmianę, która dotyka trzech plików i robi jedną rzecz, da się zrozumieć w kilka minut. Zmiana, która dotyka trzydziestu plików i robi sześć rzeczy, zajmuje godzinę, a i tak nie masz do końca pewności, czy wszystko zobaczyłeś. Skoro przegląd jest właściwą pracą, a uwaga przy przeglądzie jest skończona, małe zmiany to po prostu wydajny sposób jej wydawania.
Małe zmiany łatwiej bezpiecznie wypuścić. Jeśli coś pójdzie nie tak po małym wydaniu, wiesz dokładnie, co się zmieniło, i możesz szybko to naprawić albo wycofać. Jeśli coś pójdzie nie tak po dużym wydaniu, musisz ustalić, która z wielu zmian to spowodowała, często podczas gdy użytkownicy czekają. Zasięg rażenia małej zmiany jest mały z samej konstrukcji.
Małe paczki nie są bojaźliwe. To sposób, żeby iść szybko i się nie przewrócić.
A małe zmiany utrzymują działalność w ruchu. Kiedy praca kumuluje się w duże wydania, wszystko jest wiecznie skończone w dziewięćdziesięciu procentach, a to najbardziej męczący stan, w jakim może być jakikolwiek projekt.
Agenci komplikują to w szczególny sposób. Potrafią bardzo szybko wytwarzać duże zmiany, a życzliwy agent poproszony o zaimplementowanie funkcji często zaimplementuje za jednym zamachem całą funkcję, jej testy, dokumentację i kilka ulepszeń po drodze. Wynikiem jest duża zmiana, która przyszła szybko, a jej szybkość maskuje jej rozmiar. Rozwiązaniem jest wyraźne briefowanie małych zmian: zaimplementuj tylko warstwę danych; interfejs zrobimy w osobnej zmianie. Dziel rezultat, zanim agent zacznie, a nie po tym, jak skończy.
Przy pracy innej niż kod zasada jest taka sama. Opublikuj pierwszą sekcję poradnika, zamiast czekać na wszystkie dziesięć. Wyślij klientowi pierwszy szkic najważniejszej strony, a nie całego serwisu. Wypuść zbiór danych z podstawowymi polami, a dodatki dołóż później.
Istnieje jeden uczciwy zarzut: niektórych rzeczy naprawdę nie da się wypuścić w połówkach. Migracja bazy danych i zależny od niej kod mogą musieć pójść razem. Nowy projekt graficzny może wyglądać na zepsuty, jeśli wyjdzie tylko w połowie. W takich przypadkach szukaj sposobów, żeby i tak wydawać mało: schowaj nową pracę za przełącznikiem domyślnie wyłączonym, najpierw wypuść migrację w sposób wstecznie zgodny, wydaj najpierw sobie, zanim wydasz wszystkim. Większość dużych zmian da się pokroić, jeśli pomyślisz o tym, zanim zacznie się praca.
W tym tygodniu przyjrzyj się rozmiarowi wszystkiego, co wypuszczasz. Jeśli przegląd któregokolwiek pojedynczego wydania zajął więcej niż pół godziny, zapytaj, jak można je było podzielić. Potem zbriefuj następną podobną pracę jako dwa albo trzy mniejsze kawałki. Zauważ, o ile spokojniej wypuszcza się rzeczy, kiedy każde wydanie jest czymś, co w pełni rozumiesz.
Ryc. 61 · Wydawaj mało, wydawaj często. Jedno duże wydanie obok strumienia małych oraz trzy sposoby cięcia dużej pracy.
Rozdział 62 · Część VII
Pull request jako ślad na papierze
Dla każdego, czyja praca żyje w repozytorium kodu, pull request jest naturalną jednostką wydania: proponowaną zmianą, z opisem, sprawdzeniami i dyskusją, czekającą na scalenie. Większość operatorów myśli o nim jak o bramce, miejscu, gdzie odbywa się przegląd, zanim kod wejdzie do środka. I nim jest. Ale dla jednoosobowej działalności jest równie cenny jako coś innego: ślad na papierze. Każdy pull request to trwały, przeszukiwalny zapis tego, co się zmieniło, dlaczego i jakie dowody za tym stały.
Ten zapis jest tylko tak dobry, jak to, co w nim umieścisz. Pull request z tytułem aktualizacje i pustym opisem to bramka bez śladu na papierze. Pół roku później, kiedy próbujesz zrozumieć, dlaczego zmieniło się jakieś zachowanie, nie mówi ci nic. Pull request z jasnym tytułem, opisem powodu i notą o dowodach to mały kawałek dokumentacji, który odpowie na to pytanie w kilka sekund.
Pomyśl o dobrym pull requeście jak o czterech warstwach. Tytuł określa rezultat, słowami, które zrozumiałby obcy: Importer obsługuje puste wiersze bez wysypywania się. Opis podaje dlaczego: jaki problem to rozwiązuje, jakie podejście przyjęto, jakie alternatywy odrzucono. Dowody wymieniają sprawdzenia: jakie testy dodano, co zweryfikowano ręcznie, ewentualne zrzuty ekranu. A diff pokazuje dokładnie, co się zmieniło. Opis to warstwa, której najczęściej brakuje, i ta, której najbardziej będziesz potrzebować później.
Scalony pull request to list do siebie z przyszłości. Pisz go tak, jakby ten ktoś miał go przeczytać.
Agenci dobrze piszą opisy pull requestów, kiedy się ich o to poprosi, a wiele narzędzi agentowych tworzy dziś pull requesty z opisami domyślnie. Korzystaj z tego, ale przeglądaj opis tak, jak przeglądasz kod. Agenci zwykle opisują, co zrobili, a nie dlaczego było to potrzebne, a dlaczego to część, którą możesz znać tylko ty. Jedno twoje zdanie na górze, wyjaśniające powód zmiany w kategoriach projektu, zamienia kompetentny opis w użyteczny zapis.
Powiąż pull request z resztą swojego systemu. Jeśli realizuje decyzję, wspomnij wpis w dzienniku decyzji. Jeśli naprawia coś po incydencie, wspomnij notatkę z incydentu. Jeśli kończy następny ruch projektu, zaktualizuj rejestr. Te powiązania są tanie do zrobienia w danej chwili i bardzo trudne do odtworzenia później.
Przy pracy, która nie żyje w repozytorium, ta sama idea ma zastosowanie w innej formie. Historia wersji dokumentu, dziennik zmian zbioru danych, krótka notatka w folderze projektu zapisująca, co opublikowano i dlaczego: każde z nich to ślad na papierze. Medium się różni. Dyscyplina zostawiania zapisu przy każdym wydaniu nie.
W tym tygodniu spójrz na swoje ostatnie pięć scalonych pull requestów albo ich odpowiedników. Czy obcy zrozumiałby z każdego z nich, co się zmieniło i dlaczego? Jeśli nie, napisz lepszy opis dla następnych pięciu. Poproś agenta o szkic, a potem sam dopisz dlaczego. Za kilka miesięcy zaczniesz znajdować potrzebne odpowiedzi we własnej historii, a to jedna z cichych przyjemności prowadzenia zadbanej działalności.
Ryc. 62 · Pull request jako ślad na papierze. Pull request jako cztery warstwy, od tytułu z efektem po diff, z linkami na zewnątrz.
Rozdział 63 · Część VII
Automerge i jego warunki
Wiele platform repozytoriów pozwala, by pull request scalił się sam automatycznie, gdy spełni warunki: sprawdzenia przechodzą, wymagane przeglądy są zrobione, nie ma konfliktów. Dla jednoosobowego operatora pracującego z agentami automerge jest bardzo kuszący. Praca agenta przychodzi, jej sprawdzenia się uruchamiają, a jeśli przejdą, scala się, zanim kiwniesz palcem. Proces wydań działa, kiedy śpisz. To także sposób na wypuszczanie rzeczy, na które nie spojrzałeś, więc zasługuje na staranne przemyślenie.
Pytanie nie brzmi, czy automerge jest dobry, czy zły. Brzmi, które zmiany mogą z niego korzystać. Odpowiedź zależy od dwóch rzeczy: ryzyka zmiany i siły sprawdzeń. Zmiany niskiego ryzyka z mocnymi sprawdzeniami to dobrzy kandydaci. Zmiany wysokiego ryzyka albo takie, których sprawdzenia są słabe, nie. Decyzja to rozwidlenie: albo zmiana jest na tyle bezpieczna, żeby scalić ją na podstawie samych sprawdzeń, albo wymaga ręcznego scalenia po przeglądzie.
Co sprawia, że zmiana jest niskiego ryzyka? Dotyczy obszaru dobrze pokrytego testami. Łatwo ją odwrócić. Nie dotyczy pieniędzy, bezpieczeństwa, danych osobowych ani niczego, od czego użytkownicy krytycznie zależą. To rodzaj zmiany, który wiele razy wcześniej przeszedł dobrze. Aktualizacje zależności, które przechodzą pełny zestaw testów, poprawki dokumentacji, małe refaktoryzacje w dobrze przetestowanym kodzie i zmiany treści na mało odwiedzanych stronach to typowi kandydaci.
Automerge nie usuwa przeglądu. Przenosi go do sprawdzeń, więc lepiej, żeby sprawdzenia były dobre.
Co sprawia, że sprawdzenia są mocne? To, że naprawdę nie przeszłyby, gdyby zmiana była błędna. Zestaw testów obejmujący główne ścieżki i przypadki brzegowe. Budowanie, które wyłożyłoby się na błędzie typów. Wizualne sprawdzenie, które wyłapałoby rozsypany układ. Jeśli nie masz pewności, że sprawdzenia wyłapałyby złą zmianę, automerge to po prostu scalanie bez przeglądu, czyli uprzejma nazwa na nadzieję.
Ustal warunki wprost. Większość platform pozwala wymagać przejścia konkretnych sprawdzeń, wymagać etykiet albo wymagać, żeby zmieniane były tylko określone ścieżki. Używaj tego do egzekwowania swojej polityki, zamiast polegać na pamiętaniu o niej. Częstym wzorcem jest dopuszczanie automerge tylko dla pull requestów z konkretną etykietą, którą nakładasz ty albo zaufany przepis, i tylko wtedy, gdy przechodzi każde wymagane sprawdzenie. Zmiany dotykające wrażliwych ścieżek, takich jak kod płatności czy konfiguracja, można całkowicie wyłączyć.
Przeglądaj automatycznie scaloną pracę po fakcie, przynajmniej pobieżnie. Automerge oznacza, że nie byłeś w pętli w momencie scalenia, a nie że nigdy nie powinieneś patrzeć. Szybkie przejrzenie w porannym przeglądzie tego, co scaliło się w nocy, pozwala ci wiedzieć, jak zmienia się baza kodu, i wyłapać wzorzec problemów, zanim stanie się kryzysem. Jeśli kiedykolwiek automatycznie scali się coś złego, potraktuj to jako incydent: ustal, który warunek powinien był to zatrzymać, i zaostrz go.
W tym tygodniu zapisz swoją politykę automerge w zdaniu albo dwóch: które zmiany mogą się scalać automatycznie i które sprawdzenia muszą przejść. Jeśli jeszcze nie używasz automerge, wybierz na początek jedną bezpieczną kategorię. Jeśli używasz, sprawdź, czy twoje faktyczne ustawienia odpowiadają polityce. Często nie odpowiadają, a ta szczelina to dokładnie miejsce, przez które pewnego dnia coś się prześlizgnie.
Ryc. 63 · Automerge i jego warunki. Trzy bramki decydują, czy zmiana może scalić się sama, czy wymaga człowieka.
Rozdział 64 · Część VII
Sprawdzenia, którym ufasz
Każdy proces wydań ma sprawdzenia: testy, budowanie, lintery, sprawdzanie typów, porównania wizualne, sprawdzanie linków, cokolwiek potrzebuje projekt. Z czasem większość projektów gromadzi ich mnóstwo. Pytanie, które się liczy, nie brzmi, ile masz sprawdzeń, tylko ilu ufasz: ile z nich faktycznie by nie przeszło, gdyby coś ważnego poszło nie tak. To są sprawdzenia, które gryzą. One i tylko one są prawdziwą bramką.
Zacznij od odróżnienia sprawdzeń, które gryzą, od tych, które tylko istnieją. Sprawdzenie, które gryzie, wyłapało w ostatnich miesiącach coś prawdziwego albo masz pewność, że by wyłapało. Sprawdzenie, które tylko istnieje, zawsze przechodzi, a ty nie wiesz dokładnie, co by wyłapało. Niestabilne sprawdzenie, czyli takie, które czasem nie przechodzi bez powodu, jest gorsze niż bezużyteczne, bo uczy cię ignorować porażki i puszczać ponownie, aż będzie zielono. Każdy rodzaj wymaga innego traktowania.
Sprawdzenia, które gryzą, powinny być wymagane: żadnego scalenia bez nich, automatycznego czy nie. Sprawdzenia, które tylko istnieją, należy zbadać. Niektóre warto zachować, bo chronią przed rzadkimi, ale poważnymi problemami. Inne to szum i można je usunąć, dzięki czemu proces jest szybszy, a sygnał czytelniejszy. Niestabilne sprawdzenia należy natychmiast naprawić albo wyłączyć. Sprawdzenie, które krzyczy „wilk!”, podkopuje każde inne, bo uczy cię, że czerwone nie zawsze znaczy złe.
Bramka jest tak mocna, jak sprawdzenia, którym naprawdę byś uwierzył.
Agenci mogą pomóc wzmocnić sprawdzenia i to jedno z najlepszych zastosowań wolnej mocy agentów. Poproś agenta, żeby przyjrzał się ważnemu modułowi i zaproponował testy jego przypadków brzegowych. Poproś go, żeby celowo wprowadził mały błąd i zobaczył, czy istniejące testy go wyłapią; jeśli nie, znalazłeś lukę. Poproś go, żeby znalazł niestabilne testy, puszczając zestaw kilka razy i porównując wyniki. Każda z tych czynności zamienia mgliste zaufanie do twoich sprawdzeń w zmierzone.
Zwracaj szczególną uwagę na sprawdzenia rzeczy, które liczą się najbardziej. Jeśli najważniejsze, co robi twój projekt, to poprawne wyliczanie faktur, sprawdzenia wyliczania faktur powinny być najmocniejsze, jakie masz, z testami dla każdego przypadku brzegowego, jaki przyjdzie ci do głowy. Jeśli najważniejsze jest to, żeby strona szybko ładowała się użytkownikom na wolnych łączach, powinno istnieć sprawdzenie, które nie przeszłoby, gdyby tak nie było. Sprawdzenia powinny odzwierciedlać ryzyka, a największe ryzyka zasługują na najostrzejsze zęby.
Przy pracy poza kodem sprawdzenia wyglądają inaczej, ale zasada obowiązuje. Przepis na pisanie maili do klientów może zawierać sprawdzenie, czy każda liczba ma źródło. Przepis na publikowanie wpisów może zawierać sprawdzenie, czy każdy link działa i każdy obraz ma tekst opisowy. To sprawdzenia w tym samym sensie: rzeczy, które muszą przejść przed wydaniem i które wyłapałyby prawdziwy problem.
W tym tygodniu wypisz każde sprawdzenie w procesie wydań jednego projektu i oznacz każde jako gryzie, istnieje albo niestabilne. Napraw albo usuń niestabilne. W najważniejszej części projektu poproś agenta, żeby spróbował przemycić mały błąd przez sprawdzenia. Jeśli mu się uda, znalazłeś następne sprawdzenie do napisania.
Ryc. 64 · Sprawdzenia, którym ufasz. Testy podzielone na gryzące, tylko istniejące i zawodne, każde z własnym leczeniem.
Rozdział 65 · Część VII
Numerowane przebiegi
Dużych prac nie trzeba robić w jednym heroicznym podejściu. Można je robić w przebiegach: pierwsza wersja, która trafia w kształt, druga, która wypełnia szczegóły, trzecia, która szlifuje. Każdy przebieg to kompletna jednostka, którą da się przejrzeć, z własnym numerem, i każdy buduje na poprzednim. Tak od zawsze pracowało wielu pisarzy, projektantów i inżynierów, a do pracy agentów pasuje to znakomicie.
Kluczem jest numerowanie przebiegów i nadanie każdemu odrębnego celu. Przebieg pierwszy: struktura i szkielet, wszystko obecne, ale zgrubne. Przebieg drugi: treść, każda część porządnie wypełniona. Przebieg trzeci: jakość, przypadki brzegowe obsłużone, język dociśnięty, szczegóły sprawdzone. Powiedz agentowi, w którym przebiegu jest i do czego ten przebieg służy. Agent poproszony o przebieg pierwszy nie zmarnuje wysiłku na szlifowanie. Agent poproszony o przebieg trzeci nie będzie zmieniał struktury.
Numerowane przebiegi bardzo ułatwiają przegląd. Przebieg pierwszy przeglądasz tylko pod kątem kształtu, używając pierwszej połowy przeglądu w dwóch przebiegach. Przebieg drugi przeglądasz pod kątem treści. Przebieg trzeci pod kątem jakości i gustu. Na każdym etapie szukasz jednego rodzaju problemów, co jest znacznie mniej męczące i znacznie bardziej niezawodne niż szukanie wszystkich rodzajów problemów naraz. A ponieważ każdy przebieg jest przeglądany, zanim zacznie się następny, problemy są wyłapywane w najtańszym momencie.
Nie proś o doskonałość. Proś o przebieg pierwszy, a potem o drugi.
Przebiegi sprawiają też, że postęp jest widoczny. Zamiast dużej pracy, która jest gdzieś pomiędzy zaczętą a skończoną, masz jasny zapis: przebieg pierwszy zrobiony, przebieg drugi w toku. To zgrabnie mieści się w rejestrze i notatkach przekazania. Ułatwia też zatrzymanie się we właściwym miejscu. Niektóre prace potrzebują tylko dwóch przebiegów. Niektóre czterech. Numerowanie pozwala ci zdecydować po każdym przeglądzie, czy kolejny przebieg jest wart zachodu.
Zachowuj każdy przebieg. Zapisz przebieg pierwszy, zanim zaczniesz drugi, jako wersję w repozytorium, numerowany plik albo kopię w folderze projektu. Jeśli przebieg drugi pójdzie źle, możesz wrócić do pierwszego bez żadnych strat. Jeśli zechcesz później zrozumieć, jak praca ewoluowała, przebiegi opowiedzą tę historię. Agenci czasem pogarszają późniejszym przebiegiem to, co było we wcześniejszym, zwłaszcza gdy proszeni są o ulepszenie czegoś, co już było dobre, a posiadanie wcześniejszej wersji pod ręką ułatwia zauważenie tego i powrót.
Przebiegi sprawdzają się przy niemal każdym rodzaju wyniku. Raport: konspekt, szkic, redakcja. Funkcja: model danych, logika, interfejs. Projekt graficzny: układ, treść, szlif wizualny. Zbiór danych: schemat, wypełnienie, walidacja. W każdym przypadku obowiązuje ta sama dyscyplina: nazwij przebieg, określ jego cel, przejrzyj go pod kątem tego celu, zachowaj go, potem zacznij następny.
W tym tygodniu weź jedną poważniejszą pracę i przeprowadź ją w wyraźnych, numerowanych przebiegach. Zbriefuj każdy przebieg osobno, z jego celem. Przejrzyj każdy pod kątem jego własnego rodzaju problemów. Zachowaj każdą wersję. Na koniec porównaj, jak poszła ta praca, z tym, jak zwykle idzie ci jedno wielkie podejście. Różnica zwykle leży mniej w końcowej jakości, która może być podobna, a bardziej w tym, o ile spokojniejsza była droga.
Ryc. 65 · Numerowane przebiegi. Praca w numerowanych przebiegach, każdy przeglądany pod jeden rodzaj problemu i zachowany.
Rozdział 66 · Część VII
Wydanie bije doskonałość, zwykle
Istnieje stara zasada, uwielbiana przez każdego, kto kiedykolwiek cokolwiek wypuścił: wydanie bije doskonałość. Dobra rzecz w świecie jest warta więcej niż doskonała rzecz w folderze szkiców. Użytkownicy mogą zareagować na to, co istnieje; nie mogą zareagować na to, co wciąż szlifujesz. Agenci sprawiają, że ta zasada jest aktualniejsza niż kiedykolwiek, bo przepaść między wystarczająco dobrym a doskonałym jest często znacznie mniejsza, niż się wydaje, a czas spędzony na jej zasypywaniu lepiej zwykle wydać na następną rzecz.
Ale zasada ma gwiazdkę, a operatorzy, którzy o gwiazdce zapominają, dowiadują się o niej w bolesny sposób. Wydanie bije doskonałość, kiedy koszt pomyłki jest niski, a koszt cofnięcia mały. Kiedy którykolwiek z tych kosztów jest wysoki, rachunek się zmienia, a odrobina więcej szlifu przed wydaniem to nie perfekcjonizm, tylko roztropność.
Pomyśl o tym na dwóch osiach. Jedna to ile szlifu dostała praca. Druga to jak kosztowne byłoby jej cofnięcie, gdyby okazała się błędna. Pracę tanią do cofnięcia można wypuścić przy umiarkowanym szlifie: jeśli coś jest nie tak, naprawisz to jutro. Praca droga do cofnięcia, mail do każdego klienta, zmiana sposobu naliczania pieniędzy, publiczne oświadczenie, usunięcie, wymaga więcej szlifu, zanim wyjdzie. Róg, w którym należy wypuszczać od razu, to niski koszt cofnięcia i wystarczający szlif, a tam właśnie leży większość pracy.
Wypuszczaj to, co da się cofnąć. Szlifuj to, czego się nie da.
Pułapką perfekcjonistów jest traktowanie każdej pracy tak, jakby była droga do cofnięcia. Wpis na blogu można edytować po publikacji. Stronę można naprawić w następnym wydaniu. Funkcję można ulepszyć w przyszłym tygodniu. Nic z tego nie musi być doskonałe przed wydaniem; musi być dobre i poprawne. Przetrzymywanie tego dla szlifu to nie ostrożność. To zwłoka, a zwłoka ma swoje koszty.
Pułapka wypuszczaczy jest odwrotna: traktowanie wszystkiego jako taniego do cofnięcia, bo większość rzeczy taka jest. Operator z silną skłonnością do wydawania, uzbrojony w szybkich agentów, może wypchnąć coś nieodwracalnego z taką samą swobodną szybkością jak coś błahego. Nawyk, który temu zapobiega, to oznaczanie pracy kosztem cofnięcia, zanim zostanie przejrzana, jako część briefu. Niski koszt cofnięcia: przejrzyj lekko, wypuść szybko. Wysoki koszt cofnięcia: przejrzyj dokładnie, rozważ wydanie etapami, prześpij się z tym, jeśli możesz.
Istnieje droga środka dla pracy drogiej do cofnięcia, która mimo to musi wyjść: spraw, żeby jej cofnięcie było tańsze. Wypuść najpierw dla małej grupy odbiorców. Schowaj ją za przełącznikiem, który możesz wyłączyć. Wyślij mail sobie i koledze, zanim wyślesz go do całej listy. Wiele nieodwracalnych działań da się z odrobiną namysłu uczynić częściowo odwracalnymi, a ten namysł jest często tańszy niż dodatkowy szlif.
W tym tygodniu oznaczaj wszystko, co wypuszczasz, kosztem cofnięcia: niskim albo wysokim. Niskie wypuszczaj, gdy tylko są dobre i poprawne. Wysokim daj dodatkowo staranny przegląd i, gdzie się da, drogę powrotu. Zauważ, o ile szybciej poruszają się niskie, kiedy przestajesz traktować je jak wysokie.
Ryc. 66 · Wydanie bije doskonałość, zwykle. Praca rozmieszczona wg szlifu i kosztu cofnięcia; tanie do cofnięcia i dość dobre wychodzi teraz.
Rozdział 67 · Część VII
Nota do wydania
Każde wydanie zasługuje na notę. Nie długą i niekoniecznie publiczną, ale krótki zapis sporządzony w momencie wydania, mówiący, co wyszło, dlaczego, co może pójść nie tak i jak to cofnąć. Zajmuje to dwie minuty. To najużyteczniejsze dwie minuty, jakie możesz spędzić w chwili wydania, i niemal zawsze są pomijane.
Nota ma cztery części. Co: zmiana, w zdaniu, które zrozumiałby użytkownik albo ty z przyszłości. Eksporty zawierają teraz zarchiwizowane elementy. Dlaczego: powód, w skrócie. Użytkownicy prosili o pełną historię. Ryzyko: co mogłoby pójść nie tak, według twojej uczciwej oceny. Duże konta mogą zauważyć wolniejsze eksporty. Cofnięcie: jak to odwrócić, jeśli zajdzie potrzeba. Wycofać scalenie; bez zmian w danych. Cztery linijki zebrane wokół wydania jak szprychy wokół piasty.
Linijki o ryzyku i cofnięciu to te, które się opłacają. Zapisanie, co może pójść nie tak, zmusza cię, żebyś przez chwilę o tym pomyślał, co czasem ujawnia problem przed wydaniem. A zapisanie, jak to cofnąć, oznacza, że jeśli coś jednak pójdzie nie tak, o niewygodnej porze, nie musisz wymyślać odzyskiwania pod presją. Czytasz notę i postępujesz według niej. Operatorzy, którym zdarzyło się wymyślać wycofanie o północy z zaniepokojonym klientem na linii, zwykle bardzo szybko potem przyjmują noty do wydań.
Czas na zapisanie cofnięcia jest wtedy, zanim będziesz go potrzebować.
Gdzie powinny mieszkać noty? Tam, gdzie je znajdziesz, kiedy coś pójdzie nie tak. Dobrze sprawdza się plik dziennika zmian w projekcie, uzupełniany przy każdym wydaniu. Podobnie sekcja w opisie pull requestu albo wpis w notesie oznaczony nazwą projektu. Przy wydaniach, które widzą użytkownicy, publiczny dziennik zmian to osobny i przydatny dokument, ale nie zastępuje prywatnej noty, która może być szczersza co do ryzyk.
Agenci potrafią naszkicować noty do wydań na podstawie pull requestu i diffu, i to rozsądne ich zastosowanie. Ale zwłaszcza linijka o ryzyku wymaga twojej uwagi, bo zależy od wiedzy, której agent może nie mieć: którzy klienci są wrażliwi na które zmiany, co już wcześniej poszło nie tak, czym po cichu się martwisz. Zredaguj szkic, zanim mu zaufasz.
Noty do wydań zasilają też twoje dłuższe przeglądy. Pod koniec tygodnia albo kwartału ponowne przeczytanie not daje precyzyjny, datowany zapis tego, co wyszło, jakie ryzyka zaakceptowałeś i które z nich się zmaterializowały. To znakomity materiał do nauki: widzisz, czy twoje oceny ryzyka są zwykle zbyt pesymistyczne, czy zbyt optymistyczne, i możesz je skorygować.
Jest też skromna korzyść dyscyplinująca. Jeśli nie potrafisz napisać sensownej linijki co, wydanie prawdopodobnie upycha za dużo. Jeśli nie potrafisz napisać cofnięcia, wydanie może być bardziej nieodwracalne, niż sądziłeś. Nota to ostatnie sprawdzenie przebrane za papierkową robotę.
W tym tygodniu pisz czterolinijkową notę do każdego wydania. Trzymaj je w jednym miejscu na projekt. Przy piątkowym zamknięciu przeczytaj je ponownie. Zauważ, które ryzyka nazwałeś, które się wydarzyły, a które nie. To drobne ćwiczenie uczyni cię lepszym sędzią ryzyka szybciej niż jakakolwiek ilość lektury na ten temat.
Ryc. 67 · Nota do wydania. Nota do wydania jako cztery ramiona: co, dlaczego, ryzyko i jak cofnąć.
Rozdział 68 · Część VII
Wycofanie to funkcja
Po wydaniu coś idzie nie tak. Nieczęsto, jeśli wydajesz mało i dobrze przeglądasz, ale czasem, a kiedy tak się dzieje, najważniejsze pytanie brzmi, jak szybko możesz przywrócić wszystko do poprzedniego stanu. Działalność, która potrafi wycofać zmianę w minutę, może sobie pozwolić na śmiałe wydawanie. Działalność, która nie potrafi wycofać, musi wydawać nerwowo, powoli i rzadko. Wycofanie to nie procedura awaryjna. To funkcja zdrowego procesu wydań i powinno być zaprojektowane, przetestowane i utrzymywane w działaniu.
Sekwencja, której chcesz, jest krótka. Wypuszczasz zmianę. Ty albo sprawdzenie wykrywacie problem. Wycofujesz. Usługa zostaje przywrócona i dopiero wtedy badasz sprawę. Kolejność ma znaczenie. Instynkt, kiedy coś się psuje, podpowiada diagnozowanie na miejscu i naprawianie do przodu, bo jesteś dość pewny, że wiesz, co jest nie tak, a poprawka jest pewnie mała. Czasem to działa. Często poprawka wprowadza drugi problem i nagle debugujesz pod presją, a użytkownicy są dotknięci. Wycofanie najpierw zdejmuje presję. Możesz spokojnie badać, kiedy wszystko działa.
Przy kodzie w repozytorium wycofanie jest zwykle proste: odwróć scalenie i wdróż ponownie. Upewnij się, że wiesz dokładnie, jak to zrobić w każdym projekcie, i że to faktycznie działa. Niektóre konfiguracje wdrożeń czynią to banalnym; inne zaskakująco niewygodnym. Dowiedz się, zanim będziesz musiał. Procedura wycofania, której nigdy nie wypróbowano, to hipoteza, a nie procedura.
Jeśli nie możesz tego cofnąć, to tego nie wydałeś. Zobowiązałeś się do tego.
Niektóre zmiany trudniej wycofać niż inne i te zasługują na dodatkowy namysł przed wydaniem. Zmian w bazie danych, które usuwają albo przekształcają dane, nie da się po prostu odwrócić, bo starych danych już nie ma. Maili i wiadomości, raz wysłanych, nie da się odwysłać. Zmiany, od których zależą inne systemy, mogą po wycofaniu zostawić te systemy w dziwnym stanie. Dla nich zaplanuj wycofanie przed wydaniem: zrób kopię zapasową danych, wprowadź zmianę w sposób wstecznie zgodny albo wydaj ją etapami, tak żeby najpierw zobaczyła ją mała grupa odbiorców.
Agenci mogą pomóc w planowaniu wycofań. W ramach briefu do każdej ryzykownej zmiany poproś agenta, żeby opisał, jak można ją odwrócić i co zostałoby utracone. Jeśli odpowiedź jest skomplikowana albo wiąże się z utratą danych, to sygnał, żeby przebudować zmianę, zanim wyjdzie. Wielu agentów na prośbę wpisze też kroki wycofania do opisu pull requestu, co umieszcza je dokładnie tam, gdzie zajrzysz, kiedy będą ci potrzebne.
Po każdym wycofaniu napisz notatkę z incydentu, którą opisuje dalsza część tej książki. Wycofanie przywróciło usługę; notatka dopilnowuje, żeby ten sam problem następnym razem był mniej prawdopodobny. Razem zamieniają zły moment w ulepszenie.
W tym tygodniu wybierz swój najważniejszy projekt i przeprowadź próbne wycofanie. Wypuść nieszkodliwą zmianę, a potem ją odwróć, mierząc, ile trwa całość, i notując każdy krok, który był niewygodny. Napraw niewygodne kroki. Potem zapisz procedurę w runbooku projektu. Prawdopodobnie nigdy nie będziesz jej potrzebować w pośpiechu. Jeśli będziesz, ucieszysz się, że była funkcją, a nie improwizacją.
Ryc. 68 · Wycofanie to funkcja. Gdy wydanie idzie źle: wycofaj, przywróć usługę, potem badaj.
Rozdział 69 · Część VII
Nigdy nie commituj sekretów
Większość zasad w tej książce to ustawienia domyślne, rozsądne punkty wyjścia, które powinieneś dostosować do własnej działalności. Ta nie. Nigdy nie commituj sekretów. Ani do repozytorium, ani do pliku pamięci, ani do współdzielonego dokumentu, ani do briefu, ani do opisu pull requestu, ani do notesu synchronizowanego z chmurą. Hasła, klucze dostępu, tokeny, prywatne ciągi połączeń: żadne z nich nie należą do miejsc, gdzie przechowuje się kod albo notatki.
Powód jest prosty. Repozytoria i notatki są zaprojektowane do kopiowania, udostępniania, synchronizowania i przechowywania na zawsze. Kiedy sekret trafi do historii repozytorium, usunięcie go z bieżącej wersji nie usuwa go z historii, z klonów zrobionych w międzyczasie ani z żadnej usługi, która go zaindeksowała. Sekret, który został zacommitowany, należy uznać za widziany. Część wspólna twojego kodu i sekretu to nie miejsce, gdzie coś się przechowuje. To incydent czekający na odkrycie.
Agenci podnoszą stawkę na dwa sposoby. Po pierwsze, pracują szybko i dotykają wielu plików, więc sekret wklejony do briefu albo znaleziony w pliku konfiguracyjnym może trafić do commita bez twojej wiedzy. Po drugie, są pomocni, a agent debugujący problem z połączeniem może całkiem możliwie wpisać dane uwierzytelniające wprost do kodu, żeby to przetestować, a potem zapomnieć je usunąć.
Sekret w repozytorium nie jest już sekretem. Jest odliczaniem.
Obrony są warstwowe. Trzymaj sekrety w porządnym magazynie, zmiennych środowiskowych albo w mechanizmie zarządzania sekretami, który zapewnia twoja platforma, i wczytuj je w czasie działania. Nigdy nie wklejaj wartości sekretu do briefu; powiedz agentowi, gdzie sekret jest skonfigurowany, i pozwól mu użyć tego mechanizmu. Dopilnuj, żeby pliki z lokalnymi sekretami były wyłączone z kontroli wersji, i sprawdzaj to przy zakładaniu każdego nowego projektu. Włącz skanowanie sekretów w swoich repozytoriach wszędzie, gdzie platforma to oferuje, żeby zacommitowany sekret został wyłapany przy pushu, a nie miesiące później. I umieść w pamięci każdego projektu stałą instrukcję: dane uwierzytelniające i tokeny nigdy nie mogą być wpisywane do kodu, notatek ani commitów.
Jeśli sekret mimo to zostanie zacommitowany, działaj natychmiast i we właściwej kolejności. Najpierw zmień sekret, żeby ujawniona wartość przestała działać. Potem usuń go z repozytorium i, jeśli to stosowne, z historii. Potem sprawdź, czy ujawnionej wartości nie użył ktoś inny, póki była aktywna. Potem napisz notatkę z incydentu i dodaj zabezpieczenie, które by to wyłapało. Zmiana sekretu jako pierwsza to kluczowy krok. Usunięcie linijki bez zmiany sekretu jest jak zmiana etykiety na zamku bez zmiany zamka.
To jedyna zasada w tej książce warta zamienienia w odruch. Za każdym razem, gdy masz zamiar wkleić coś do briefu, notatki albo pliku, zapytaj: czy to sekret? Jeśli tak, zatrzymaj się i znajdź dla niego właściwe miejsce.
W tym tygodniu włącz skanowanie sekretów w każdym repozytorium, które posiadasz, sprawdź, czy lokalne pliki z sekretami są wyłączone z kontroli wersji, i dodaj stałą instrukcję do każdego pliku pamięci. Potem zmień wszystko, co do czego nie masz całkowitej pewności, że nigdy nie zostało zacommitowane. To popołudnie nudnej pracy. Zamyka jedyne drzwi, które nigdy nie powinny być otwarte.
Ryc. 69 · Nigdy nie commituj sekretów. Sekret w kodzie to incydent: najpierw zmień klucz, potem usuń, sprawdź, zanotuj.
Rozdział 70 · Część VII
Gotowe znaczy na żywo
Kiedy coś jest gotowe? Operatorzy odpowiadają na to pytanie różnie, a odpowiedź po cichu kształtuje to, ile faktycznie wychodzi. Niektórzy uznają pracę za gotową, kiedy agent zgłasza ukończenie. Niektórzy, kiedy przechodzi przegląd. Niektórzy, kiedy pull request zostaje scalony. Najbardziej użyteczna odpowiedź, i ta, którą poleca ta książka, jest surowsza: gotowe znaczy na żywo, przed ludźmi, dla których to było, i tam sprawdzone.
Łańcuch od skończonej pracy do gotowej pracy ma kilka ogniw i każde jest miejscem, gdzie rzeczy stają. Praca jest scalona, ale nie wdrożona, bo wdrożenie to osobny krok, którego nikt nie uruchomił. Jest wdrożona, ale nie na żywo, bo siedzi za przełącznikiem, którego nikt nie włączył, albo na serwerze testowym, którego nikt nie odwiedza. Jest na żywo, ale nie sprawdzona, bo założyłeś, że skoro się wdrożyła, to musi działać. Każdy przestój zostawia pracę w stanie, który wydaje się skończony, a skończony nie jest, a w tym stanie zaskakująco wygodnie jest rzeczy zostawiać.
Ostatnie ogniwo, sprawdzone, jest tym, które liczy się najbardziej. Kiedy praca jest już na żywo, spójrz na nią tam. Otwórz stronę na prawdziwym serwisie. Uruchom funkcję tak, jak zrobiłby to użytkownik. Potwierdź, że mail dotarł do prawdziwej skrzynki. Sprawdź, czy dane pojawiają się w prawdziwym panelu. Zajmuje to minutę albo dwie i wyłapuje całą klasę problemów, których nie wyłapie żadna ilość sprawdzeń przed wydaniem: różnice konfiguracji między środowiskami, cache, uprawnienia, usługi zewnętrzne zachowujące się na produkcji inaczej. Praca, która przeszła każde sprawdzenie przed wydaniem, wciąż może zawieść w prawdziwym świecie, a jedynym sposobem, żeby się o tym dowiedzieć, jest spojrzenie.
Scalone to kamień milowy. Na żywo i sprawdzone to wynik.
Takie zdefiniowanie gotowego zmienia zachowanie wcześniej w łańcuchu. Kiedy wiesz, że gotowe znaczy na żywo i sprawdzone, briefujesz z myślą o wydaniu: jak to zostanie wdrożone, jak zostanie włączone, jak sprawdzę to na produkcji? Zauważasz tarcia przy wdrożeniach, bo każde utknięte wdrożenie trzyma coś z dala od gotowości. Planujesz sprawdzenie, zamiast je zakładać. A rejestr staje się uczciwszy, bo projekty nie są oznaczane jako gotowe, dopóki naprawdę takie nie są.
Zmienia to też sposób liczenia. Wcześniejszy rozdział o przepustowości sugerował liczenie ukończeń. Kiedy gotowe znaczy na żywo i sprawdzone, liczenie staje się liczeniem rzeczy, które faktycznie dotarły do ludzi. To mniejsza liczba niż liczba scaleń czy ukończeń i jedyna, która odzwierciedla, co twoja działalność zrobiła dla kogokolwiek.
Przy pracy, która się nie wdraża, zasada daje się przełożyć. Dokument jest gotowy, kiedy osoba, dla której był, otrzymała go i może go otworzyć. Zbiór danych jest gotowy, kiedy jest wczytany tam, gdzie będzie używany, a jego próbka została sprawdzona. Projekt graficzny jest gotowy, kiedy jest w rękach tego, kto go zbuduje albo opublikuje. W każdym przypadku gotowe definiuje się na dalekim końcu łańcucha, a nie przy twoim biurku.
W tym tygodniu zmień swoją definicję gotowego na na żywo i sprawdzone i stosuj ją do wszystkiego. Zauważ, ile rzeczy, które wcześniej nazwałbyś gotowymi, utknęło na wcześniejszym ogniwie. Przepchnij każdą do końca i spójrz na nią tam. Niektóre będą potrzebować drobnej poprawki, którą w przeciwnym razie byś przegapił. Wszystkie będą wreszcie gotowe.
Ryc. 70 · Gotowe znaczy na żywo. Łańcuch od zgłoszenia do sprawdzenia, z miejscami, gdzie praca tylko wydaje się gotowa.
Część VIII
Tygodnie, kwartały i energia
Dłuższe pętle i budżet pod spodem.
Rozdział 71 · Część VIII
Przegląd tygodniowy
Dzień ma swój przegląd i swoje zamknięcie. Tydzień potrzebuje czegoś większego: godziny, raz w tygodniu, w której odsuwasz się od dziennego rytmu i patrzysz na działalność jako całość. Przegląd tygodniowy to miejsce, w którym zauważasz to, czego dni nie potrafią ci pokazać, projekt, który po cichu stanął, wzorzec problemów, zobowiązanie, o którym zapomniałeś, i w którym decydujesz, czemu ma służyć następny tydzień.
Przegląd ma cztery części. Zbierz: zgromadź wszystko, co wydarzyło się w tym tygodniu. Rejestr, notes, noty do wydań, kolejkę odłożonych pomysłów, wszelkie otwarte wątki. Przejrzyj: przeczytaj to, szukając tego, co poszło dobrze, co poszło źle i co się nie ruszyło. Zdecyduj: podejmij decyzje, które wyłonił tydzień, o tym, które projekty pchać, które odłożyć, które wątki zamknąć, które przepisy naprawić. Zaplanuj: naszkicuj następny tydzień, nie szczegółowo, ale w kategoriach dwóch czy trzech rezultatów, które uczyniłyby go dobrym tygodniem.
Decydowanie jest sercem całości. Przegląd tygodniowy, który zbiera i czyta, ale nie decyduje, to przyjemna godzina refleksji bez żadnych skutków. Dopilnuj, żeby przegląd dawał decyzje, zapisane, co najmniej kilka tygodniowo. Odłożyć konspekt kursu do następnego kwartału.Zamknąć trzy zabłąkane wątki przy starej migracji.Dodać sprawdzenie pustego pliku do przepisu na import.Główny rezultat przyszłego tygodnia: wypuścić funkcję eksportu. To są zdania, które zamieniają refleksję w sterowanie.
Dzień utrzymuje cię w ruchu. Tydzień utrzymuje cię na kursie.
Wybierz stałą porę i ją chroń. Wielu operatorów woli koniec tygodnia pracy, kiedy tydzień jest świeży w pamięci, a przegląd może jednocześnie posłużyć za porządne zamknięcie przed weekendem. Inni wolą początek tygodnia, kiedy są wypoczęci, a planowanie przychodzi naturalnie. Oba warianty działają. Nie działa przeglądanie wtedy, kiedy znajdzie się wolna godzina, bo żadnej nie znajdziesz.
Agenci mogą wykonać dużą część zbierania. Dobry przepis prosi agenta o przeczytanie tygodniowych wpisów w notesie, rejestru, not do wydań i otwartych wątków oraz o przygotowanie krótkiego zestawienia: co wyszło, co stanęło, co czeka na ciebie, co wygląda na przeterminowane. To zestawienie sprawia, że przegląd jest szybszy i dokładniejszy. Nie zastępuje twojej lektury materiału źródłowego, zwłaszcza notesu, w którym twoje własne słowa często mówią więcej niż jakiekolwiek streszczenie.
Przegląd tygodniowy służy też utrzymaniu maszyny. To naturalny moment, żeby sprawdzić, czy rejestr jest aktualny, przyciąć kolejkę, zamknąć zabłąkane wątki, rzucić okiem na pliki pamięci w poszukiwaniu czegoś nieaktualnego i upewnić się, że nic nie zostało w niejasnym stanie. Dziesięć minut sprzątania co tydzień zapobiega powolnemu narastaniu bałaganu, którego uprzątnięcie wymagałoby w przeciwnym razie całego dnia.
W tym tygodniu zarezerwuj godzinę na przegląd tygodniowy i przeprowadź go w czterech częściach. Zbierz, przejrzyj, zdecyduj, zaplanuj. Zapisz co najmniej pięć decyzji. W przyszłym tygodniu zacznij przegląd od sprawdzenia, czy te decyzje zostały wykonane. Ta prosta pętla, zdecyduj, potem sprawdź, sprawia, że przegląd tygodniowy jest silnikiem, a nie rytuałem.
Ryc. 71 · Przegląd tygodniowy. Zbierz, przejrzyj, zdecyduj i zaplanuj, podzielone między digest agenta a twoją lekturę.
Rozdział 72 · Część VIII
Czysty pokład
W ciągu tygodnia gromadzą się otwarte pętle. Wątek, który zacząłeś i nie skończyłeś. Wiadomość, na którą chciałeś odpowiedzieć. Pomysł w kolejce. Przegląd zrobiony do połowy. Czekający pull request. Notatka dla siebie, żeby czemuś się przyjrzeć. Każda z tych rzeczy jest mała i każda siedzi z tyłu głowy, zużywając okruch uwagi. Razem wytwarzają niski, nieustanny szum spraw niezałatwionych, jedno z najbardziej męczących uczuć, jakich może doświadczać operator.
Oczyszczanie pokładu to praktyka brania raz w tygodniu każdej otwartej pętli i rozprawiania się z nią na jeden z kilku sposobów. Zamknij ją, kończąc, jeśli zajmuje to dwie minuty. Rozstrzygnij ją, wybierając, co wydarzy się dalej, i zapisując to. Odłóż ją, z notatką i warunkiem. Albo porzuć ją, przyjmując, że do tego nie dojdzie, i odpuszczając. Celem nie jest skończenie wszystkiego. Celem jest dopilnowanie, żeby nic nie pozostało w stanie nierozstrzygniętym.
Lejek jest stromy. Zaczynasz od każdej otwartej pętli, jaką zdołasz znaleźć, a będzie ich więcej, niż się spodziewałeś. Większość z nich po przyjrzeniu się wymaga jedynie szybkiej decyzji: ten wątek można zamknąć, ten pomysł porzucić, ta wiadomość wymaga jednolinijkowej odpowiedzi. Mniejsza liczba wymaga prawdziwego namysłu. Na dole każda pętla jest albo zamknięta, albo ma jasny następny krok, a szum cichnie.
Otwarta pętla kosztuje uwagę, czy nad nią pracujesz, czy nie. Rozstrzygnięta nie kosztuje nic.
Znalezienie pętli to połowa pracy. Szukaj w oczywistych miejscach: rejestr, kolejka, otwarte wątki, foldery szkiców, pull requesty, skrzynka odbiorcza. Potem szukaj w mniej oczywistych: w notesie, gdzie we wtorek mogłeś napisać muszę się temu przyjrzeć i nigdy tego nie zrobiłeś; na końcu raportów agentów, gdzie wypisuje się otwarte pytania, a potem o nich zapomina; w zakamarkach biurka, fizycznego albo cyfrowego. Wielu operatorów trzyma krótką listę miejsc do sprawdzenia, co zamienia szukanie pętli z aktu pamięci w rutynę.
Bądź stanowczy w porzucaniu. Niektóre pętle nigdy nie zostaną zrobione i to w porządku, ale tylko jeśli się do tego przyznasz. Pomysł, który od miesiąca leży w kolejce i nie trafił do żadnego tygodniowego planu, prawdopodobnie się nie wydarzy. Porzuć go. Wątek, który badał coś, na czym ci już nie zależy, można zamknąć. Porzucenie to nie porażka. To decyzja, a to decyzje oczyszczają pokład.
Agenci mogą pomóc w znajdowaniu pętli. Poproś jednego, żeby wypisał wszystkie otwarte wątki z datą ostatniej aktywności, wszystkie szkice pull requestów, wszystkie pytania bez odpowiedzi w ostatnich raportach i wszystkie pozycje w kolejce starsze niż dwa tygodnie. Taka lista to dobry punkt wyjścia. Ale decydowanie należy do ciebie i najlepiej robić je szybko, niemal energicznie, bez rozdzierania szat nad każdą pozycją.
W tym tygodniu w ramach przeglądu tygodniowego oczyść pokład. Znajdź każdą otwartą pętlę i każdą zamknij, rozstrzygnij, odłóż albo porzuć. Policz, od ilu zacząłeś i ile pozostało nierozstrzygniętych na końcu. Celem dla drugiej liczby jest zero. Za pierwszym razem możesz go nie osiągnąć. Kiedy się zbliżysz, usłyszysz ciszę.
Ryc. 72 · Czysty pokład. Każdą otwartą pętlę się znajduje, potem zamyka, rozstrzyga, odkłada lub porzuca, aż nie zostanie żadna.
Rozdział 73 · Część VIII
Liczenie tego, co wyszło
Operatorzy z agentami mogą stracić rachubę tego, co faktycznie osiągnęli. Dzieje się tak wiele, działa tyle wątków, przychodzi tyle wyników, że pod koniec tygodnia naprawdę trudno powiedzieć, co się zmieniło. Ma to większe znaczenie, niż się wydaje, bo operator, który nie wie, co wyszło, nie potrafi ocenić, czy działalność funkcjonuje, i zwykle rekompensuje sobie niepewność zaczynaniem kolejnych rzeczy.
Lekarstwem jest uczciwe cotygodniowe liczenie. Nie przepracowanych godzin, zaczętych wątków czy zużytych tokenów, tylko rzeczy, które wyszły: na żywo i sprawdzone, przed ludźmi, dla których były. Prowadź to liczenie w notesie albo w rejestrze, z linijką na każdą pozycję. Na koniec tygodnia przeczytaj listę.
Pomaga widzenie tego liczenia jako szczytu stosu. Na dole jest wszystko, co zaczęte: najszersza warstwa i najmniej znacząca. Nad nią wszystko, co skończyli agenci, czyli węższa warstwa. Nad tym wszystko, co scalone albo wysłane, jeszcze węższa. Na górze to, co na żywo i sprawdzone. Każda warstwa jest prawdziwa, ale tylko górna jest wynikiem. Wielu operatorów, robiąc to liczenie po raz pierwszy, odkrywa, że ich górna warstwa jest zaskakująco cienka w porównaniu z warstwami pod nią.
Licz ukończenia. Rozpoczęcia zadbają o siebie same.
To odkrycie jest raczej przydatne niż przygnębiające. Cienka górna warstwa przy grubym środku oznacza, że praca utyka między skończoną a wypuszczoną, zwykle przy wdrożeniu, przy końcowym przeglądzie albo w momencie faktycznego wysłania czegoś. Cienka górna warstwa przy grubym dole oznacza, że zaczyna się za dużo, a za mało doprowadza do końca. Każdy wzorzec sugeruje konkretną poprawkę, a liczenie mówi ci, który wzorzec masz.
Liczenie dobrze robi też na morale, we właściwy sposób. Praca w pojedynkę potrafi izolować, a bez kolegów, którzy zauważaliby twoją pracę, łatwo poczuć, że niewiele osiągasz. Spisana lista tego, co wyszło, przeczytana na koniec tygodnia, to konkretny dowód, że jest inaczej. W tygodnie, gdy lista jest krótka, to impuls, żeby zapytać dlaczego, bez poczucia winy, tak jak pyta się o maszynę pracującą poniżej swoich możliwości.
Zachowuj te liczenia. W ciągu kwartału stają się zapisem rzeczywistej wydajności działalności, znacznie bardziej użytecznym niż twoje wspomnienie o niej. Przy przeglądzie kwartalnym przeczytanie dwunastu tygodni list wypuszczonych rzeczy pokazuje trendy, których nie ujawni żaden pojedynczy tydzień: które rodzaje pracy wychodzą niezawodnie, które stają, jak zmieniała się ilość, czy twoje szacunki wydolności są trafne.
Bądź surowy co do tego, co się liczy. Coś wyszło, jeśli jest na żywo i sprawdzone, a nie jeśli jest prawie gotowe, scalone, ale niewdrożone, albo wysłane do agenta na ostatnią poprawkę. Surowość utrzymuje liczenie w uczciwości, a uczciwe liczenia to jedyne, które warto prowadzić.
W tym tygodniu prowadź listę tego, co wyszło, jedna linijka na pozycję, ściśle zdefiniowana. Przy przeglądzie tygodniowym przeczytaj ją i porównaj z tym, co zacząłeś. Spójrz na przepaść między warstwami. W tej przepaści kryje się następne ulepszenie twojej działalności.
Ryc. 73 · Liczenie tego, co wyszło. Praca zawęża się od zaczętej do działającej i sprawdzonej; luki pokazują, gdzie utyka.
Rozdział 74 · Część VIII
Przegląd kwartalny
Przegląd tygodniowy utrzymuje działalność skierowaną we właściwą stronę. Przegląd kwartalny pyta, czy to w ogóle właściwa strona. Raz na trzy miesiące weź pół dnia, najlepiej z dala od zwykłego biurka, i spójrz na całą działalność z na tyle daleka, żeby zobaczyć jej kształt. To tu zmieniasz kurs celowo, a nie przez dryf.
Przegląd kwartalny obraca się wokół czterech pytań o każdą część działalności. Co powinienem nadal robić, bo działa? Co powinienem zakończyć, bo nie zasługuje już na swoje miejsce? Co powinienem zacząć, bo czegoś brakuje? I co powinienem zmienić, bo w zasadzie jest słuszne, ale w praktyce nie działa? Zadawaj je projektom w rejestrze, przepisom w bibliotece, narzędziom w skrzynce, nawykom w dziennym rytmie. Odpowiedzi to decyzje kwartału.
Zacznij od zapisu. Przeczytaj listy tego, co wyszło, z każdego tygodnia, dziennik decyzji, notatki z incydentów i notes. Szukaj wzorców. Które projekty dały najwięcej? Które pochłonęły najwięcej uwagi przy najmniejszym wyniku? Które rodzaje pracy szły dobrze, a które ciągle szły źle? Co zdecydowałeś przy ostatnim przeglądzie kwartalnym i czy to się wydarzyło? Ta lektura to surowiec dla uczciwych odpowiedzi i chroni przed naturalną skłonnością do zapamiętywania kwartału jako lepszego albo gorszego, niż był.
Tydzień pyta, co robić dalej. Kwartał pyta, czego przestać.
Pytanie o zakończenie jest najtrudniejsze i najcenniejsze. Każda działalność gromadzi projekty, narzędzia, nawyki i zobowiązania, które kiedyś miały sens, a teraz nie mają. Trwają, bo kończenie rzeczy jest niewygodne, a ich kontynuowanie łatwe. Przegląd kwartalny to moment, żeby kończyć je celowo. Projekt, który przez cały kwartał był odłożony, a warunek jego powrotu się nie spełnił, prawdopodobnie powinien się skończyć. Narzędzie, którego nie używałeś od trzech miesięcy, prawdopodobnie powinno odejść. Przepis, który ciągle daje słabe wyniki, należy naprawić albo wycofać. Następny rozdział jest o dobrym kończeniu rzeczy.
Pytanie o zaczęcie to źródło nowego kierunku. Spójrz na odłożone pomysły, kolejkę, luki, które ujawnił kwartał. Wybierz najwyżej jedną albo dwie nowe rzeczy do zaczęcia. Zaczęcie więcej, na dodatek do wszystkiego, co trwa, zwykle oznacza, że żadna z nich nie dostanie dość uwagi, żeby się udać.
Zapisz decyzje, krótko, i umieść je tam, gdzie znajdzie je przegląd w następnym kwartale. Potem niech przeglądy tygodniowe je realizują: każda decyzja staje się linijką w rejestrze albo zmianą w przepisie czy nawyku, a przegląd tygodniowy sprawdza postępy. Przegląd kwartalny, którego decyzje nigdy nie zostają wykonane, to jedynie przyjemne popołudnie myślenia. Przyjemne popołudnia są miłe. Nie są sterowaniem.
W tym kwartale zarezerwuj pół dnia na przegląd. Przeczytaj zapis. Zadaj cztery pytania każdemu projektowi, przepisowi, narzędziu i nawykowi. Zapisz decyzje, zwłaszcza zakończenia. Potem przekaż je przeglądom tygodniowym do realizacji. Za trzy miesiące przeczytaj je ponownie i zobacz, ile z nich się wydarzyło. Ta proporcja powie ci, na ile twoja działalność jest sterowana, a na ile po prostu się porusza.
Ryc. 74 · Przegląd kwartalny. Przegląd kwartalny czyta zapis, potem pyta: zostawić, zakończyć, zacząć czy zmienić.
Rozdział 75 · Część VIII
Łagodne uśmiercanie projektów
Niektóre projekty powinny się skończyć, zanim zostaną skończone. Rynek się przesunął, klient zmienił zdanie, pomysł okazał się mniej ciekawy, niż wyglądał, albo po prostu masz lepsze rzeczy do zrobienia ze swoją uwagą. Zakończenie projektu to jedna z najbardziej użytecznych decyzji, jakie podejmuje operator, i jedna z najczęściej unikanych, bo wydaje się porażką. Nie jest nią. To przycinanie, a dobrze przycięta działalność rośnie bardziej niż zarośnięta.
Pytanie do zadania nie brzmi, czy projekt jest dobry, tylko czy wciąż jest wart tego, co kosztuje. Każdy aktywny albo odłożony projekt coś kosztuje: uwagę w rejestrze, poczucie winy, gdy na niego patrzysz, wątki wymagające doglądania, miejsce, które mogłoby pomieścić coś innego. Jeśli prawdopodobna wartość projektu nie uzasadnia już tego kosztu, powinien się skończyć. Odpowiedź czasem będzie brzmieć kontynuuj i to w porządku. Kiedy brzmi zakończ, następne pytanie brzmi: jak?
Zakończ dobrze. Oznacza to cztery rzeczy. Skończ albo zamknij każdy wątek, żeby nic nie zostało w biegu. Napisz krótką notatkę zamykającą: czym był projekt, co osiągnął, dlaczego się skończył i co warto zachować. Zarchiwizuj materiały tam, gdzie mógłbyś je znów znaleźć, zamiast je usuwać. I powiadom każdego, kto powinien wiedzieć, klienta, współpracownika, użytkowników narzędzia, z odpowiednim wyprzedzeniem i wyjaśnieniem, żeby nie byli zaskoczeni.
Dobre zakończenie projektu to umiejętność. Pozwalanie mu powoli umierać to nawyk.
Notatka zamykająca ma większe znaczenie, niż się wydaje. Projekty, które kończą się nagle, zostawiają po sobie zamieszanie: niedokończone wątki, osierocone pliki, mgliste poczucie niezałatwionych spraw. Projekty, które kończą się notatką, zostawiają czysty zapis. Jeśli kiedykolwiek zechcesz wskrzesić pomysł, notatka powie ci, dokąd doszedłeś i dlaczego się zatrzymałeś. Jeśli nigdy tego nie zrobisz, notatka pozwoli ci przestać o nim myśleć, a to ulga sama w sobie.
Szukaj tego, co da się ocalić. Zakończone projekty często zawierają przydatne kawałki: przepis, który zadziałał, komponent, który można ponownie wykorzystać, fragment badań odpowiadający na pytanie gdzie indziej, lekcję wartą dodania do pamięci. Przed archiwizacją poświęć dziesięć minut na ich wydobycie. To dywidendy projektu i często uzasadniają wysiłek nawet wtedy, gdy sam projekt nie osiągnął celu.
Agenci mogą pomóc w mechanice: zamykaniu wątków, archiwizowaniu plików, szkicowaniu notatki zamykającej, wypisywaniu kawałków do ponownego użycia. Nie powinni podejmować decyzji. Zakończenie projektu to dokładnie ten rodzaj osądu, który należy do operatora, bo zależy od priorytetów i zobowiązań, które tylko ty możesz zważyć.
Najtrudniej kończyć projekty, które zacząłeś z entuzjazmem i w które dużo zainwestowałeś. Koszt utopiony ciągnie cię za rękaw: tyle pracy, szkoda byłoby teraz przestać. Ale ta praca jest wydana tak czy inaczej. Jedyne pytanie brzmi, czy następną godzinę lepiej spędzić nad tym projektem, czy nad czymś innym. Odpowiedz na nie uczciwie, a koszt utopiony puści.
W tym kwartale znajdź jeden projekt, który powinien się skończyć, i zakończ go dobrze: wątki zamknięte, notatka napisana, materiały zarchiwizowane, ludzie powiadomieni. Zauważ, jak potem wygląda rejestr. Lżej, prawie na pewno. Ta lekkość to uwaga, która do ciebie wróciła.
Ryc. 75 · Łagodne uśmiercanie projektów. Projekt, który nie zarabia już na swój koszt, kończy się dobrze w czterech krokach, najpierw ratując, co cenne.
Rozdział 76 · Część VIII
Energia to prawdziwy budżet
Zwykły sposób myślenia o wydolności to myślenie w godzinach: ile ich mam, jak powinienem je wydać? Dla operatora z agentami godziny to niewłaściwa jednostka. Agenci mogą pracować dowolną liczbę godzin. Działalność ogranicza nie twój czas, tylko twoja energia: jakość uwagi, jaką możesz wnieść do decydowania i przeglądania. Godzina ostrej uwagi i godzina zamglonej uwagi to obie godziny. To nie jest ten sam budżet.
Energia zmienia się w ciągu dnia, w ciągu tygodnia i na dłuższych odcinkach. Większość ludzi ma każdego dnia kilka godzin, kiedy myślą jasno, dobrze decydują i starannie przeglądają, oraz znacznie więcej godzin, kiedy mogą wykonywać użyteczną pracę, ale nie najlepszą. Dokładny wzorzec różni się w zależności od osoby. Nie różni się to, że najlepsze godziny są rzadkie, a praca, która ich wymaga, to najcenniejsza praca w działalności.
Dopasuj więc pracę do energii. Pomyśl o zadaniach operatora na dwóch osiach: ile wartości tworzą i ile energii wymagają. Praca o wysokiej wartości i wysokim zapotrzebowaniu na energię, podejmowanie ważnych decyzji, przeglądanie ryzykownych zmian, pisanie briefów do trudnych zadań, należy do twoich najlepszych godzin. Praca o niskiej wartości i niskim zapotrzebowaniu na energię, porządkowanie plików, zamykanie wątków, odpowiadanie na rutynowe wiadomości, należy do godzin, kiedy nie jesteś w najlepszej formie. Najczęstszy błąd to odwrotność: spędzanie pierwszej bystrej godziny poranka na mailach, a ostatniej zamglonej godziny popołudnia na przeglądzie wysokiego ryzyka.
Godziny to to, co masz. Energia to to, co wydajesz.
Agenci ułatwiają to dopasowanie, bo tak wiele rutynowej pracy da się teraz oddelegować. Ale tworzą też nowy drenaż energii: nieustanne drobne żądania monitorowania wątków, czytania raportów i reagowania na powiadomienia. Każde żądanie jest małe. Razem mogą pochłonąć zaskakującą część twojej najlepszej energii, jeśli wpuścisz je w swoje najlepsze godziny. Chroń te godziny. Grupuj monitorowanie w mniej cennych częściach dnia.
Energia ma też kształt tygodniowy i sezonowy. Wielu operatorów odkrywa, że lepiej decydują na początku tygodnia, a lepiej przeglądają w jego środku, albo że pewne miesiące są niezawodnie bardziej wyczerpujące niż inne. Zauważ własne wzorce i planuj wokół nich. Umieszczaj duże decyzje tam, gdzie jesteś najsilniejszy. Odciążaj tam, gdzie wiesz, że będziesz słabszy.
Istnieje pokusa, żeby traktować energię jako kwestię silnej woli i przepychać się siłą przez okresy niskiej energii. Czasem to działa, ale jako strategia zawodzi. Decyzje podjęte przy niskiej energii są gorsze, przeglądy robione przy niskiej energii coś przeoczają, a koszt tych przeoczeń przychodzi później i jest większy. Lepiej robić mniej, a dobrze, niż więcej, a źle, zwłaszcza że agenci z przyjemnością będą dalej robić bez ciebie.
W tym tygodniu oceniaj swoją energię co godzinę w prostej skali: wysoka, średnia albo niska. Na koniec tygodnia spójrz na wzorzec i wskaż swoje najlepsze godziny. Potem przenieś do nich najważniejsze decyzje i przeglądy, a rutynę do pozostałych. To drobna przebudowa. Jej wpływ na jakość twojej pracy wcale nie jest drobny.
Ryc. 76 · Energia to prawdziwy budżet. Zadania posortowane wg wartości i wymaganej energii, by najlepsze godziny dostały najtrudniejszą pracę.
Rozdział 77 · Część VIII
Uwaga ma sufit
Przy agentach liczba rzeczy, które mogłyby działać naraz, jest praktycznie nieograniczona. Dziesięć wątków, dwadzieścia, pięćdziesiąt, każdy pracuje nad czymś użytecznym. Ograniczeniem nie są agenci, tylko ty, bo każdy wątek w końcu potrzebuje twojej uwagi: żeby go zbriefować, odblokować, przejrzeć jego wynik i zdecydować, co dalej. Twoja uwaga ma sufit, a ten sufit jest znacznie niżej niż liczba wątków, które mógłbyś uruchomić.
Wyobraź sobie trzy liczby. Wątków, które mógłbyś uruchomić, jest bardzo dużo, ograniczają je tylko pomysły i budżet. Wątków, które możesz śledzić, pilnując ich postępów i łapiąc je, gdy dryfują, jest znacznie mniej, może garść naraz. Wątków, które możesz porządnie przejrzeć, dając ich wynikom staranną uwagę, jakiej potrzebują przed wydaniem, jest jeszcze mniej. Ta ostatnia liczba to prawdziwa wydolność działalności. Wszystko powyżej niej produkuje wyniki, które albo będą czekać w kolejce, albo wyjdą niedostatecznie przejrzane.
Większość operatorów, kiedy dostaje agentów, pracuje dużo powyżej sufitu. Wydaje się to wydajne: więcej wątków, więcej wyników, więcej postępu. W praktyce produkuje zaległości nieprzejrzanej pracy, narastające poczucie bycia w tyle i pełzające obniżanie standardów przeglądu, gdy próbujesz nadążyć. Praca nie jest robiona szybciej. Jest robiona gorzej, a potem część trzeba robić jeszcze raz.
Puszczaj tyle wątków, ile potrafisz przejrzeć. Ani jednego więcej.
Znalezienie swojego sufitu wymaga trochę uczciwej obserwacji. Przez tydzień notuj, ile wątków puszczasz każdego dnia i ile ich wyników przeglądasz porządnie, a ile przelatujesz wzrokiem. Punkt, w którym zaczyna się przelatywanie, to mniej więcej twój sufit. Dla wielu operatorów to gdzieś między trzema a sześcioma poważniejszymi wątkami dziennie, choć bardzo się to różni w zależności od rodzaju pracy i od tego, jak dobrze napisane są briefy.
Lepsze briefy podnoszą sufit. Wątek z jasną definicją ukończenia i mocnymi wymaganiami co do dowodów szybciej się przegląda niż wątek bez nich, więc możesz przejrzeć ich więcej. Małe zmiany też go podnoszą, bo każda wymaga mniej przeglądu. Dobre przepisy go podnoszą, bo znajomą pracę szybciej się ocenia. To wszystko sposoby na wyciśnięcie więcej z tej samej uwagi i są znacznie skuteczniejsze niż zwykłe bardziej się staranie.
Delegowanie przeglądu podnosi go trochę, ale tylko trochę. Agent recenzent może zrobić pierwsze przejście przez wynik, flagując problemy i streszczając zmiany, i to oszczędza czas. Nie usuwa potrzeby twojego przeglądu, bo twój przegląd to miejsce, gdzie do pracy wchodzi twój osąd i twoja odpowiedzialność. Myśl o agencie recenzencie jak o asystencie, który przygotowuje papiery, a nie takim, który je podpisuje.
Kiedy jesteś powyżej sufitu, rozwiązaniem nie jest dłuższa praca, tylko mniej wątków. Odkładaj projekty. Szereguj pracę, która była równoległa. Pozwól niektórym pomysłom poczekać w kolejce. Wydaje się to zwalnianiem. W rzeczywistości to przyspieszanie, bo praca porządnie przejrzana wychodzi raz, a nie dwa razy.
W tym tygodniu znajdź swój sufit. Potem przez następny tydzień nie puszczaj więcej wątków, niż na to pozwala. Zauważ, czy faktycznie wychodzi więcej, czy mniej. Większość operatorów jest zaskoczona odpowiedzią, i to przyjemnie.
Ryc. 77 · Uwaga ma sufit. Wątki, które mógłbyś prowadzić, ogarniesz wzrokiem i przejrzysz; to ostatnie to realna pojemność.
Rozdział 78 · Część VIII
Godziny, na które cię stać
Nikt nie jest w stanie przez osiem godzin z rzędu wydawać osądów wysokiej jakości. Większość ludzi jest w stanie przez kilka, rozsianych w ciągu dnia według wzorca, który, kiedy już go zauważysz, okazuje się zaskakująco stały. Operator, który planuje dzień wokół tych godzin, wyciska z nich więcej niż ten, kto traktuje każdą godzinę jako wymienną, i znacznie więcej niż ten, kto wydaje je na niewłaściwe rzeczy.
Dzień naturalnie krąży między trzema rodzajami czasu. Głęboka praca: godziny, kiedy możesz się w pełni skoncentrować, podejmować trudne decyzje i starannie przeglądać złożone zmiany. Lekka praca: godziny, kiedy możesz robić użyteczne rzeczy, które nie wymagają pełnej koncentracji, takie jak porządkowanie, rutynowe przeglądy, zamykanie wątków, pisanie prostych briefów. I regeneracja: czas pomiędzy, kiedy w ogóle nie pracujesz, a twoja zdolność do następnego głębokiego odcinka się odbudowuje. Wszystkie trzy są potrzebne. Błędem jest traktowanie lekkiej pracy albo regeneracji jako porażki w głębokiej pracy.
U większości ludzi głęboka praca przychodzi blokami po godzinę albo dwie, najwyżej kilka razy dziennie. Niektórzy mają najlepszy blok wcześnie rano; inni późnym przedpołudniem; nieliczni wieczorem. Wzorzec jest osobisty, ale zwykle stabilny i warto go poznać. Kiedy znasz już swoje głębokie godziny, chroń je. Żadnych wiadomości, żadnego monitorowania, żadnej lekkiej pracy, którą można zrobić później. Umieść tam najbardziej wymagającą część dzisiejszych trzech rezultatów.
Nie da się pracować głęboko przez cały dzień. Da się tak ułożyć dzień, żeby głębokie godziny wykonywały głęboką pracę.
Lekka praca wypełnia większość reszty, a agenci zmienili jej charakter. Wiele z tego, co kiedyś było lekką pracą, formatowanie, wyszukiwanie, rutynowe pisanie szkiców, jest teraz delegowane. To, co zostaje, to głównie monitorowanie i szybki przegląd: sprawdzanie wątków, zatwierdzanie prostych zmian, czytanie zestawień. To prawdziwa praca i należy ją planować, a nie pozwalać jej przeciekać do głębokich godzin, gdzie wyrządza najwięcej szkody.
Regeneracja to część, którą ludzie pomijają, i część, która decyduje, czy następny głęboki blok będzie coś wart. Spacer, posiłek, rozmowa, godzina robienia czegoś niezwiązanego. Sprawdzanie wątków na telefonie w czasie przerwy to nie regeneracja; to lekka praca na innym krześle. Agenci poradzą sobie bez ciebie przez godzinę. Ty będziesz lepszy, bo cię nie było.
Cykl powtarza się w ciągu dnia. Głęboko, lekko, regeneracja, potem znów głęboko, jeśli masz w sobie kolejny blok, lekko, regeneracja, zamknięcie. Wielu operatorów stwierdza, że dwa głębokie bloki dziennie to dobry dzień, a trzy to dzień wyjątkowy. Planowanie więcej zwykle daje bloki, które nominalnie są głębokie, a faktycznie płytkie.
W tym tygodniu śledź, w których godzinach najlepiej myślisz. Potem zaplanuj następny tydzień wokół nich: najtrudniejsze decyzje i przeglądy w głębokich blokach, rutynę w lekkich, a prawdziwe przerwy pomiędzy. Traktuj przerwy jak spotkania, a nie resztki. Na koniec tygodnia porównaj jakość swoich przeglądów i decyzji z poprzednim tygodniem. Godziny były te same. To, co w nie włożyłeś, już nie.
Ryc. 78 · Godziny, na które cię stać. Dzień krąży między czasem głębokim, lekkim i regeneracją, z dwoma głębokimi blokami.
Rozdział 79 · Część VIII
Odpoczynek to konserwacja
Istnieje ciche założenie, częste wśród ludzi pracujących w pojedynkę, a zwłaszcza wśród ludzi z niestrudzonymi agentami, że odpoczynek to coś, na co się zarabia, kiedy praca jest skończona. Praca nigdy nie jest skończona, więc odpoczynek nigdy do końca nie nadchodzi. Agenci dalej pracują, wątki dalej się kończą, zawsze jest jeszcze jedna rzecz do przejrzenia, a wieczory i weekendy stopniowo wypełniają się drobnymi aktami sprawdzania. Wydaje się to sumienne. To powolne psucie się najważniejszej części maszyny.
Odpoczynek to nie nagroda. To konserwacja. Osąd operatora, to, co sprawia, że wszystkie inne części działają, zależy od odpoczynku tak, jak maszyna zależy od oleju. Bez niego decyzje się pogarszają, przeglądy coś przeoczają, briefy stają się mglistsze, a koszt tych porażek pojawia się później, w poprawkach, incydentach i szczególnym wyczerpaniu naprawiania problemów, które spowodowałeś zmęczony. Dobry osąd mieszka w części wspólnej pracy i odpoczynku. Usuń odpoczynek, a część wspólna znika.
Agenci utrudniają to w szczególny sposób: nigdy nie potrzebują odpoczynku, więc nigdy nie dają ci naturalnego momentu na zatrzymanie się. Ludzki zespół idzie do domu pod koniec dnia i praca się zatrzymuje. Agenci mogą pracować całą noc, a świadomość, że coś mogło się skończyć, ciągnie w stronę sprawdzania. Ciągnie najmocniej dokładnie wtedy, kiedy najbardziej trzeba się oprzeć, późnym wieczorem i w weekendy, kiedy twój osąd jest najsłabszy, a koszt działania na podstawie czegoś przeczytanego do połowy najwyższy.
Maszyna może działać bez odpoczynku. Operator nie może. Planuj odpowiednio.
Wbuduj więc odpoczynek w strukturę, a nie w resztki. Dzienne zamknięcie wyraźnie kończy dzień pracy. Weekend jest weekendem: bez przeglądów, bez briefów, bez sprawdzania, chyba że coś naprawdę płonie, a prawie nic nie płonie. Urlopy są urlopami, przygotowanymi z wyprzedzeniem, z odłożonymi projektami i jasnymi notatkami przekazania, tak żeby nic cię nie potrzebowało, kiedy cię nie ma. Te granice to nie luksus. To część systemu operacyjnego.
Ułatw sobie trzymanie granic, projektując pod nie. Nocna i weekendowa praca agentów powinna ograniczać się do dobrze zbriefowanych zadań niskiego ryzyka, które mogą bezpiecznie poczekać na przegląd. Powiadomienia powinny być wyłączone poza godzinami pracy. Wszystko, co mogłoby naprawdę pilnie cię potrzebować, powinno być rzadkie, dobrze zdefiniowane i kierowane jednym kanałem, tak żeby cisza na tym kanale oznaczała, że naprawdę możesz przestać.
Pomaga dostrzeganie różnicy między odpoczynkiem a rozproszeniem. Przewijanie, oglądanie czegoś jednym okiem, myśląc o pracy, albo drobna administracja w niedzielę to nie odpoczynek. Odpoczynek to czas, w którym pracy naprawdę nie ma w twojej głowie: ruch, ludzie, sen, wciągające zajęcia, które nie mają nic wspólnego z działalnością. To wtedy umysł wykonuje swoją powolną pracę w tle, porządkując rzeczy, a wiele najlepszych decyzji przychodzi nieproszonych w poniedziałek po porządnym weekendzie.
W tym tygodniu ustal twardą granicę: jeden wieczór i jeden pełny dzień bez sprawdzania, bez briefowania, bez przeglądania. Przygotuj się do tego przy wcześniejszym zamknięciu. Zauważ, co dzieje się z twoim pierwszym przeglądem potem. Większość operatorów stwierdza, że jest wyraźnie bystrzejszy. Ta bystrość to konserwacja, która się zwraca.
Ryc. 79 · Odpoczynek to konserwacja. Dobry osąd żyje tam, gdzie praca styka się z odpoczynkiem; usuń odpoczynek, a zniknie.
Rozdział 80 · Część VIII
Tempo, które da się utrzymać
Najbardziej produktywni operatorzy to nie ci, którzy mają najbardziej imponujące tygodnie. To ci, którzy mają dobre tygodnie, konsekwentnie, przez lata. Tempo, które da się utrzymać, bije tempo, które robi wrażenie, bo działalność procentuje. Przepisy się poprawiają, pamięć się pogłębia, rejestr pozostaje zdrowy, osąd się wyostrza, a praca każdego roku buduje się na fundamentach roku poprzedniego. Zrywy heroicznego wysiłku, po których następuje odpoczynek, nie procentują. Oscylują.
Agenci kuszą operatorów do zrywów. Moc jest pod ręką: mógłbyś puścić dwadzieścia wątków, pracować przez noc i wypuścić cały produkt w weekend. Czasem to właściwy wybór, przy prawdziwym terminie albo okazji, która nie poczeka. Jako nawyk działa to żrąco. Każdy zryw pożycza od energii i osądu następnych tygodni, a pożyczka jest spłacana z odsetkami w postaci zmęczonych decyzji, przeoczonych przeglądów i powolnego narastania problemów, które przepuszczono w pośpiechu.
Zrównoważone tempo zaczyna się od równego dnia: przeglądu, sesji i zamknięcia opisanych wcześniej, z dzisiejszą trójką jako celem i uszanowanym sufitem uwagi. Równe dni składają się na równy tydzień, z jego przeglądem, oczyszczaniem pokładu i uczciwym liczeniem tego, co wyszło. Równe tygodnie składają się na równy rok, z przeglądami kwartalnymi, które celowo zmieniają kierunek, i działalnością, która na końcu jest wyraźnie lepsza niż na początku. Łańcuch jest niepozorny na każdym ogniwie. Wynik na końcu jest niezwykły.
Heroizm daje dobre historie. Nawyki dają dobre lata.
Jak zrównoważone tempo wygląda od środka? Głównie spokojnie. Wiesz, nad czym pracujesz i dlaczego. Wiesz, co wyszło w zeszłym tygodniu. Nie masz zaległości w przeglądach, bo puszczasz tylko to, co potrafisz przejrzeć. Kończysz dzień bez niepokoju, bo zamknięcie wszystko uchwyciło. Bierzesz weekendy i urlopy bez lęku, bo działalność jest zaprojektowana tak, żeby mogła się zatrzymać.
Może się wydawać, że tak spokojne dni nie mogą być produktywne. Zwykle są. Test nie polega na tym, jak ciężko się czujesz, tylko na tym, co to daje w ciągu miesięcy. Spokojny operator, który wypuszcza trzy dobrze przejrzane rzeczy dziennie, każdego dnia, przegania gorączkowego, który wypuszcza dziesięć rzeczy jednego tygodnia i nic następnego, dochodząc do siebie po pierwszym. A praca spokojnego operatora jest zwykle lepsza, bo przejrzał ją ktoś, kto uważał.
Tempo to też coś, co możesz celowo regulować. Są okresy, kiedy odrobina więcej naporu jest właściwa, i okresy, kiedy odrobina mniej jest mądra. Przegląd kwartalny to naturalne miejsce, żeby o tym zdecydować: jakiego tempa potrzebuje nadchodzący kwartał i co zrobię, żeby było zrównoważone? Celowe decydowanie o tempie to coś zupełnie innego niż pozwalanie, żeby decydowało o nim to, co akurat krzyczy najgłośniej.
W tym tygodniu zapytaj się szczerze: czy mógłbym utrzymać tempo z tego tygodnia przez rok? Jeśli odpowiedź brzmi nie, znajdź jedną rzecz, która czyni je niezrównoważonym, i ją zmień. Potem zapytaj ponownie w przyszłym tygodniu. Celem jest tak, w które wierzysz. Kiedy tam dotrzesz, będziesz mieć najcenniejszą rzecz, jaką operator może zbudować: maszynę, która działa dobrze, bez końca, a ty wciąż siedzisz na swoim fotelu.
Ryc. 80 · Tempo, które da się utrzymać. Stałe tempo kumuluje się ponad heroiczne zrywy; dni budują tygodnie, tygodnie lata.
Część IX
Narzędzia, błędy i incydenty
Utrzymanie, blizny i runbook.
Rozdział 81 · Część IX
Mniej narzędzi, lepiej utrzymanych
Nigdy nie było lepszego czasu na kolekcjonowanie narzędzi. Co tydzień pojawiają się nowe produkty agentowe, rozszerzenia, konektory, wtyczki i usługi, a każde obiecuje usunąć z twojego dnia jakieś tarcie. Wiele z nich jest naprawdę dobrych. Większość operatorów wypróbowuje ich bardzo dużo i zatrzymuje więcej, niż używa. Wynikiem jest zestaw narzędzi tak ciężki, że ich spowalnia: za dużo miejsc, gdzie trzeba zaglądać, za dużo subskrypcji do pilnowania, za dużo integracji, które mogą się zepsuć, i za mało głębokiej wiedzy o którymkolwiek z nich.
Lepszym podejściem jest mniej narzędzi, lepiej utrzymanych. Mały zestaw, który znasz dogłębnie, używasz codziennie i porządnie utrzymujesz, posłuży ci lepiej niż duży zestaw, który znasz powierzchownie i używasz okazjonalnie. Głębia ma znaczenie, bo wartość narzędzia bierze się głównie z dobrej jego znajomości: skrótów, ograniczeń, trybów awarii, tego, jak się zachowuje, kiedy coś idzie nie tak. Budowanie tej wiedzy wymaga czasu i rozmywa się ona, kiedy zestaw jest szeroki.
Pomyśl o tym jak o lejku. Na górze każde narzędzie, jakie kiedykolwiek wypróbowałeś. Niżej te, których faktycznie używasz co tydzień. Na dole twój zestaw: mała grupa narzędzi, na których polegasz, które porządnie znasz i których awarię zauważyłbyś natychmiast. Jeśli twój zestaw liczy trzydzieści pozycji, większość z nich prawdopodobnie siedzi na górze lejka i udaje, że jest na dole.
Narzędzie, które znasz dobrze, bije dwa, które znasz w połowie.
Każde narzędzie ma koszt utrzymania, nawet jeśli jest darmowe. Trzeba je aktualizować. Trzeba przeglądać jego uprawnienia. Trzeba pilnować jego integracji. Zajmuje miejsce w twojej głowie i w twoich plikach pamięci. Kiedy się zmienia, musisz nauczyć się zmiany. Kiedy zawodzi, musisz to zauważyć i zareagować. Przy narzędziu używanym codziennie ten koszt łatwo uzasadnić. Przy narzędziu używanym raz w miesiącu często się nie da.
Bądź więc powolny w przyjmowaniu i szybki w porzucaniu. Kiedy pojawia się nowe narzędzie, zapytaj, jaki konkretny problem rozwiązałoby, którego nie rozwiązują twoje obecne narzędzia. Jeśli nie potrafisz go nazwać, przepuść je, choćby wyglądało najbardziej imponująco. Jeśli potrafisz, wypróbuj je na małym, odizolowanym kawałku pracy, zanim wpuścisz je do codziennego rytmu. A kiedy narzędzie przestaje zasługiwać na swoje miejsce, usuń je, czysto, łącznie z jego uprawnieniami i wszelką pamięcią czy przepisami, które się do niego odwołują.
Ta zasada dobrze współgra z zasadą małej maszyny z pierwszej części tej książki. Mały zestaw narzędzi to część małej maszyny, a mała maszyna to taka, którą możesz ogarnąć w głowie w zły dzień. Kiedy coś idzie nie tak w działalności z pięcioma narzędziami, wiesz, gdzie szukać. Kiedy coś idzie nie tak w działalności z trzydziestoma, możesz spędzić poranek na ustalaniu, którego narzędzia to dotyczy.
W tym tygodniu wypisz każde narzędzie, usługę i integrację, z których obecnie korzysta twoja działalność. Przy każdej zaznacz, jak często używałeś jej w ostatnim miesiącu. Wszystko, czego nie używałeś, jest kandydatem do usunięcia. Wszystko, czego użyłeś raz czy dwa, zasługuje na surowe spojrzenie. Potem usuń co najmniej jedno narzędzie, czysto. Twój zestaw będzie lżejszy, a resztę poznasz odrobinę lepiej dzięki zwolnionemu miejscu.
Ryc. 81 · Mniej narzędzi, lepiej utrzymanych. Narzędzia zawężają się od wszystkiego, co wypróbowano, do małego zestawu znanego dogłębnie.
Rozdział 82 · Część IX
Audyt zestawu narzędzi
Narzędzia gromadzą się po cichu. Konektor dodany na potrzeby jednego projektu zostaje podłączony po jego zakończeniu. Rozszerzenie przeglądarki zainstalowane na próbę wciąż działa miesiące później. Subskrypcja się odnawia, bo nikt na nią nie spojrzał. Integracja agenta wciąż ma dostęp do folderu, którego już nie używasz. Nic z tego nie jest dramatyczne. Wszystko to jest bałaganem, część kosztuje pieniądze, a odrobina stanowi ryzyko dla bezpieczeństwa. Lekarstwem jest regularny audyt.
Audyt zestawu narzędzi to krótki, uporządkowany przegląd, raz na kwartał, wszystkiego w twojej działalności, co jest narzędziem: oprogramowania, usług, subskrypcji, konektorów, integracji, rozszerzeń, skryptów i automatyzacji. Ma trzy kroki. Wypisz wszystko. Sprawdź, jak każda rzecz jest używana. Zdecyduj, co zostawić, zmienić albo usunąć.
Wypisywanie to krok, który odsłania najwięcej. Większość operatorów, robiąc to po raz pierwszy, znajduje narzędzia, o których istnieniu zapomnieli. Szukaj wszędzie: zainstalowane aplikacje, rozszerzenia przeglądarki, podłączone usługi na każdej z głównych platform, konektory agentów i ich uprawnienia, zaplanowane zadania, automatyzacje, subskrypcje na wyciągach. Agenci mogą pomóc w części tego, zwłaszcza w wypisywaniu integracji i zaplanowanych zadań, ale w niektóre miejsca będziesz musiał zajrzeć sam.
Każde narzędzie, o którym zapomniałeś, to narzędzie, które może cię zaskoczyć.
Sprawdzanie użycia oznacza zadanie przy każdej pozycji pytania: kiedy ostatnio tego użyłem, do czego i czy zauważyłbym, gdyby to zniknęło? Zapytaj też, do czego ma dostęp. Rzadko używane narzędzie z szerokim dostępem do twoich plików albo kont to znacznie poważniejszy problem niż takie, którego używasz codziennie, z wąskim dostępem. Zwracaj szczególną uwagę na wszystko, co jest podłączone do agentów, bo agenci działają w ramach dostępu, jaki im dano, a przeterminowany dostęp to zaproszenie, żeby coś poszło nie tak w sposób, którego nie przewidzisz.
Decydowanie jest celem ćwiczenia. Zostaw narzędzia, których używasz i których by ci brakowało. Zmień te, których używasz, ale które są źle skonfigurowane: za szeroki dostęp, przestarzałe ustawienia, pokrywanie się z innym narzędziem. Usuń te, których nie używasz, czysto: odbierz im dostęp, anuluj subskrypcje, usuń integracje i zaktualizuj wszelkie pliki pamięci czy przepisy, które o nich wspominają. Usunięcie narzędzia z życia przy pozostawieniu jego dostępu to nie usunięcie. To porzucenie.
Audyt to też dobry moment, żeby sprawdzić kondycję narzędzi, które zostawiasz. Czy są aktualne? Czy ich ustawienia są takie, jak ci się wydaje? Czy zmieniły się w sposób, który wpływa na to, jak ich używasz? Czy jest w nich coś, czego od dawna zamierzasz się nauczyć? Odrobina uwagi tutaj utrzymuje zestaw w ostrości, a nie tylko w obecności.
Zapisz krótko audyt w notesie albo dzienniku decyzji: co usunąłeś, co zmieniłeś, co cię zaskoczyło. W następnym kwartale zacznij od przeczytania ostatniego audytu. Z czasem te zapisy pokazują, jak ewoluuje twój zestaw i czy rośnie, czy się kurczy, a to przydatny wskaźnik tego, czy zasada małej maszyny się trzyma.
W tym kwartale przeprowadź audyt. Wypisz, sprawdź, zdecyduj. Postaraj się usunąć co najmniej kilka pozycji i zawęzić dostęp co najmniej jednej. Zajmuje to popołudnie. Zostawia cię z działalnością, którą lepiej rozumiesz i która ma mniej miejsc, w których może wydarzyć się coś nieoczekiwanego.
Ryc. 82 · Audyt zestawu narzędzi. Spisz, sprawdź i rozstrzygnij każde narzędzie; najbardziej martwią rzadko używane z szerokim dostępem.
Rozdział 83 · Część IX
Utrzymanie jest w kalendarzu
Każda działalność wymaga utrzymania. Narzędzia trzeba aktualizować. Zależności trzeba podnosić. Pliki pamięci trzeba przycinać. Przepisy trzeba odświeżać. Dane uwierzytelniające trzeba zmieniać. Kopie zapasowe trzeba testować. Domeny, certyfikaty i subskrypcje trzeba odnawiać. Nic z tego nie jest ciekawe, nic nie jest pilne, dopóki nagle nie stanie się pilne, i wszystko łatwo odłożyć. Jedynym niezawodnym sposobem, żeby to zostało zrobione, jest zaplanowanie tego.
Niezaplanowane utrzymanie dzieje się na jeden z dwóch sposobów: nigdy albo w kryzysie. Certyfikat wygasa i strona pada. Zależność jest trzy główne wersje do tyłu i aktualizacja to teraz tydzień pracy zamiast godziny. Dane uwierzytelniające, które należało zmienić, wyciekają. Kopia zapasowa, której nigdy nie przetestowano, okazuje się nie do odtworzenia. Każdy kryzys kosztuje znacznie więcej, niż kosztowałoby zaplanowane utrzymanie, i każdy przychodzi w momencie wybranym przez problem, a nie przez ciebie.
Zaplanowane utrzymanie zamienia te kryzysy w rutynę. Cykl jest prosty. Zaplanuj każde zadanie utrzymaniowe w rozsądnym odstępie. Kiedy przyjdzie jego kolej, zrób aktualizację. Potem sprawdź, czy aktualizacja zadziałała i nic się nie zepsuło. Następne wystąpienie jest już w harmonogramie. Punkt wyjścia cyklu, czyli harmonogram, to miejsce, gdzie leży większość wartości, bo to on w ogóle sprawia, że reszta się dzieje.
Konserwacja w kalendarzu jest tania. Konserwacja w trybie awaryjnym już nie.
Zbuduj kalendarz utrzymania. Niektóre zadania są cotygodniowe: sprawdzenie, czy zautomatyzowane zadania się wykonały, rzut oka na logi błędów. Niektóre comiesięczne: aktualizacja zależności, przycinanie plików pamięci, przegląd otwartych wątków. Niektóre kwartalne: audyt zestawu narzędzi, zmiana danych uwierzytelniających, test odtwarzania kopii zapasowej, przegląd przepisów. Niektóre roczne: odnowienie domen, przegląd każdej subskrypcji. Zapisz je z ich odstępami i wstaw do tego kalendarza, na który faktycznie patrzysz.
Agenci świetnie radzą sobie z pracami utrzymaniowymi i to jedno z najlepszych miejsc na ich użycie. Przepis na aktualizację zależności może prosić agenta o podniesienie wersji, uruchomienie pełnego zestawu testów i zgłoszenie wszelkich porażek. Przepis na przycinanie pamięci może prosić agenta o oflagowanie nieaktualnych wpisów. Przepis na sprawdzanie kopii zapasowych może przeprowadzić odtworzenie do lokalizacji testowej. Zaplanowane zadania agentów mogą wykonywać część z tego automatycznie. Nadal musisz przejrzeć wyniki, ale przegląd idzie szybko, kiedy praca jest rutynowa, a przepis dobry.
Krok sprawdzenia zasługuje na podkreślenie. Utrzymanie zrobione, ale niesprawdzone, jest zrobione w połowie. Aktualizacja, która po cichu coś zepsuła, zmiana danych, po której stare poświadczenie wciąż działa, kopia zapasowa, która się wykonuje, ale produkuje puste pliki: każde z nich wygląda na kompletne aż do chwili, kiedy będzie potrzebne. Każde zadanie utrzymaniowe powinno kończyć się sprawdzeniem, czy faktycznie osiągnęło swój cel.
Niech kalendarz utrzymania będzie mały i realistyczny. Jeśli wymienia pięćdziesiąt zadań, wiele zostanie pominiętych, a nawyk się rozmyje. Zacznij od garści zadań, których zaniedbanie zabolałoby najbardziej, zaplanuj je i dodawaj inne dopiero wtedy, gdy nawyk okrzepnie. Krótka lista wykonywana niezawodnie jest lepsza niż długa lista wykonywana od czasu do czasu.
W tym tygodniu napisz swój kalendarz utrzymania. Wypisz zadania, ustal ich odstępy i wstaw następne wystąpienie każdego do kalendarza. Potem zrób dziś jedno zaległe zadanie. Ten mały akt nadrabiania to początek tego, że już nigdy nie będziesz musiał nadrabiać.
Ryc. 83 · Utrzymanie jest w kalendarzu. Zaplanuj, zaktualizuj, sprawdź: mały kalendarz zamienia kryzysy konserwacji w rutynę.
Rozdział 84 · Część IX
Uprawnienia jako polityka
Agenci działają w ramach uprawnień, jakie im nadano. Większość narzędzi agentowych oferuje dziś wachlarz trybów, od pytania przed każdym działaniem po swobodne działanie w pewnych granicach, a także sposoby na zezwalanie albo zabranianie konkretnych poleceń, plików i usług. Wielu operatorów traktuje uprawnienia reaktywnie: zatwierdzają prośby jedna po drugiej, w miarę jak wyskakują, stopniowo pozwalając na więcej, w miarę jak męczą ich monity. Wynikiem jest zestaw uprawnień, którego nikt naprawdę nie zaprojektował i który może pozwalać na dużo więcej albo dużo mniej, niż zamierzano.
Lepszym podejściem jest traktowanie uprawnień jako polityki. Zdecyduj raz, świadomie, co agentom wolno robić bez pytania, o co muszą najpierw zapytać, a czego nie wolno im nigdy. Zapisz tę politykę. Skonfiguruj narzędzia tak, żeby ją egzekwowały. Wtedy możesz przestać podejmować te same drobne decyzje dziesiątki razy dziennie i możesz ufać, że granice odzwierciedlają twój przemyślany osąd, a nie poziom twojej irytacji o czwartej po południu.
Polityka ma trzy poziomy. Wolno bez pytania: działania bezpieczne, odwracalne i rutynowe, takie jak czytanie plików w projekcie, uruchamianie zestawu testów, edytowanie plików w zakresie projektu. Zapytaj przed działaniem: działania istotne albo trudniejsze do odwrócenia, takie jak instalowanie zależności, zmiana konfiguracji, uruchamianie poleceń ze skutkami ubocznymi poza projektem, połączenia sieciowe z nieznanymi miejscami. Nigdy niedozwolone: działania destrukcyjne, nieodwracalne albo wykraczające poza granice działalności, takie jak usuwanie czegokolwiek poza projektem, dotykanie danych uwierzytelniających, pushowanie bezpośrednio na produkcję, dostęp do plików osobistych.
Zdecyduj o uprawnieniach raz, kiedy jesteś spokojny, żeby nie decydować o nich sto razy, kiedy jesteś zajęty.
Różne projekty mogą potrzebować różnych polityk. Eksperyment do wyrzucenia może być hojny. Projekt dla klienta z wrażliwymi danymi powinien być surowy. System produkcyjny powinien być jeszcze surowszy. Wiele narzędzi pozwala ustawiać uprawnienia per projekt, a to dokładnie to, czego chcesz: polityka pasuje do ryzyka.
Przeglądaj politykę przy audycie zestawu narzędzi albo wtedy, gdy coś pójdzie nie tak. Spójrz, na co pozwoliłeś, i zapytaj, czy każda pozycja jest wciąż stosowna. Spójrz, o co agenci ciągle pytają, i zapytaj, czy te prośby powinny być zatwierdzone z góry, czy powinny pozostać monitami. Spójrz na wszelkie incydenty i zapytaj, czy zmiana uprawnień by im zapobiegła. Uprawnienia, których nigdy się nie przegląda, zwykle dryfują w stronę zbyt hojnych, bo każde pojedyncze zatwierdzenie wydaje się nieszkodliwe.
Zwracaj szczególną uwagę na uprawnienia do pracy bez nadzoru: nocnych zadań, zaplanowanych zadań, wszystkiego, co działa, kiedy nie patrzysz. Te powinny być najciaśniejsze ze wszystkich, bo nie ma nikogo, kto wyłapałby błąd w chwili, gdy się dzieje. Dobra zasada: agenci bez nadzoru dostają tylko to, czego potrzebuje konkretne zadanie, i nic więcej.
Dobra polityka ma przyjemny skutek uboczny: mniej przerwań. Kiedy rutynowe działania są zatwierdzone z góry, a niebezpieczne zablokowane, jedyne monity, jakie widzisz, dotyczą działań naprawdę istotnych, a to są te, które zasługują na twoją uwagę. Strumień błahych próśb o zatwierdzenie znika, a wraz z nim nawyk klikania tak bez czytania.
W tym tygodniu napisz politykę uprawnień dla swojego głównego projektu: trzy krótkie listy. Potem porównaj z nią faktyczną konfigurację narzędzia i napraw wszelkie rozbieżności. Zauważ, ile monitów znika i o ile więcej uwagi poświęcasz tym, które zostały.
Ryc. 84 · Uprawnienia jako polityka. Uprawnienia agentów jako spisana polityka: dozwolone, najpierw pytaj i nigdy, dla każdego projektu.
Rozdział 85 · Część IX
Kruche zwycięstwa kosztują więcej
Czasem najszybszym sposobem, żeby coś zadziałało, jest prowizorka. Wpisana na sztywno wartość. Ręczny krok, o którym ktoś musi pamiętać. Skrypt, który działa na twoim komputerze i nigdzie indziej. Obejście agenta, które tłumi błąd, zamiast go naprawiać. Prowizorka daje ci dziś zwycięstwo, a zwycięstwa są przyjemne. Ale kruche zwycięstwa są oprocentowane, a odsetki płaci się później, zwykle w najgorszym możliwym momencie i zwykle więcej, niż było warte pierwotne zwycięstwo.
Problem z kruchymi zwycięstwami nie polega na tym, że zawodzą. Wszystko w końcu zawodzi. Polega na tym, że zawodzą nieprzewidywalnie i po cichu. Wpisana na sztywno data działa, dopóki data nie minie. Ręczny krok działa, dopóki o nim nie zapomnisz. Stłumiony błąd ukrywa problem, dopóki problem nie urośnie na tyle, żeby się przebić. Kiedy zawodzą, często nie wiesz, że były kruche, bo prowizorkę zrobiono miesiące temu, może zrobił ją agent, i nikt tego nie zapisał.
Pomyśl o rozwiązaniach na dwóch osiach: jak szybko dają wyniki teraz i jak bardzo są kruche. Rozwiązanie szybkie i kruche kusi i jest niebezpieczne. Rozwiązanie powolne i solidne jest bezpieczne i czasem przesadzone. Róg, którego zwykle chcesz, to wystarczająco szybkie i wystarczająco solidne: nie najszybsza możliwa poprawka i nie najbardziej kuloodporna, tylko taka, która będzie działać, choć nikt nie będzie pamiętał o jej istnieniu.
Prowizorka oszczędza godzinę dziś i kosztuje dzień w najgorszym dniu miesiąca.
Agenci potrafią bardzo szybko produkować kruche zwycięstwa, zwłaszcza gdy prosi się ich, żeby coś zadziałało pod presją. Agent, któremu każe się sprawić, żeby testy przeszły, może znaleźć najszybszą ścieżkę, a ta nie zawsze jest właściwa. Wypatruj oznak przy przeglądzie: wartości wpisanych na sztywno, które powinny być konfiguracją, błędów łapanych i ignorowanych, specjalnych przypadków dodanych dla pojedynczego wejścia, komentarzy w rodzaju tymczasowe albo poprawić później. Każda z nich to kruche zwycięstwo w budowie.
Kiedy już przyjmujesz kruche zwycięstwo, a czasem powinieneś, bo termin jest prawdziwy albo stawka niska, zapisz to. Wpisz linijkę do dziennika decyzji albo pamięci projektu: na czym polega prowizorka, dlaczego ją przyjęto i jaka byłaby porządna poprawka. Dodaj przypomnienie, żeby do niej wrócić. Zapisana prowizorka to znany dług z planem spłaty. Niezapisana to pułapka czekająca na kogoś, zwykle na ciebie.
Część kruchości bierze się z samej działalności, a nie z pracy: krok, który tylko ty umiesz wykonać, proces zależny od twojej pamięci, integracja, której nikt inny nie umiałby naprawić. To kruche zwycięstwa na poziomie maszyny i mają jeszcze większe znaczenie dla operatora w pojedynkę, bo nie ma kolegi, na którym można się oprzeć. Dalsze rozdziały o incydentach i runbookach są w dużej mierze o zamienianiu tego rodzaju kruchości w coś solidniejszego.
W tym tygodniu poszukaj kruchych zwycięstw w jednym projekcie. Szukaj wartości wpisanych na sztywno, stłumionych błędów, komentarzy o tymczasowości i nieudokumentowanych ręcznych kroków. Zapisz każde, które znajdziesz, i napraw to, które najprawdopodobniej narobi kłopotów. To nie jest ekscytująca praca. To ten rodzaj pracy, który sprawia, że przyszły miesiąc jest bez wydarzeń, a to najlepszy rodzaj miesiąca, jaki można mieć.
Ryc. 85 · Kruche zwycięstwa kosztują więcej. Rozwiązania rozmieszczone wg szybkości i kruchości, z celem: dość szybko i dość solidnie.
Rozdział 86 · Część IX
Błędy to dane
Błędy są nieuniknione w każdej działalności, a działalność z agentami popełnia ich szczególną odmianę. Brief, który źle odczytano. Zmiana, która zepsuła coś nieoczekiwanego. Przegląd, który przeoczył problem. Wydanie, które trafiło w złe miejsce. Wiadomość wysłana z błędem. Każdy z nich jest irytujący, a czasem kosztowny. Każdy jest też danymi, a operator, który traktuje błędy jak dane, poprawia się znacznie szybciej niż ten, kto traktuje je jak wstydliwe sprawy do naprawienia i zapomnienia.
Kiedy zdarza się błąd, pojawia się rozwidlenie. Jedna ścieżka prowadzi do ukrycia albo zapomnienia: napraw po cichu, idź dalej, miej nadzieję, że się nie powtórzy. To naturalna ścieżka, bo błędy są niewygodne, a ich naprawianie daje satysfakcję. Druga ścieżka prowadzi do nauki: napraw, a potem zapytaj, dlaczego to się stało i co zapobiegłoby temu następnym razem. Druga ścieżka zajmuje kilka minut więcej. Tylko ona czyni działalność lepszą.
Wartość tkwi w pytaniu dlaczego. Większość błędów ma przyczyny leżące wyżej niż widoczny błąd. Agent źle odczytał brief, bo brief był dwuznaczny. Zmiana coś zepsuła, bo nie było testu obejmującego tę ścieżkę. Przegląd przeoczył problem, bo odbył się pod koniec długiego dnia. Wydanie trafiło w złe miejsce, bo proces wdrożenia ma mylący krok. Napraw tylko widoczny błąd, a przyczyna wyżej zostanie, gotowa wyprodukować następny.
Naprawiony błąd to rozwiązany problem. Zrozumiany błąd to rozwiązana klasa problemów.
Zbieraj błędy gdzieś w jednym miejscu. Sekcja w notesie, prosty dziennik albo, przy poważniejszych, notatki z incydentów, które opisuje następny rozdział. Z czasem zbiór odsłania wzorce: ten sam rodzaj briefu ciągle jest źle odczytywany, ten sam obszar kodu ciągle się psuje, ta sama pora dnia ciągle produkuje błędy. Wzorce są znacznie bardziej użyteczne niż pojedyncze błędy, bo wskazują systemowe poprawki, które zapobiegają wielu przyszłym błędom naraz.
Agenci też popełniają błędy i zasługują na to samo traktowanie. Kiedy agent robi coś źle, oprzyj się pokusie obwinienia agenta i pójścia dalej. Zapytaj, co w briefie, pamięci, uprawnieniach albo sprawdzeniach pozwoliło na to. Zwykle coś takiego jest, a naprawienie tego poprawia każdy przyszły przebieg. Błąd agenta to często twój system mówiący ci, gdzie jest niekompletny.
Twoje własne błędy zasługują na tę samą ciekawość, a tu pomaga odrobina wyrozumiałości dla siebie. Operatorzy, którzy są wobec siebie surowi, mają skłonność do ukrywania błędów, nawet przed własnymi notesami, bo ich zapisywanie wydaje się rozpamiętywaniem porażki. Ale notes to nie świadectwo szkolne. To narzędzie do stawania się lepszym. Błąd zapisany spokojnie i zbadany to prezent dla ciebie z przyszłości. Błąd zakopany to prezent dla nikogo.
W tym tygodniu za każdym razem, gdy coś pójdzie nie tak, choćby drobiazg, zapisz jedną linijkę: co się stało i dlaczego twoim zdaniem się stało. Nie próbuj jeszcze naprawiać przyczyn. Po prostu zbieraj. Przy przeglądzie tygodniowym przeczytaj linijki i poszukaj wzorca. Jeśli go znajdziesz, napraw jego przyczynę. Zamienisz tydzień irytacji w jedno trwałe ulepszenie, a to bardzo dobra wymiana.
Ryc. 86 · Błędy to dane. Po poprawce ukrywanie zostawia przyczynę; pytanie „dlaczego” prowadzi do wzorca i trwałej naprawy.
Rozdział 87 · Część IX
Notatka z incydentu
Kiedy coś istotnego pójdzie nie tak, wydanie, które zepsuło funkcję, utracony kawałek danych, błąd, który dotarł do klienta, działanie agenta, które nie powinno było się wydarzyć, napisz notatkę z incydentu. Nie obszerny raport, nie formalną analizę poincydentalną, tylko krótką, uporządkowaną notatkę, która uchwyci, co się stało, dlaczego i co się zmieni. Zajmuje to piętnaście minut. To najskuteczniejszy sposób, jaki ma operator, żeby dopilnować, by ta sama rzecz nie wydarzyła się dwa razy.
Notatka odpowiada po kolei na trzy pytania. Co się stało: rzeczowa relacja, z godzinami, jeśli mają znaczenie. Jaki był skutek, kto zauważył, jak to rozwiązano? Niech ta część będzie prosta i konkretna. Dlaczego to się stało: przyczyny, zarówno bezpośrednia, jak i te leżące wyżej. Bezpośrednią przyczyną może być migracja usunęła wiersze z pustymi nazwami. Przyczynami wyżej mogą być brief nie wspominał o pustych nazwach, nie było testu dla tego przypadku, a zmiana scaliła się automatycznie, bo oznaczono ją jako niskiego ryzyka. Co się zmienia: konkretne działania, które podejmiesz, żeby zapobiec powtórce. Każde działanie powinno być konkretne i mieć przypisany termin, nawet jeśli jedyną osobą, której można je przypisać, jesteś ty.
Środkowe pytanie to miejsce, gdzie leży wartość, i warto spędzić tam większość z piętnastu minut. Przydatną techniką jest dopytywanie dlaczego, aż dojdziesz do czegoś, co możesz zmienić w systemie, a nie w danej chwili. Agent usunął wiersze: dlaczego? Bo brief nie mówił, żeby tego nie robić: dlaczego? Bo nie wiedziałem, że istnieją puste nazwy: dlaczego? Bo dane nigdy nie zostały sprofilowane: to jest coś, co możesz naprawić.
Incydent bez notatki to incydent, na którego powtórkę się zgodziłeś.
Sekcja o tym, co się zmienia, powinna zawierać niewielką liczbę prawdziwych działań, a nie długą listę dobrych intencji. Dodaj test. Zaktualizuj przepis. Zmień warunki automerge. Dodaj linijkę do pamięci projektu. Sprofiluj dane. Każde powinno zostać zrobione w ciągu dni, nie tygodni, a notatka powinna zostać zaktualizowana, gdy to nastąpi. Notatka z incydentu, której działania nigdy nie zostają wykonane, to zapis lekcji, której się nie nauczono.
Trzymaj notatki z incydentów razem, w jednym folderze albo jednym pliku, z krótkim indeksem. Czytaj je przy przeglądzie kwartalnym. Wzorce w wielu incydentach często mówią więcej niż jakikolwiek pojedynczy incydent: ciągle brakuje tego samego rodzaju sprawdzenia, ciągle psuje się ten sam rodzaj zmiany, ta sama część działalności ciągle jest krucha. Te wzorce wskazują ulepszenia, które liczą się najbardziej.
Agenci mogą pomóc pisać notatki z incydentów. Daj jednemu oś czasu, odpowiednie diffy i brief i poproś o szkic trzech sekcji. Jego szkic często wskaże przyczyny, których nie wziąłeś pod uwagę. Ale przejrzyj szkic starannie, zwłaszcza część o tym, dlaczego, bo najważniejsze przyczyny to często rzeczy, których agent nie widzi: twoje założenia, twoja presja czasu, twoja wiedza o kliencie.
W tym tygodniu, jeśli coś istotnego pójdzie nie tak, napisz notatkę: co się stało, dlaczego, co się zmienia. Jeśli nic takiego się nie wydarzy, napisz ją dla najpoważniejszego incydentu z ostatniego miesiąca. Potem wykonaj działania. Notatka to dopiero pierwsza połowa. Zmiany są celem.
Ryc. 87 · Notatka z incydentu. Notatka z incydentu w trzech częściach, z drabiną „dlaczego” aż do przyczyny do naprawienia.
Rozdział 88 · Część IX
Bez winnych, nawet w pojedynkę
Zespoły, które dobrze obsługują incydenty, zwykle przyjmują zasadę zwaną kulturą bez szukania winnych: celem przeglądu incydentu jest zrozumienie i ulepszenie systemu, a nie znalezienie kogoś do obwinienia. Ludzie, którzy boją się winy, ukrywają informacje, a ukryte informacje pogarszają system. Mogłoby się wydawać, że ta zasada nie dotyczy operatora w pojedynkę, skoro nie ma kogo winić poza sobą. W rzeczywistości dotyczy go ze szczególną siłą, bo osobą, która najprawdopodobniej cię obwini, jesteś ty.
Obwinianie siebie działa żrąco w konkretny sposób. Kiedy coś idzie nie tak, a twoja pierwsza reakcja brzmi powinienem był to wyłapać, co za głupota, prawdopodobnie zrobisz jedną z dwóch rzeczy. Albo szybko to naprawisz i pójdziesz dalej, unikając dyskomfortu dokładnego przyjrzenia się, co oznacza, że nigdy nie poznasz przyczyny. Albo będziesz to rozpamiętywać, odtwarzając błąd w głowie, co drenuje energię i uwagę, niczego nie poprawiając. Żadna z tych dróg nie prowadzi do spokojnej, ciekawej analizy, która faktycznie zapobiega powtórkom.
Brak szukania winnych mieszka w części wspólnej szczerości i życzliwości. Szczerości, bo musisz jasno spojrzeć na to, co się stało, łącznie z własnym udziałem, bez umniejszania i usprawiedliwiania. Życzliwości, bo do tego jasnego spojrzenia podchodzisz z taką samą dobrą wolą, jaką okazałbyś koledze, który popełnił ten sam błąd: z założeniem, że robił, co mógł, z tym, co wtedy wiedział, i z naciskiem na to, co pomogłoby mu zrobić to lepiej.
Patrz na system, który na to pozwolił, a nie na osobę, która stała najbliżej.
W praktyce oznacza to pisanie notatek z incydentów i dzienników błędów w określonym tonie. Nie niedbale zapomniałem sprawdzić pustego przypadku, tylko pusty przypadek nie został sprawdzony; brief o nim nie wspominał i nie było testu. Oba zdania są prawdziwe. Drugie wskazuje rzeczy, które możesz zmienić. Pierwsze wskazuje tylko uczucie. Nie chodzi o unikanie odpowiedzialności. Wciąż jesteś operatorem, a nazwisko na drzwiach wciąż jest twoje. Chodzi o skierowanie odpowiedzialności tam, gdzie może zdziałać coś dobrego.
Brak szukania winnych rozciąga się też, w dziwny sposób, na agentów. Kiedy agent popełnia błąd, kusi, żeby uznać to za winę agenta i iść dalej albo stracić zaufanie do agentów w ogóle. Podejście bez szukania winnych pyta, co w systemie pozwoliło na ten błąd: brief, uprawnienia, sprawdzenia, pamięć. To pytanie niemal zawsze ma użyteczną odpowiedź. Agent się pomylił prawie nigdy nie jest użyteczną odpowiedzią, bo nie możesz naprawić charakteru agenta, tylko warunki, w jakich pracuje.
Jest też praktyczna korzyść wykraczająca poza lepszą naukę: czujesz się lepiej, a operator, który czuje się lepiej, podejmuje lepsze decyzje. Obwinianie siebie to forma stresu, a stres zawęża uwagę i pogarsza osąd. Operator, który potrafi spokojnie spojrzeć na błąd, wyciągnąć z niego naukę i iść dalej, jest w znacznie lepszej formie przed następną decyzją niż ten, kto nosi błąd w sobie przez całe dni.
W tym tygodniu przeczytaj ponownie kilka ostatnich rzeczy, które napisałeś o własnych błędach, czy to notatki z incydentów, wpisy w notesie, czy po prostu to, co mówiłeś do siebie. Zauważ ton. Jeśli jest surowy, przepisz jedną z nich bez szukania winnych: co się stało, co w systemie na to pozwoliło, co się zmieni. Zobacz, czy przepisana wersja wskazuje lepszą poprawkę. Zwykle wskazuje.
Ryc. 88 · Bez winnych, nawet w pojedynkę. Brak winnych leży tam, gdzie szczerość spotyka życzliwość, i przepisuje notatki w stronę poprawek.
Rozdział 89 · Część IX
Bariery z blizn
Najlepsze bariery ochronne w każdej działalności nie zostały zaprojektowane z góry. Zostały wyuczone. Każda z nich to osad po czymś, co poszło nie tak: blizna, która stała się lekcją, która stała się zasadą. Operator, który systematycznie zamienia blizny w bariery ochronne, kończy z działalnością odporną dokładnie na te błędy, do których ma największą skłonność, a to znacznie lepsza ochrona niż jakikolwiek ogólny zestaw dobrych praktyk.
Łańcuch jest prosty. Coś idzie nie tak i zostawia bliznę: zepsute wydanie, stracone popołudnie, zawstydzona wiadomość do klienta. Notatka z incydentu wydobywa lekcję: dlaczego to się stało, co by temu zapobiegło. Potem lekcja staje się barierą: czymś konkretnym w systemie, co sprawia, że ten błąd następnym razem jest trudniejszy albo niemożliwy. Bariera to zapłata. Bez niej lekcja jest tylko czymś, co masz nadzieję zapamiętać, a na pamięci, jak ta książka nie przestaje powtarzać, nie należy polegać.
Bariery ochronne występują w kilku formach, od miękkich po twarde. Linijka w pliku pamięci albo przepisie, mówiąca agentom, żeby czegoś unikali albo zawsze coś sprawdzali. Krok na liście kontrolnej, jak polecenie zakończenia albo nota do wydania. Test, który nie przechodzi, jeśli błąd się powtórzy. Uprawnienie, które blokuje niebezpieczne działanie. Sprawdzenie w procesie wydań, które blokuje scalenie. Hook albo automatyczna reguła, która interweniuje w chwili ryzyka. Dopasuj twardość do powagi blizny.
Każda zasada w dobrej działalności ma za sobą historię. Dopilnuj, żeby twoje też miały.
Miękkie bariery są tanie i łatwe do dodania i są właściwym wyborem przy drobnych błędach. Linijka w pamięci mówiąca zawsze sprawdzaj, czy daty są w strefie czasowej użytkownika wystarczy przy błędzie, który raz spowodował drobne zamieszanie. Twarde bariery wymagają więcej wysiłku i są właściwym wyborem przy poważnych albo powtarzających się błędach. Jeśli raz zacommitowano sekret, skaner sekretów blokujący pushe to twarda bariera, która sprawia, że ponowne wydarzenie się tego jest prawie niemożliwe, i jest warta konfiguracji.
Trzymaj historię razem z barierą. Kiedy dodajesz zasadę do pliku pamięci, dodaj krótką notkę dlaczego: dodane po marcowym incydencie z eksportem. Kiedy dodajesz sprawdzenie, odwołaj się do notatki z incydentu. Ma to znaczenie z dwóch powodów. Pozwala ci później ocenić, czy bariera jest wciąż potrzebna; jeśli przyczyna źródłowa została usunięta, barierę może da się zdjąć. I sprawia, że bariera nie wygląda na arbitralną, ani dla ciebie, ani dla nikogo innego, co zwiększa szansę, że będzie szanowana.
Bariery też mogą, jak wszystko inne, nagromadzić się w bałagan. Plik pamięci z pięćdziesięcioma zasadami, każda z innej blizny, może stać się trudny do przestrzegania dla agentów i trudny do utrzymania dla ciebie. Przycinaj bariery przy przeglądzie kwartalnym tak, jak przycinasz pamięć. Usuń te, których przyczyny zniknęły. Awansuj miękkie, które ciągle okazują się potrzebne, na twardsze, które egzekwują się same. Scal te, które się pokrywają.
W tym tygodniu spójrz na swoje ostatnie trzy incydenty albo poważniejsze błędy. Przy każdym sprawdź, czy dodano barierę. Jeśli nie, dodaj ją, dobierając twardość do powagi. Zachowaj z nią historię. Blizna po bliźnie działalność przybiera kształt własnego doświadczenia.
Ryc. 89 · Bariery z blizn. Blizny stają się lekcjami, potem barierami, których twardość odpowiada powadze.
Rozdział 90 · Część IX
Nawyk runbooka
Runbook to spisana procedura zrobienia czegoś: wdrożenia projektu, odtworzenia kopii zapasowej, zmiany danych uwierzytelniających, wdrożenia nowego klienta, przygotowania świeżego komputera. Większe organizacje prowadzą runbooki, bo wiele osób musi wykonywać te same zadania w spójny sposób. Operator w pojedynkę potrzebuje ich z innego powodu: osobą, która wykona zadanie następnym razem, będziesz ty, za kilka miesięcy, po zapomnieniu każdego szczegółu.
Nawyk jest prosty. Jeśli zrobiłeś coś dwa razy i spodziewasz się zrobić to znowu, zapisz to. Nie dopracowany dokument, tylko kroki po kolei, sprawdzenie po każdym kroku, które potwierdzi, że zadziałał, i informację, jak to cofnąć, jeśli coś pójdzie nie tak. To jest runbook. Trzymaj go w zwykłym tekście, przy projekcie albo obok swoich przepisów.
Wyzwalacz, czyli zrobione dwa razy, jest ważny. Pisanie runbooka po zrobieniu czegoś raz zwykle uchwyca szczegóły tej jednej okazji, a nie ogólną procedurę. Pisanie go po drugim razie uchwyca to, co było wspólne dla obu, czyli procedurę. Pisanie go po piątym razie oznacza, że trzeci, czwarty i piąty raz spędziłeś na odtwarzaniu tego, co zapomniałeś. Dwa razy to złoty środek.
Osobą, która będzie potrzebować runbooka, jesteś ty, w zły dzień, po zapomnieniu wszystkiego.
Sprawdzenie po każdym kroku odróżnia runbook od listy instrukcji. Instrukcje mówią ci, co zrobić. Runbook mówi ci też, skąd wiedzieć, że zadziałało: po wdrożeniu otwórz stronę health check i potwierdź, że pokazuje nową wersję. Bez sprawdzeń runbook można wykonać perfekcyjnie i wciąż dostać zepsuty wynik, bo jeden krok po cichu zawiódł i nic ci o tym nie powiedziało.
Sekcja o cofaniu to to, co sprawia, że runbook można bezpiecznie wykonywać pod presją. Jeśli krok zawiedzie w połowie, musisz wiedzieć, czy kontynuować, ponowić, czy wrócić, a jeśli wrócić, to jak. Zapisanie tego z góry, na spokojnie, jest dużo lepsze niż wymyślanie tego w danej chwili. Przy wielu rutynowych procedurach cofnięcie jest banalne. Przy niektórych to najważniejsza część dokumentu.
Runbooki i przepisy to bliscy kuzyni, a granica między nimi jest rozmyta. Przepis to brief dla agenta; runbook to procedura, którą możesz wykonać ty albo agent. Wielu operatorów odkrywa, że ich runbooki stopniowo stają się wykonywalne przez agentów: kroki są na tyle jasne, że agent może się nimi kierować, a ty przeglądasz sprawdzenia. To dobry kierunek, o ile runbook wciąż da się przeczytać człowiekowi w dniu, w którym agent nie jest dostępny.
Testuj runbooki od czasu do czasu. Runbook, którego nie wykonywano od pół roku, może odwoływać się do kroków, które się zmieniły, narzędzi, które się przeniosły, albo ustawień, które już nie istnieją. Kalendarz utrzymania to dobre miejsce, żeby zaplanować okresową próbę na sucho najważniejszych z nich: wdrożenia, odtworzenia, zmiany danych. Popraw wszystko, co jest nieaktualne.
W tym tygodniu znajdź jedną procedurę, którą wykonałeś co najmniej dwa razy, i napisz jej runbook: kroki, sprawdzenia, cofnięcie. Potem wykonaj go raz, dokładnie tak, jak jest zapisany, i popraw wszystko, co znajdziesz. Zdziwisz się, ile drobnych szczegółów twoja pamięć po cichu uzupełniała. Teraz przechowuje je runbook, co oznacza, że twoja pamięć już nie musi.
Ryc. 90 · Nawyk runbooka. Napisz runbook za drugim razem: kroki, sprawdzenie po każdym i sposób cofnięcia.
Część X
Decydować, nie robić
Prawdziwa praca operatora, wprost.
Rozdział 91 · Część X
Kolejka decyzji
Każdy operator ma zaległości w zadaniach. Mniej z nich zdaje sobie sprawę, że mają też zaległości w decyzjach i że to te drugie faktycznie ograniczają działalność. Zadania można delegować; agenci chętnie przerobią ich długą listę. Decyzji nie. Każdy wątek czekający na twoją odpowiedź, każdy projekt czekający, aż wybierzesz kierunek, każdy przegląd czekający na twój werdykt to decyzja w kolejce, a długość tej kolejki to prawdziwa miara tego, jak bardzo działalność czeka na ciebie.
Pierwszym krokiem jest uczynienie kolejki decyzji widoczną. Większość operatorów nosi ją w głowie, co oznacza, że nie widzą, jak jest długa, i nie potrafią ustalać w niej priorytetów. Zapisz ją. Jedna lista, z linijką na każdą oczekującą decyzję: co trzeba zdecydować, co to blokuje i do kiedy trzeba zdecydować. Uwzględnij małe tak samo jak duże, bo niepodjęte małe decyzje blokują wątki równie skutecznie jak duże.
Nie wszystko, co wygląda na decyzję, nią jest. Agenci zadają mnóstwo pytań, a na wiele z nich może odpowiedzieć brief, pamięć albo stała polityka. Za każdym razem, gdy łapiesz się na tym, że odpowiadasz na to samo pytanie drugi raz, to znak, że należy ono do pamięci, a nie do kolejki. Za każdym razem, gdy łapiesz się na decydowaniu o czymś, co rozstrzygnęłaby jasna polityka, napisz tę politykę. Kolejka powinna zwężać się od wszystkiego, o co pytają agenci, przez prawdziwe decyzje, które wymagają ciebie, aż do kilku, które trzeba podjąć dzisiaj.
Twoje zaległe zadania to problem agentów. Twoje zaległe decyzje to problem twój.
Pracuj nad kolejką świadomie. W porannym przeglądzie spójrz na nią i wybierz decyzje, które odblokowują najwięcej. Podejmij je najpierw, w swoich najlepszych godzinach. Decyzje, które blokują kilka wątków, są warte znacznie więcej niż te, które blokują jeden. Decyzje z terminami idą przed tymi bez terminów. A decyzje łatwe należy podejmować od razu, bo łatwa decyzja pozostawiona w kolejce kosztuje tyle samo uwagi co trudna, za każdym razem, gdy na nią patrzysz.
Wiele decyzji jest powolnych nie dlatego, że są trudne, ale dlatego, że są niewygodne: odmówienie komuś, zakończenie projektu, przyznanie, że kierunek był błędny. Zwykle opadają na dno kolejki i tam zostają. Zauważaj je. Decyzja, która leży w kolejce dłużej niż tydzień, to niemal zawsze jedna z takich, a dyskomfort jej podjęcia jest niemal zawsze mniejszy niż koszt jej zostawienia. Kolejne rozdziały mówią o tym więcej.
W tym tygodniu spisz swoją kolejkę decyzji. Każda oczekująca decyzja, z tym, co blokuje, i terminem. Potem każdego ranka podejmuj trzy, które odblokowują najwięcej. Na koniec tygodnia porównaj długość kolejki z tym, od czego zaczęła. Jeśli jest krótsza, działalność ruszyła szybciej, bo to, na co głównie czekała, to byłeś ty.
Ryc. 91 · Kolejka decyzji. Pytania agentów zawężają się do prawdziwych decyzji, potem do trzech, które najwięcej odblokują.
Rozdział 92 · Część X
Drzwi w jedną i w dwie strony
Decyzje różnią się tym, jak łatwo je cofnąć. Niektóre są drzwiami w dwie strony: możesz przez nie przejść, rozejrzeć się i wrócić, jeśli ci się nie spodoba. Wypróbowanie nowego układu, poprawienie przepisu, wybór, nad którym projektem pracować w tym tygodniu, wybór narzędzia na okres próbny. Inne są drzwiami w jedną stronę: po przejściu nie da się łatwo wrócić. Usunięcie danych, podpisanie umowy, opublikowanie czegoś dla dużej publiczności, zobowiązanie się do publicznego terminu, zakończenie relacji z klientem.
To rozróżnienie ma znaczenie, bo oba rodzaje zasługują na zupełnie inne traktowanie. O drzwiach w dwie strony należy decydować szybko. Koszt złego wyboru jest mały, bo możesz go odwrócić, a koszt powolnego decydowania jest prawdziwy, bo działalność czeka. Zbieranie kolejnych informacji czy dłuższe rozważania rzadko poprawiają decyzję o drzwiach w dwie strony na tyle, żeby uzasadnić zwłokę. Zdecyduj, patrz, co się dzieje, koryguj.
Drzwi w jedną stronę zasługują na więcej staranności. Tu koszt złego wyboru może być duży i trwały, a pewna doza namysłu się opłaca. Zbierz dowody, które mają znaczenie. Prześpij się z tym, jeśli możesz. Poproś agenta, żeby argumentował za drugą stroną. Szukaj sposobów, żeby decyzja była bardziej odwracalna, jak sugerował rozdział o wydawaniu i szlifie: okres próbny, małe wydanie, kopia zapasowa, zobowiązanie rozłożone na etapy.
Większość decyzji to drzwi w dwie strony przebrane za drzwi w jedną. Sprawdź zawiasy.
Pomyśl o decyzjach na dwóch osiach: jak bardzo są odwracalne i jak wysoka jest stawka. Decyzje odwracalne, o niskiej stawce, to te, przy których powinieneś decydować szybko i iść dalej. Ta ćwiartka zawiera większość decyzji operatora, co oznacza, że większość decyzji powinna być szybka. Częstą porażką jest traktowanie ich tak, jakby leżały w rogu nieodwracalnym i wysokiej stawki, i rozważanie wyborów, które można po prostu wypróbować i skorygować.
Zdarza się też porażka przeciwna, zwłaszcza przy agentach. Ponieważ agenci sprawiają, że działanie jest tak łatwe, można przejść przez drzwi w jedną stronę z prędkością właściwą drzwiom w dwie strony. Usunięcie wykonane przez agenta w kilka sekund jest tak samo nieodwracalne jak wykonane ręcznie. Mail wysłany przez przepis dociera do wszystkich tak samo. Polityka uprawnień i poziom „najpierw zapytaj” istnieją w dużej mierze po to, żeby spowalniać drzwi w jedną stronę, tak by dostały namysł, na jaki zasługują.
Przydatnym nawykiem jest oznaczanie decyzji przy dodawaniu ich do kolejki: w jedną stronę albo w dwie strony. Etykieta mówi ci, ile czasu poświęcić. Decyzje w dwie strony dostają minutę i wybór. Decyzje w jedną stronę dostają porządną uwagę, najlepiej w twoich najlepszych godzinach, z dowodami i nocą snu, gdzie to możliwe. Z czasem zauważysz, że etykieta „w dwie strony” pasuje znacznie częściej, niż podpowiadał ci instynkt.
W tym tygodniu oznacz każdą decyzję w kolejce. Wszystkie w dwie strony podejmij dziś, szybko, bez rozdzierania szat. Tym w jedną stronę daj czas, jakiego potrzebują. Zauważ, o ile krótsza staje się kolejka i jak niewielu z szybkich decyzji później żałujesz. Tych, których żałujesz, możesz cofnąć. O to właśnie chodziło.
Ryc. 92 · Drzwi w jedną i w dwie strony. Decyzje posortowane wg odwracalności i stawki; odwracalne o niskiej stawce idą szybko.
Rozdział 93 · Część X
Odmawianie dobrym pomysłom
Agenci są hojni w pomysłach. Poproś jednego o przegląd projektu, a zaproponuje ulepszenia. Poproś jednego o zbadanie rynku, a wskaże okazje. Poproś jednego o naprawienie błędu, a całkiem możliwe, że wspomni o trzech innych rzeczach wartych zrobienia przy okazji. Większość tych pomysłów jest dobra. I właśnie w tym problem. Operator, który mówi tak każdemu dobremu pomysłowi, nigdy niczego nie skończy, bo zawsze będzie przychodził kolejny dobry pomysł, szybciej, niż da się zrealizować poprzedni.
Umiejętność nie polega więc na odróżnianiu dobrych pomysłów od złych. Złym pomysłom łatwo odmówić. Umiejętność polega na mówieniu nie albo jeszcze nie dobrym pomysłom, bo nie pasują do obecnych priorytetów, bo w tym tygodniu nie ma na nie uwagi albo bo skończenie tego, co już zaczęte, jest warte więcej. To trudniejsze, niż brzmi, bo każdy dobry pomysł przychodzi z własną małą poświatą możliwości, a odmowa wydaje się stratą.
Pomaga pamiętanie, ile naprawdę kosztuje powiedzenie tak. Każdy nowy pomysł, który staje się projektem, zajmuje miejsce w rejestrze, część twojej uwagi, wątki do zbriefowania i przejrzenia, a w końcu decyzje o swojej przyszłości. Kosztem nie jest czas agenta, który jest tani. Jest nim twój, który tani nie jest. Tak dla nowego pomysłu to ciche nie dla czegoś innego, zwykle dla tego, co miałeś właśnie kończyć.
Agenci generują opcje. Zadaniem operatora jest je przycinać.
Odmowa nie oznacza utraty pomysłu. Kolejka istnieje właśnie po to. Zapisz pomysł w jednej linijce, zanotuj, skąd się wziął, i pozwól mu konkurować ze wszystkim innym przy następnym przeglądzie tygodniowym albo kwartalnym. Wiele dobrych pomysłów po kilku tygodniach w kolejce okazuje się mniej porywających, niż się wydawały. Kilka okazuje się jeszcze lepszych i te zostają zaczęte w wybranym przez ciebie momencie, z porządną uwagą, a nie wciśnięte w tydzień, który już był pełny.
Niektórzy operatorzy uznają za pomocne trzymanie się prostej zasady: żaden nowy projekt nie startuje, dopóki istniejący się nie skończy albo nie zostanie odłożony. Jeden wchodzi, jeden wychodzi. Wymusza to porównanie, którego wymaga odmawianie: czy ten nowy pomysł jest lepszy niż najsłabsza rzecz, którą obecnie prowadzę? Jeśli tak, zamień je. Jeśli nie, nowy pomysł czeka. Zasada zamienia mglisty dyskomfort w jasną decyzję.
Warto też powiedzieć agentom o swoim apetycie na pomysły. Linijka w pamięci w rodzaju zanotuj inne ulepszenia na końcu raportu; nie wdrażaj ich utrzymuje dopływ pomysłów, nie pozwalając im przeciekać do pracy. Dostajesz korzyść z sugestii agenta bez kosztu niekontrolowanego zakresu.
W tym tygodniu licz dobre pomysły, które do ciebie trafiają, od agentów, z lektur, z własnej głowy. Powiedz tak najwyżej jednemu. Resztę wstaw do kolejki. Na koniec tygodnia przeczytaj kolejkę. Zauważ, które pomysły wciąż ekscytują, a które przybladły. Te przybladłe to uwaga, którą zaoszczędziłeś, mówiąc nie.
Ryc. 93 · Odmawianie dobrym pomysłom. Nowy pomysł musi pobić najsłabszą prowadzoną rzecz, inaczej czeka w kolejce.
Rozdział 94 · Część X
Decydowanie przy niepełnych dowodach
Wcześniejsze rozdziały nalegały na dowody: dowody ponad zapewnienia, dowody przy każdym przeglądzie, dowody przed każdym wydaniem. To wciąż prawda. Ale po drugiej stronie czai się pułapka, w którą sumienni operatorzy często wpadają: czekanie na pełne dowody przed podjęciem decyzji. Pełne dowody rzadko nadchodzą. Większość decyzji trzeba podejmować z tym, co się ma, a umiejętność polega na wiedzy, kiedy to, co masz, wystarczy.
Wystarczy to miejsce, gdzie spotykają się dwie rzeczy: dowody, które masz, i czas, który masz. Więcej dowodów zawsze byłoby miło. Więcej czasu zawsze byłoby miło. Ale w pewnym momencie wartość kolejnych dowodów przeważa koszt czekania na nie i w tym momencie należy decydować. Przychodzi on wcześniej przy drzwiach w dwie strony niż przy drzwiach w jedną, wcześniej przy decyzjach o niskiej stawce niż o wysokiej i wcześniej, niż instynktownie czuje większość ostrożnych ludzi.
Agenci sprawiają, że łatwiej wpaść w tę pułapkę, bo zbieranie dowodów staje się tak tanie. Zawsze możesz poprosić o kolejną analizę, kolejne porównanie, kolejną rundę badań. Każda jest szybka i każda wydaje się odpowiedzialna. Ale każda też opóźnia decyzję, a działalność czeka. W pewnym momencie proszenie o kolejne badania staje się sposobem na uniknięcie dyskomfortu zobowiązania i badania przestają służyć decyzji. Zastępują ją.
Pytanie nie brzmi, czy wiesz dość, żeby mieć pewność. Brzmi, czy wiesz dość, żeby działać.
Przydatnym testem jest zapytanie, jakie dowody zmieniłyby twoje zdanie. Jeśli umiesz je nazwać i da się je zdobyć w rozsądnym czasie, zdobądź je. Jeśli nie umiesz nazwać niczego, co zmieniłoby twoje zdanie, już zdecydowałeś i tylko odwlekasz ogłoszenie. Jeśli dowody, które zmieniłyby twoje zdanie, są nieosiągalne albo ich zdobycie trwałoby dłużej, niż decyzja może czekać, zdecyduj teraz z tym, co masz.
Inny test to wyobrażenie sobie, że decyzja idzie źle, i zapytanie, czy więcej dowodów by temu zapobiegło. Czasem tak: szybkie sprawdzenie danych ujawniłoby problem. Często nie: wynik zależał od rzeczy, których nie dało się poznać z góry. W tym drugim przypadku czekanie by nie pomogło, a szybka decyzja przynajmniej dała ci więcej czasu, żeby zauważyć i skorygować.
Kiedy już decydujesz przy niepełnych dowodach, powiedz to, w dzienniku decyzji. Zdecydowano iść z mniejszą wersją; dowody co do popytu są wątłe, ale czekanie kolejny miesiąc kosztowałoby więcej. Wrócić do tego po pierwszych dwóch tygodniach użytkowania. To uczciwie zapisuje niepewność i wbudowuje moment na sprawdzenie, czy decyzja się obroniła. Chroni cię też później przed fałszywym wspomnieniem, że byłeś pewniejszy, niż byłeś.
W tym tygodniu spójrz na najstarszą decyzję w kolejce. Zapytaj, jakie dowody zmieniłyby twoje zdanie. Jeśli możesz je zdobyć dziś, zdobądź. Jeśli nie, zdecyduj teraz, zapisz niepewność i ustal datę powrotu. Zauważ, że świat się nie skończył. Rzadko się kończy, a działalność znów rusza.
Ryc. 94 · Decydowanie przy niepełnych dowodach. Decyduj tam, gdzie wartość dalszych dowodów spada poniżej rosnącego kosztu czekania.
Rozdział 95 · Część X
Cena niedecydowania
Niedecydowanie wydaje się zostawianiem otwartych opcji. Nie jest nim. Niedecydowanie samo w sobie jest decyzją, zwykle kiepską, podjętą przez zaniechanie, a nie z wyboru. Kiedy zostawiasz decyzję niepodjętą, świat nie czeka. Rzeczy dryfują, okoliczności się zmieniają, a w końcu dzieje się coś, co rozstrzyga sprawę za ciebie, rzadko w sposób, jaki byś wybrał.
Wzorzec jest niezawodny. Odkładasz decyzję, bo jest niewygodna albo chcesz więcej informacji, albo nie wydaje się pilna. Póki jest odłożona, działalność dryfuje wokół niej. Wątki, które od niej zależą, stają albo idą dalej na założeniach. Zapadają inne decyzje, które zakładają tę albo inną odpowiedź. Mija czas i opcje po cichu się zamykają. W końcu wygrywa ustawienie domyślne: projekt umiera z zaniedbania, klient dokonuje wyboru za ciebie, przychodzi termin i wymusza to, co akurat jest najbliżej pod ręką. Decyzja zapadła. Tyle że to nie ty ją podjąłeś.
Koszty niedecydowania są w większości niewidoczne i dlatego tak łatwo je ponieść. Nikt nie przysyła ci rachunku za tydzień, w którym projekt stał, czekając na ciebie. Nikt nie zwraca uwagi, że trzy wątki poszły dalej na błędnym założeniu, bo decyzji, której potrzebowały, nie było. Ale te koszty są prawdziwe, a w jednoosobowej działalności spadają w całości na ciebie.
Jeśli ty nie zdecydujesz, zrobi to coś innego. I nie będzie miało na względzie twojego interesu.
Jest też cena emocjonalna. Nierozstrzygnięte sprawy siedzą w głowie i wytwarzają niski poziom niepokoju. Wypływają w dziwnych momentach, pod prysznicem, o trzeciej nad ranem, w środku niezwiązanej pracy. Sprawiają, że kolejka decyzji wydaje się cięższa, niż jest. Wielu operatorów odkrywa, że podjęcie długo odkładanej decyzji, nawet niedoskonałej, przynosi natychmiastową i nieproporcjonalną ulgę. Ta ulga to koszt, który płacili, nie zauważając tego.
Lekarstwem nie jest natychmiastowe decydowanie o wszystkim; niektórym decyzjom czas naprawdę służy. Lekarstwem jest uczynienie odkładania również decyzją. Kiedy postanawiasz czegoś teraz nie rozstrzygać, zapisz, kiedy to rozstrzygniesz i na co czekasz. Decyzja o zmianie cen piętnastego, po pierwszym tygodniu danych o użytkowaniu. To świadome odroczenie i jest w porządku. Nie w porządku jest otwarte zastanowię się, bo tak właśnie decyzje dryfują w ustawienia domyślne.
Przegląd tygodniowy to dobre miejsce do wyłapywania dryfujących decyzji. Szukaj w kolejce decyzji wszystkiego, co leży tam dłużej niż tydzień bez daty. Każda taka pozycja to albo świadome odroczenie, któremu brakuje daty, albo dryfująca decyzja. Pierwszemu rodzajowi daj datę. Drugi rozstrzygnij teraz.
W tym tygodniu znajdź decyzję, której unikasz najdłużej. Podejmij ją dziś, z takimi dowodami, jakie masz. Zapisz, co zdecydowałeś i dlaczego. Potem zauważ ulgę i wątki, które znów ruszają. To cena niedecydowania, zwrócona.
Ryc. 95 · Cena niedecydowania. Odroczenie bez końca dryfuje w domyślną opcję; odroczenie z datą pozostaje decyzją.
Rozdział 96 · Część X
Osądu się nie deleguje
W miarę jak agenci stają się coraz zdolniejsi, granica tego, co potrafią, ciągle się przesuwa. Zadania, które w zeszłym roku wymagały człowieka, w tym roku są dla agenta rutyną. Naturalne jest zastanawianie się, czy granica w końcu obejmie wszystko i czy rola operatora skurczy się do zera. Nie skurczy się, a powód warto jasno zrozumieć, bo mówi ci, gdzie inwestować we własny rozwój.
Pomyśl o pracy jak o stosie. Na dole jest to, jak powstaje: pisanie, kodowanie, projektowanie, badanie. Ta warstwa daje się coraz łatwiej delegować i agenci co miesiąc przejmują jej więcej. Nad nią jest to, czy wychodzi: przegląd, poprzeczka jakości, decyzja o wydaniu. Agenci mogą tę warstwę ogromnie wspierać, przeprowadzając sprawdzenia, porównując opcje, flagując ryzyka, ale pod decyzją jest twoje nazwisko. Nad tym jest to, co znaczy dobrze: standardy, gust, definicja ukończenia dla tej konkretnej pracy, dla tych konkretnych ludzi. A na szczycie jest to, po co to wszystko: które problemy warto rozwiązywać, które projekty warto prowadzić, czemu działalność ma służyć.
Wyższe warstwy opierają się delegowaniu nie dlatego, że agenci nie potrafią mieć o nich zdania. Agenci potrafią wyprodukować całkiem sensowne zdanie na niemal każdy temat. Opierają się delegowaniu, bo zależą od rzeczy, które masz tylko ty: twoich relacji, twoich wartości, twojej wiedzy o własnych okolicznościach, twojej gotowości do odpowiadania za wynik. Agent może zaproponować, dlaczego projekt ma znaczenie. Nie może się przejąć tym, czy ma, i nie może zostać pociągnięty do odpowiedzialności, jeśli się pomylił.
Agenci mogą ci powiedzieć, co jest możliwe. Tylko ty możesz powiedzieć, co jest tego warte.
Ma to praktyczne konsekwencje dla tego, jak spędzasz własny czas na naukę. Dolna warstwa to miejsce, gdzie agenci poprawiają się najszybciej, a intensywne inwestowanie tam we własne umiejętności daje malejące zwroty. Górne warstwy to miejsce, gdzie twój osąd jest niezastąpiony, i one nagradzają inwestycję: lepsze rozumienie użytkowników, wyostrzanie gustu, większą jasność co do tego, co próbujesz osiągnąć, naukę szybszego i lepszego decydowania. To umiejętności, które czynią cię cenniejszym, w miarę jak agenci się poprawiają, a nie mniej cennym.
Ma to też konsekwencje dla tego, jak używasz agentów. Deleguj dół stosu swobodnie. Intensywnie używaj agentów do wspierania środka, prosząc o opcje, dowody i krytykę. Na szczycie używaj ich oszczędnie i ostrożnie, jako rozmówców do przemyśleń, a nie decydentów. Operator, który pyta agenta, jakie projekty prowadzić, a potem po prostu je prowadzi, nie oddelegował osądu. Porzucił go.
Nic z tego nie jest namową do podejrzliwości. Agenci są niezwykłymi współpracownikami na każdej warstwie. Chodzi tylko o to, że współpraca i delegowanie to różne rzeczy. Możesz współpracować przy osądzie. Nie możesz go oddać, bo w chwili, gdy to zrobisz, nie jesteś już operatorem. Jesteś pasażerem.
W tym tygodniu spójrz na decyzje, które podjąłeś, i zapytaj przy każdej, na której warstwie stosu leżała. Zauważ, gdzie opierałeś się na agentach, a gdzie nie. Jeśli odkryjesz, że delegujesz górne warstwy, odbierz je. Jeśli odkryjesz, że dolną warstwę wciąż robisz sam, odpuść ją. Stos sortuje się sam, kiedy już go widzisz.
Ryc. 96 · Osądu się nie deleguje. Cztery warstwy pracy, od tego, jak powstaje, po to, dlaczego ma znaczenie, i część agenta.
Rozdział 97 · Część X
Ucz tego, co prowadzisz
Istnieje stare spostrzeżenie, że naprawdę rozumiesz coś dopiero wtedy, gdy potrafisz tego nauczyć. Dla operatora ma ono praktyczne ostrze. Spisanie, jak działa twoja działalność, na tyle jasno, żeby ktoś inny mógł się tym kierować, to jeden z najlepszych sposobów na odkrycie, co faktycznie robisz, co tylko ci się wydaje, że robisz, i gdzie są luki. Uczenie tego, co prowadzisz, to sposób na prowadzenie tego lepiej.
Oczywistą formą jest dokumentacja dla współpracownika. Jeśli kiedykolwiek wprowadzisz kogoś do swojej działalności, nawet na krótko, będziesz musiał wyjaśnić, jak ona działa: rytm, rejestr, przepisy, standardy przeglądu, proces wydań. Napisanie takiego wyjaśnienia wymusza rodzaj jasności, jakiego nie daje codzienna praktyka. Odkrywasz nawyki, których nigdy nie wypowiedziałeś, zasady, które stosowałeś niekonsekwentnie, i kroki, które miały sens tylko dlatego, że znałeś historię.
Ale nie potrzebujesz współpracownika, żeby na tym skorzystać. Pisanie dla wyobrażonego nowicjusza działa niemal równie dobrze. Podobnie pisanie dla agentów, czym w pewnym sensie już są pliki pamięci i przepisy: dokumentami szkoleniowymi dla bardzo szybkiego, bardzo dosłownego ucznia, który przez noc wszystko zapomina. Operator, który pisze dobre pliki pamięci, już uczy i może rozszerzyć ten nawyk na całą działalność.
Wyjaśnienie swojego systemu komuś innemu to najszybszy sposób, żeby dowiedzieć się, czym on jest.
Uczenie przybiera kilka form zebranych wokół tego samego środka. Spisanie: ujęcie działalności w słowa, we własnym podręczniku. Wyjaśnienie: opisanie jej na głos komuś, co ujawnia inne luki niż pisanie. Udostępnienie: opublikowanie jej części, co zaprasza pytania, których nigdy byś sobie nie zadał. I dopracowanie: wykorzystanie tego, czego nauczyłeś się, pisząc, wyjaśniając i udostępniając, do ulepszenia samej działalności. Każda z nich zasila pozostałe.
Zwłaszcza udostępnianie jest niedoceniane przez operatorów w pojedynkę, którzy zwykle uważają, że ich metody są zbyt osobliwe, żeby kogokolwiek zainteresować. Zwykle się mylą. Inni ludzie prowadzący podobne działalności mierzą się z podobnymi problemami i często cieszą się, widząc, jak rozwiązał je ktoś inny. A samo przygotowywanie czegoś do przeczytania przez innych podnosi twój własny standard: nie opublikujesz opisu swojego procesu wydań, nie upewniwszy się najpierw, że to proces wydań, z którego byłbyś dumny.
Dla operatora w pojedynkę jest jeszcze jedna korzyść. Spisany opis tego, jak działa twoja działalność, to ubezpieczenie. Jeśli zachorujesz, wyjedziesz na urlop albo po prostu cię przez jakiś czas nie będzie, opis pozwoli tobie albo komukolwiek, kto ci pomaga, podjąć wątki. To runbook samej działalności, na najwyższym poziomie, i jak każdy runbook jest użyteczny tylko wtedy, gdy został napisany, zanim był potrzebny.
W tym tygodniu napisz jedną stronę wyjaśniającą, jak działa twój dzień operacyjny, dla wyobrażonego nowicjusza: przegląd, sesje, zamknięcie, rejestr, sposób, w jaki briefujesz i przeglądasz. Bądź konkretny. Potem przeczytaj to i zaznacz wszystko, co cię zaskoczyło, co przeczyło temu, co faktycznie robisz, albo co trudno było wyjaśnić. Te zaznaczenia to twoje następne ulepszenia. Zamierzałeś uczyć, a skończyło się na tym, że się nauczyłeś, i zwykle tak to właśnie idzie.
Ryc. 97 · Ucz tego, co prowadzisz. Pisanie, tłumaczenie i dzielenie się swoją operacją pomaga ją doskonalić.
Rozdział 98 · Część X
Operator przyszłości
Dokąd zmierza ta rola? Każda uczciwa odpowiedź zaczyna się od niepewności. Narzędzia szybko się zmieniają, możliwości agentów rozszerzają się w sposób trudny do przewidzenia, a każdy, kto twierdzi, że wie dokładnie, jak za kilka lat będzie wyglądał dzień operatora w pojedynkę, zgaduje z dużą pewnością siebie. Ale kierunek jest widoczny, a kierunek sugeruje, że rdzeń tej książki będzie miał większe znaczenie, a nie mniejsze.
Dotychczasowy trend prowadzi ku coraz dłuższym smyczom. Agenci pracują dłużej bez zaglądania, biorą na siebie większe kawałki pracy, koordynują się nawzajem, działają w tle i według harmonogramów i przejmują więcej rutynowego osądu, który kiedyś wymagał człowieka. Każdy krok odsuwa operatora dalej od robienia i przesuwa go ku brzegom pracy: ustalaniu intencji na początku i sprawowaniu osądu na końcu.
Ten kształt to protokół w sercu pracy operatora i jest widoczny już dziś. Operator określa intencję: czego chce i dlaczego, z definicją ukończenia. Agenci zwracają pracę i dowód: wynik i dowody, że spełnia intencję. A operator sprawuje osąd: czy to jest dobre, czy wychodzi, co dalej. W miarę jak agenci się poprawiają, środek tej wymiany staje się dłuższy i zdolniejszy. Początek i koniec zostają przy operatorze i stają się większą częścią tego, co operator robi.
Im więcej robią agenci, tym mniej robi operator, a to, co robi, ma tym większe znaczenie.
Co to oznacza dla umiejętności wartych budowania? Jasna intencja: zdolność do precyzyjnego powiedzenia, czego chcesz, czyli brief, definicja ukończenia, ograniczenia. Trafny osąd: zdolność do oceny pracy i zdecydowania, co z nią zrobić, czyli przegląd, gust, decyzja o wydaniu. I dobry rytm: zdolność do takiego ułożenia własnego czasu i uwagi, żeby intencja i osąd były sprawowane w najlepszej formie, czyli dzień operacyjny, przegląd tygodniowy, budżet energii. Każda część tej książki dotyczy jednej z tych trzech.
Oznacza to też, że praca operatora staje się pod pewnymi względami bardziej ludzka. Kiedy robienie jest delegowane, zostaje ta część, która zależy od bycia konkretną osobą z konkretnymi relacjami, wartościami i obowiązkami. Zrozumienie, czego klient naprawdę potrzebuje. Zdecydowanie, co warto budować. Wzięcie odpowiedzialności za wynik. To nie są umiejętności techniczne i nie stają się przestarzałe, kiedy technologia się poprawia. Stają się pracą.
Będą nowe narzędzia, nowe praktyki i nowe nazwy rzeczy, a niektóre szczegóły w tej książce się zestarzeją. Traktuj szczegóły jako przykłady, a zasady jako treść. Zasady, jasne briefy, dowody ponad zapewnienia, małe wydania, uczciwe zapisy, zrównoważony rytm, odpowiedzialność za rezultaty, są starsze niż agenci i przetrwają każdą ich konkretną wersję.
W tym tygodniu zapytaj się, która z trzech, intencja, osąd czy rytm, jest twoją najsłabszą stroną. Wybierz z tej książki jedną praktykę, która ją wzmacnia, i stosuj ją przez miesiąc. Przyszłość tej roli nagrodzi operatora, który stał się lepszy na brzegach, podczas gdy środek był automatyzowany. Zacznij teraz. Środek już się rusza.
Ryc. 98 · Operator przyszłości. Zamiar wychodzi, praca i dowody wracają; środek rośnie, brzegi zostają twoje.
Rozdział 99 · Część X
Podręcznik jako nawyk
Podręcznika nie czyta się raz. Służy do używania: otwierania, gdy pojawia się konkretny problem, sięgania po niego, gdy jakiś nawyk się rozluźnił, ponownego czytania, gdy coś nie działa, a ty nie potrafisz do końca powiedzieć dlaczego. Ten nie jest wyjątkiem. Jego sto rozdziałów to nie kurs do zaliczenia, tylko zestaw praktyk do przyjmowania, po kilka naraz, i do wracania do nich, w miarę jak zmienia się twoja działalność.
Cykl, który zamienia podręcznik w nawyk, ma trzy kroki. Przeczytaj rozdział albo część, kiedy jest istotna. Ćwicz to, co proponuje, przez tydzień albo dwa, świadomie, w swojej faktycznej pracy. Potem poprawiaj: zdecyduj, czy praktyka działa u ciebie w zapisanej postaci, czy wymaga dostosowania, czy należy ją porzucić. Potem czytaj znowu, kiedy przyjdzie następny problem. Ćwiczenie to krok, który się liczy. Czytanie bez ćwiczenia to rozrywka. Ćwiczenie bez poprawiania to sztywność. Cykl potrzebuje wszystkich trzech.
Nie próbuj przyjąć wszystkiego naraz. Operator, który w jednym tygodniu zacznie poranny przegląd, zamknięcie, rejestr, dziennik decyzji, noty do wydań, notatki z incydentów i przegląd tygodniowy, nie utrzyma żadnego z nich. Wybierz jedną albo dwie praktyki, te, które odpowiadają na twój największy obecny problem, i daj im miesiąc. Kiedy staną się automatyczne, dodaj kolejną. Nawyki procentują, ale tylko jeśli przetrwają wystarczająco długo, żeby stać się nawykami.
Przeczytaj raz dla pomysłów. Potem używaj dla praktyki.
Dostosowuj swobodnie. Ta książka opisuje praktyki, które działają u wielu operatorów, ale twoja działalność jest twoja. Może twój przegląd lepiej działa w porze lunchu. Może twój rejestr lepiej działa jako tabela. Może dzisiejsza trójka powinna być dzisiejszą dwójką. Zasady liczą się bardziej niż szczegóły: decyduj celowo, briefuj jasno, przeglądaj z dowodami, wydawaj mało, zapisuj, odpoczywaj. Jak je wdrożysz, to twoja sprawa do wypracowania, a krok poprawiania to miejsce, gdzie to robisz.
Prowadź własny podręcznik obok tego. W miarę jak dostosowujesz praktyki, zapisuj swoje wersje: listę kontrolną porannego przeglądu, szablon briefu, format noty do wydania, kalendarz utrzymania. Z czasem twój własny podręcznik stanie się dla ciebie bardziej użyteczny niż ten, bo będzie dokładnie pasował do twojej działalności. To jest cel. Ta książka to punkt wyjścia, a dobry punkt wyjścia to taki, z którego w końcu się wyrasta.
Wracaj do niej przy przeglądzie kwartalnym. Przejrzyj części. Zapytaj, które praktyki przyjąłeś, które pozwoliłeś sobie zaniedbać, a których nigdy nie wypróbowałeś. Wybierz jedną albo dwie do pracy w następnym kwartale. To utrzymuje cykl w ruchu na najdłuższej skali czasu i oznacza, że co kwartał twoja działalność jest odrobinę bardziej przemyślana niż w poprzednim.
W tym tygodniu wybierz ten jeden rozdział z tej książki, który odpowiada na twój największy obecny problem. Ćwicz go przez dwa tygodnie. Potem poprawiaj: zostaw, dostosuj albo porzuć. Potem wybierz następny. Za rok zbudujesz system operacyjny, który do ciebie pasuje. Bardzo prawdopodobne też, że przestaniesz potrzebować o nim czytać, a to najlepsze, na co może liczyć podręcznik.
Ryc. 99 · Podręcznik jako nawyk. Czytaj, ćwicz i poprawiaj w pętli, po jednej lub dwóch praktykach naraz.
Rozdział 100 · Część X
Praca polega na decydowaniu
Oto teza tej książki, wyłożona wprost: prawdziwą pracą operatora jest decydowanie, nie robienie. Agenci robią to, co trzeba zrobić, co miesiąc więcej, szybciej i sprawniej, niż mógłby to zrobić jakikolwiek pojedynczy człowiek. Nie potrafią natomiast zdecydować, co warto robić, jak wygląda dobrze, czy wynik jest wystarczająco dobry, żeby nosić twoje nazwisko, i co powinno wydarzyć się dalej. Te decyzje są pracą. Wszystko inne w tej książce to maszyneria do podejmowania ich dobrze.
Deleguj robienie, bo robienie da się dziś delegować. Szkicowanie, budowanie, badanie, testowanie, streszczanie, porządkowanie: oddaj je z jasnym briefem, rozsądnymi uprawnieniami i definicją ukończenia. Trzymanie się ich z przyzwyczajenia albo z dumy to nie sumienność. To wydawanie najrzadszego zasobu, uwagi, na najobfitszy, wysiłek.
Przeglądaj pracę, bo przegląd to miejsce, gdzie wchodzi do niej twój osąd. Czytaj diff, sprawdzaj dowody, stosuj najpierw najtańsze sprawdzenia, a najgłębsze tam, gdzie wymaga tego ryzyko. Pytaj, czy kształt jest właściwy, zanim zaczniesz szlifować szczegóły. Pytaj, czy to nie tylko poprawne, ale twoje. Przegląd nie jest czynnością pośledniejszą od wytwarzania. To czynność, która sprawia, że wytworzonej rzeczy można ufać.
I bierz decyzję na siebie, bo odpowiedzialność sprawia, że cały ten układ działa. Wypuść albo odeślij. Zacznij projekt albo odmów. Odłóż go albo zakończ. Decyduj na podstawie dowodów, jakie masz, szybko tam, gdzie drzwi otwierają się w obie strony, i ostrożnie tam, gdzie nie. Zapisz dlaczego. Potem żyj z wynikiem, wyciągnij z niego naukę, jeśli pójdzie źle, i decyduj znowu. Tym właśnie jest operator.
Agenci dają wysiłek. Ty dajesz decyzje. To cała praca.
Reszta tej książki służy właśnie temu. Dzień operacyjny istnieje, żeby dać decydowaniu najlepsze godziny. Briefy istnieją, żeby wnosić decyzje do pracy. Pamięć istnieje, żeby decyzji nie trzeba było podejmować dwa razy. Rejestr i kolejka decyzji istnieją, żebyś widział, co wymaga rozstrzygnięcia. Dyscyplina wydań istnieje, żeby każda decyzja o wydaniu była mała i odwracalna. Przeglądy tygodniowe i kwartalne istnieją, żebyś decydował o kierunku, zamiast w niego dryfować. Odpoczynek istnieje, żeby decydujący był w stanie decydować. Nawet notatki z incydentów dotyczą decydowania: decydowania, co zmienić, żeby błąd się nie powtórzył.
To dobra wiadomość, choć na początku może tak nie wyglądać. Decydowanie jest pod pewnymi względami trudniejsze niż robienie, mniej namacalne i mniej natychmiast satysfakcjonujące. Ale jest też ciekawsze, bardziej ludzkie i trwalsze. Robienie będzie dalej automatyzowane. Decydowanie dalej będzie potrzebowało kogoś. Jeśli staniesz się w nim dobry, z każdym rokiem będziesz cenniejszy, a nie mniej cenny.
Jutro rano, przed czymkolwiek innym, otwórz więc pustą stronę i zapisz trzy decyzje, które najbardziej popchnęłyby twoją działalność do przodu. Potem je podejmij. Nie zadania, decyzje. Resztą niech zajmą się agenci. Odkryjesz, jak wielu operatorów przed tobą, że praca staje się łatwiejsza, a zajęcie ciekawsze. To nie jest sprzeczność. To praca, wreszcie zobaczona wyraźnie. Zawsze polegała na decydowaniu. Agenci po prostu zabrali wszystko, co to zasłaniało.
Ryc. 100 · Praca polega na decydowaniu. Deleguj, przeglądaj, odpowiadaj: każda część operacji służy decydowaniu.
Podręcznik operatora · Wydanie pierwsze, październik 2026