Articles

Work Is Work

W which returns diminish.

12 Jan 2020

Za każdym razem, gdy pisałem lub mówiłem o projektowaniu organizacyjnym, żałowałem tego. Jest coś takiego w zajmowaniu stanowiska w tej sprawie, co udowadnia mi, że się mylę kilka lat później. Ale znowu się nad tym długo zastanawiałem i oto, co mam. Strap thefuck in.

W pewnym momencie każda organizacja zdaje sobie sprawę, że zwalnia. Tworzenie funkcji trwa dłużej, ludzie spędzają coraz więcej czasu na spotkaniach i wszyscy wpadają w panikę na myśl o szacowaniu i planowaniu. Jeśli zinternalizowaliśmy esencjalistyczne bzdury o tym, że „gracze B zatrudniają graczy C”, być może denerwujemy się na temat baru i zatrudniania. Jeśli jesteśmy niespokojni i niepewni, możemy nabawić się religii na temat Agile, Scrum czy czegokolwiek innego. Jeśli mamy skłonność do modernistycznych fantazji, możemy zdecydować się wydać nasze tokeny innowacji na próby zakłócenia liczącej 200 000 lat branży polegającej na zmuszaniu ludzi do współpracy. Jeśli jesteśmy typem, który robi swoje osiem i trafia w bramę, uznajemy to za cenę sukcesu.

Te podejścia rzadko przynoszą rezultaty.

Nasza dogmatyczna drzemka

Większość wyjaśnień sukcesu lub porażki organizacji to bzdury. Konta Emic, czyli te pochodzące z wnętrza organizacji, ograniczają się do tych koncepcji i narracji, które istnieją w organizacji. Mogą one strukturalnie służyć jako autonarracje i sprzyjać poczuciu tożsamości i celu wewnątrz grupy, ale ponieważ pochodzą z epistemologicznego odpowiednika studni grawitacyjnej, ich moc wyjaśniająca poza tą organizacją jest zazwyczaj straszna.

Jeśli przyjmiemy perspektywę etyczną – tj. spoza organizacji – możemy zauważyć, że wyjaśnienia emic dotyczące sukcesu lub porażki organizacji mają łatwo dostępne kontrfakty w innych organizacjach. Gdyby zwinne, płaskie organizacje, przeglądy kodu, monopole, otwarte biura, wymyślne systemy typów itp. były rzeczywiście tymi czynnikami sprawczymi, za które się je uważa, to dlaczego tak wiele organizacji przyjmuje te praktyki bez powodzenia? Dlaczego inne organizacje, które odniosły sukces, nie stosują tych praktyk? Jak możemy odróżnić cum hoc, ergo prompter hocjust-so stories od rzeczywistych czynników przyczynowych?

Co ważniejsze, czy możemy określić superweniencję jakiegoś zestawu czynników na wyniki organizacyjne, nie tylko w konkretnym kontekście, ale we wszystkich możliwych organizacjach? To znaczy, czy istnieją konieczne, aprioryczne prawdy o wydajności organizacyjnej?

Tak się składa, że istnieją.

Jeśli zmrużysz oczy wystarczająco mocno, organizacja wykonująca pracę jest niewiarygodnie złożonym, dynamicznym, rozproszonym, równoległym procesem. Mamy bardzo dobre narzędzia do zrozumienia przybliżonych zarysów tego, jak to działa, sięgające co najmniej do komentarza Manabrea z 1842 roku dla Babbage’a dotyczącego jego maszyny analitycznej. Now, I won’t pretend to having developed psychohistory and given how difficult itis to predict the behavior of even simple dynamic systems, a fully predictive model oforganizational success certainly seems impossible.

But like Kant attempting to derive the necessary preconditions of subjective experience inCritique Of Pure Reason, we can sketch out the boundaries of what an organization iscapable of and the dynamics of that as it grows. W ten sam sposób, w jaki aprioryczna wiedza, że dziesięć funtów waży więcej niż pięć funtów, informuje nas, ile gówna możemy się spodziewać, że zmieści się w torbie, modelowanie organizacji jako równoległych procesów może wpłynąć na sposób, w jaki je projektujemy.

To, co dzieje się wewnątrz tych granic, jest kwestią wykonania i wysiłku; to, co dzieje się poza tymi granicami, jest niemożliwe.

The Ceiling Is Low

Możliwość pracy organizacji skaluje się, co najwyżej, liniowo w miarę dodawania nowych członków.Każdy nowy członek w organizacji dodaje stałą liczbę możliwych godzin pracy do całkowitych możliwych godzin pracy istniejących pracowników firmy. Prawo Amdahla mówi, że biorąc pod uwagę stałe zadanie, rozwiązanie równoległe wykorzystujące NNN procesorów będzie działać szybciej niż rozwiązanie sekwencyjne co najwyżej o czynnik NNN.

As parallel resources are added, the total time spent in the parallelizable portion of the taskamortizes to zero; in contrast, the total time spent in the sequential portion of the task neverdropps below a floor value. Jest to tak samo prawdziwe dla grupy ludzi próbujących pisać oprogramowanie, jak i dla grupy procesorów próbujących modelować zachowanie gwiazd w galaktyce. Nasza intuicja mówi nam, że większe organizacje wykazują zachowania superliniowe, ale to dosłownie nie może być przypadek, jeśli zatrudnianie jest jedyną zmienną w równaniu. Dlatego nasza jedyna nadzieja na superliniową produktywność wiąże się ze zmianą wykonywanego zadania. Na szczęście wydajność pracy nie jest tożsama z produktywnością.

Jak organizacja zatrudnia więcej pracowników, praca nad poprawą produktywności musi być stałym priorytetem. Należy opracować i wdrożyć wewnętrzne narzędzia, szkolenia i usługi, aby zapewnić, że wszyscy członkowie organizacji są w stanie pracować nad problemami o stale rosnącym wpływie. Nieustanny pościg za mnożnikami siły jest jedyną możliwą drogą do superlinearnej poprawy produktywności, gdy organizacja rośnie.

Finally, należy podkreślić, że ten liniowy związek na wydajność pracy jest pułapem, a nie podłogą.Nie można zrobić lepiej niż liniowe, ale na pewno można zrobić gorzej. Istnieje wiele innych czynników, które działają jak opór na wydajność pracy, a ogólnoorganizacyjne ulepszenia w produktywności są krytyczne w ich eliminowaniu.

Podłoga to lawa

Koszty zatrzymania rosną superliniowo, gdy dodawani są nowi członkowie. Równoległe rozwiązania zadań rzadko są idealnie współbieżne (i rzeczywiście, takie zadania są słusznie nazywane „żenująco równoległymi”), i często wymagają pewnych sekwencyjnych sekcji krytycznych. Kolejka jednostek CPU lub osób oczekujących na wejście do sekcji krytycznej może być modelowana jako kolejka, co pozwala nam wykorzystać teorię kolejek do zrozumienia, jak zmienia się czas cyklu kolejki wraz ze wzrostem jej rozmiaru. Jeśli zamodelujemy kolejkę do sekcji sekwencyjnej jako kolejkę G/G/1G/G/1G/G/1, to znaczy nie czyniąc żadnych założeń na temat procesu przybycia lub rozkładu czasu obsługi, ale zakładając pojedynczy serwer kolejkowy (tzn. tylko jeden procesor lub osoba może trzymać blokadę), otrzymujemy Formułę Kingmana dla średniego czasu oczekiwania:

E(Wq)≈(ρ1-ρ)(ca2+cs22)τ \mathbb E(W_q) \approx \left( \frac{c_a^2+c_s^2}{2} \right) \tauE(Wq)≈(1-ρρ)(2ca2+cs2)τ

W szczególności, czas oczekiwania w kolejce rośnie nieliniowo w stosunku do ρrhoρ (wykorzystanie) i kwadratowo w stosunku do cac_aca (współczynnik zmienności dla przyjazdów) i csc_scs (współczynnik zmienności dla czasów obsługi). (Jest to skwantyfikowana forma intuicji, że kolejki są albo puste albo przepełnione.)

Nieliniowość tego powinna dać nam pauzę, ponieważ zwiększenie liczby osób ubiegających się o współdzielony zasób jest tym samym co zwiększenie ρrhoρ. Jeśli rywalizacja na tych zasobach nie jest zarządzana, wzrost organizacji może spowodować katastrofalny wzrost czasu oczekiwania. W pewnym momencie dodanie nowych członków może spowodować, że ogólna produktywność organizacji spadnie zamiast wzrosnąć, ponieważ wzrost czasu oczekiwania spowodowany rywalizacją jest większy niż wzrost zdolności do pracy. (Jest to organizacyjna wersja skoków opóźnienia, które widzimy, gdy serwery stają się przeciążone.)

Te współdzielone zasoby niekoniecznie są rzeczami fizycznymi, jak łazienki czy drukarki; mogą być cyfrowe, jak pliki w repozytorium kodu źródłowego lub bilety w bug trackerze, lub organizacyjne, jak przeglądy kodu lub przydziały pracy. Podobnie jak w przypadku pisania wysoko wydajnych aplikacji, budowanie wysoko wydajnych organizacji wymaga uważnego i ciągłego poszukiwania wspólnych zasobów oraz opracowywania wyraźnych strategii łagodzenia ich wpływu na wydajność. Podczas gdy theconsultants rzeczywiście może poruszać się szybko w środowisku o niskim contention, integracja ich produkt pracy z powrotem do contended zasobów często ma wpływ baloning csc_scs (the variation ofservice razy, lub jak długo krytyczna sekcja jest utrzymywana). Powoduje to kwadratowy skok czasu oczekiwania, co zwiększa wykorzystanie, które z kolei powoduje superliniowy skok czasu oczekiwania. (Teoria kolejek jest surową panią.) Skuteczne strategie zmniejszania kontencji obejmują zwiększenie liczby instancji współdzielonego zasobu (np, dodawanie łazienek w miarę jak przybywa pracowników) i opracowywanie bezstanowych heurystyk koordynacji dostępu do wspólnych zasobów (np. grupowanie pracowników w zespoły).

As with heavily layered applications, the more distance between those designing the organization andthe work being done, the greater the risk of unmanaged points of contention. Odgórne metody organizacyjne mogą prowadzić do poddziałów, które wydają się być równoległymi działaniami, gdy są wyszczególnione na slajdzie, ale które w rzeczywistości są wysoce współzależne i zazębiają się. Obsadzanie wysoce sekwencyjnych działań tak, jakby były one całkowicie równoległe, prowadzi do katastrofy.

Ciepło to inni ludzie

Koszty spójności rosną czterokrotnie w miarę dodawania nowych członków.Praca nad złożonymi zadaniami z wykorzystaniem równoległych zasobów (lub z grupą ludzi) wymaga komunikacji. Grupa 333 osób ma 333 dyady; grupa 444 osób ma 666 dyadów; grupa 555 osób ma101010 dyadów; grupa NNN osób ma N2-N2\frac{N^2-N}{2}2N2-N możliwych dyadów. Komunikacja punkt-punkt (tj. rozmawianie ze sobą) może być modelowana jako aktywacja podzbioru tych dyadów.

Choć niektóre organizacje są bardziej gadatliwe niż inne, komunikacja ta jest niezbędna do wymiany informacji i koordynacji działań. Ale nie jest ona darmowa. Komunikacja wymaga czasu. Jeśli względny odsetek osób, które muszą ze sobą rozmawiać, aby coś zrobić, pozostaje stały w miarę wzrostu organizacji (tj. x%x%x wszystkich dyad), całkowity czas spędzony na komunikacji będzie rósł kwadratowo, ponieważ wydajność pracy organizacji rośnie liniowo.

Możemy rozważyć spotkania grupowe jako strategię grupowania w celu zmniejszenia liczby jednostek zaangażowanych w komunikację punkt-punkt, ale skuteczność tej strategii zależy w dużej mierze od względnego nakładania się grup i struktur grupowych. Stopień, w jakim grupy nakładają się na siebie, jest zasadniczo tym samym czynnikiem, co procent dyadów wymaganych do komunikacji. Jeśli rozmiary grup są ograniczone, wzrost kosztów koherencji zostanie zredukowany o stały czynnik, ale nadal będzie rósł kwadratowo. Może być kuszące, aby próbować wykorzystać spójność i po prostu jeździć na brudno, ale nawet subtelne formy niespójności wiążą się z ogromnymi kosztami biznesowymi. Jedyną skalowalną strategią na ograniczenie kosztów spójności jest ograniczenie liczby osób, z którymi dana osoba musi rozmawiać, aby wykonywać swoją pracę, do stałego czynnika.

W kontekście projektowania organizacji oznacza to ograniczenie zarówno typów, jak i liczby konsultowanych środowisk w procesie organizacji. Każda dodatkowa osoba lub grupa w macierzy przydziału odpowiedzialności geometrycznie zwiększa obszar tej macierzy. Każdy dodatkowy przydział odpowiedzialności w tej macierzy geometrycznie zwiększa koszt spójności organizacyjnej.

Warto również zauważyć, że ta komunikacja w parach nie musi być formalna, zaplanowana, ani nawet dobrze znana, aby mieć koszty. Ani Twój podręcznik pracownika, ani Twój kalendarz nie są dokładnym odzwierciedleniem tego, jak przebiega praca w organizacji. O ile Twoja organizacja nie jest obsadzona zombie, jej członkowie będą nieustannie obalać standardowe procedury operacyjne, aby wykonać faktyczną pracę. Nawet mrówki improwizują. Dokładne wyliczenie tych ukrytych kosztów może być opracowane poprzez uczciwą, wolną od winy i ciągłą analizę pracy od końca do końca, tak jak to się dzieje.

Principles From Beyond Space And Time

Keep the work parallel, the groups small, and the resources local.

Kiedy przedstawiony z zestawem problemów, które rosną superlinearnie niewykonalne jak NNN wzrasta, ourbest bet is to keep NNN small. Jeśli intencją organizacji jest zwiększenie dostarczania wartości poprzez zatrudnianie większej liczby ludzi, wysiłki w pracy muszą być tak niezależne, jak to tylko możliwe. Liderzy powinni opracować praktyki i procesy, aby zapewnić, że wysiłki robocze, które ich strategie uznają za równoległe, są faktycznie równoległe. Współdzielone zasoby powinny być stale zarządzane pod kątem konfliktów, a tam, gdzie to możliwe, zasoby potrzebne danej grupie powinny być z nią kolokowane (np. jeśli praca wymaga dużej ilości projektowania, należy zatrudnić projektanta do tej grupy). Doktryna broni połączonej nie jest przeznaczona tylko dla żołnierzy.

Priorytetowo traktuj rozwój multiplikatorów siły.

Jeśli organizacja w dużej mierze pracuje nad tymi samymi typami problemów, co w poprzednich latach, jest to powód do niepokoju. Zespoły zajmujące się wewnętrznym oprzyrządowaniem powinny zostać obsadzone i otrzymać wyraźny kierunek budowania narzędzi i optymalizacji procesów, aby pomóc w zwiększeniu produktywności swoich współpracowników. Jeśli odsetek osób w organizacji zaangażowanych w poprawę funkcjonowania organizacji zaczyna spadać, zadaj sobie pytanie, czy osiągnęliśmy globalne lub lokalne maksimum? Idź długo w kierunku narzędzi o wysokiej dźwigni, ale nie trać gruntu pod tym, czy rzeczywiście pomagają.

Jeśli to możliwe, połącz produkty pracy w niezależne moduły; jeśli nie, rozwijaj się powoli i optymalizuj.

Jeśli Twój produkt pracy – np. baza kodów, dokumenty itp. – może być podzielony na niezależne moduły, zrób to. Kluczowym słowem jest tu niezależność. Pokrojenie twojego gówna na sto mikroserwisów nie pomoże ci, jeśli każdy będzie musiał zmienić dziesięć z nich, aby cokolwiek zrobić. Niektóre problemy nie są szczególnie podatne na podział; są to również problemy, które nie korzystają zbytnio z dodatkowych pracowników. Jeśli problem jest punktem stałym, należy przyjrzeć się sposobom optymalizacji sekwencyjnej części pracy. Wiedz, że rzucanie ciał na ten problem będzie produkować clusterfuck.

Skalowanie wysiłków organizacyjnych w całym portfelu synergicznych produktów.

Większość inteligentnych firm zaczyna się od jednego produktu. Idą długo na ich hipotezy produktu, puttheir ich jajka w jednym koszyku, i swing dla płotów. Jeśli mają wystarczająco dużo szczęścia, aby uzyskać trakcję, podwajają się na tym. Od nowa. I tak w kółko. I tak w kółko. W pewnym momencie mają kilka batalionów ludzi, którzy próbują dowiedzieć się, kto jest właścicielem turboencabulatora UI i czy nowe marcepany będą w pełni antygrawitacyjne przez wielki jesienny marketing.

Aby tego uniknąć, liderzy organizacji powinni zachować rozwój portfela produktów jako wyraźny cel. Pomysły na funkcje lub produkty, które są zgodne z ogólną strategią biznesową organizacji, ale w naturalny sposób nie współistnieją z głównym produktem, mogą być rozwijane jako oddzielne produkty przez niezależne zespoły. Mamy dowody na to, że harmonogramy tworzenia oprogramowania można skrócić najwyżej o 25%; powinno być łatwo wybrać między pojedynczym produktem w 18 tygodni a dwoma produktami w 24 tygodnie.

Skuteczne nowe produkty mogą być przyrostowo integrowane z istniejącymi produktami tam, gdzie ma to sens, a oprzyrządowanie, biblioteki i frameworki mogą być rozwijane przez zespoły mnożące siły, aby skrócić zarówno czas wprowadzania na rynek nowych produktów, jak i koszty utrzymania istniejących produktów. Nieudane nowe produkty mogą być z wdziękiem usunięte z rynku po znacznie niższych kosztach niż funkcje o podobnej złożoności. W końcu, usunięcie cechy z produktu wiąże się z takimi samymi kosztami konfliktu i spójności, jak dodanie cechy. Rzadko zdarza się, aby cecha przedstawiała koszt nośny większy niż koszt jej usunięcia, stąd przewaga cech Latającego Holendra.

Jako konkretny przykład zalet portfela produktów, wyobraźmy sobie Amazon Web Services jako pojedynczy produkt, obsadzony przez sto tysięcy skazanych na zagładę dusz i przedstawiony przez UI, który jest tylko serią przycisków pozwalających na dostarczanie i obsługę maszyn wirtualnych, baz danych, jezior danych, aplikacji robotycznych, aplikacji rzeczywistości rozszerzonej, dingusów IoT i innych. Taki twór implodowałby pod własnym ciężarem.

Zamiast tego, Amazon Web Services to portfolio synergicznych produktów. EC2 ma swój własny, niezależny zestaw funkcji, rozwijany i obsługiwany przez niezależny zestaw pracowników. Gdy jego potrzeby mogą być zaspokojone przez inny produkt AWS (np. przechowywanie obrazów maszyn wirtualnych na S3 lub wysyłanie metryk doCloudWatch), wprowadzana jest integracja międzyproduktowa. Taka struktura produktów umożliwia wysoce spójną strukturę organizacyjną, która pozwala firmie Amazon na wprowadzanie na rynek ogromnej liczby nowych produktów każdego roku, przy jednoczesnym kontynuowaniu wsparcia i rozwoju istniejących produktów. Failedservices can be sunsetted or drawn down without disrupting the rest of the organization.

Keep responsibility assignment matrices small, sparse, and local.

As an organization matures, ad-hoc roles are often developed into full teams. Ta specjalizacja jest często krytyczna dla budowania wewnętrznych korzyści skali, ale formalizacja nowych grup powinna być trzymana w ryzach. Każda kolumna w macierzy przydziału odpowiedzialności rozszerza możliwy zbiór wymaganych interakcji w postępie geometrycznym; każdy przydział w macierzy jest punktem koordynacyjnym wymagającym oczekiwania. W przypadku, gdy macierz wskazuje na relację o wysokim stopniu kontaktu pomiędzy dwoma grupami (np. grupa inżynierów pracujących nad daną funkcją i prawnicy starający się zapewnić zgodność tej funkcji z prawem), należy podjąć wysiłki w celu zmniejszenia kosztów tej interakcji poprzez kolokację ich członków (np,

Priorytetyzuj asynchroniczną dystrybucję informacji nad synchroniczną.

Znaczącym źródłem zapotrzebowania na spotkania i aktualizacje statusu jest pragnienie liderów organizacji, aby być na bieżąco z tym, kto co robi. Ta świadomość sytuacyjna jest rzeczywiście ważna, ale próba utrzymania jej poprzez zwoływanie spotkań, wysyłanie wiadomości na Slacku i łapanie ludzi na korytarzach jest znaczącym obciążeniem systemowym dla produktywności organizacyjnej.

Lepszym modelem informowania o rozwoju w miarę skalowania organizacji jest publikowanie przez grupy aktualizacji statusu jako części regularnego rytmu pracy. Liderzy mogą asynchronicznie czytać te aktualizacje, a w razie potrzeby inicjować dodatkowe, synchroniczne rozmowy, aby zadawać pytania, przekazywać informacje zwrotne itp.

Spotkania synchroniczne powinny być zarezerwowane dla współpracy o niskim opóźnieniu w rozwiązywaniu złożonych problemów; podobnie, współpraca powinna być zarezerwowana dla spotkań synchronicznych.

To, co dzieje się wewnątrz granic, jest ważne.

To, że znamy niektóre z granic wydajności organizacyjnej i ich dynamikę, nie zwalnia nas z używania naszej empatii do budowania humanitarnych organizacji. Firmy to grupy ludzi wynagradzanych za to, że muszą spędzić część swojego skończonego życia nie będąc ze swoimi partnerami, dziećmi, zwierzętami domowymi lub superdziwnymi hobby. Zasługują oni na członkostwo w organizacjach, które honorują ten czas poprzez zapewnienie, że ich praca ma wartość i znaczenie. Nie ma modelu matematycznego, który poprowadzi ust do tego celu.

Podziękowania dla różnych Fiascans za przejrzenie tego postu. Wszelkie błędy w tym artykule są moje, nie ich.