A munka munka
12 jan 2020
Minden alkalommal, amikor a szervezeti tervezésről írtam vagy beszéltem, megbántam.Van valami abban, hogy olyan álláspontot foglalok el, ami néhány év múlva bebizonyítja, hogy tévedtem. De ismét hosszasan elgondolkodtam rajta, és íme, mire jutottam. Strap thefuck in.
Egy bizonyos ponton minden szervezet rájön, hogy lassul. A funkciók tovább tartanak, az emberek egyre több időt töltenek megbeszéléseken, és mindenki pánikba esik a becsléstől és a tervezéstől. Ha internalizáltuk az esszencialista baromságokat a “B játékosok felveszik a C játékosokat”, akkor talán idegesek leszünk a The Bar és a felvétel miatt. Ha szorongunk és bizonytalanok vagyunk, lehet, hogy vallásosak leszünk az Agile vagy a Scrum vagy bármi más miatt. Ha hajlamosak vagyunk a modernista fantázia szárnyalására, akkor lehet, hogy úgy döntünk, hogy az innovációs zsetonjainkat arra költjük, hogy megpróbáljuk megzavarni az emberek együttműködésének 200 000 éves iparágát. Ha olyan típusok vagyunk, akik megcsinálják a nyolcat, és beütik a kaput, akkor ezt a siker áraként könyveljük el.
Ezek a megközelítések ritkán vezetnek eredményre.
Dogmatikus álmunk
A szervezeti siker vagy kudarc legtöbb magyarázata szar. Az emikai – azaz a szervezeten belülről származó – magyarázatok azokra a fogalmakra és narratívákra korlátozódnak, amelyek a szervezeten belül léteznek. Strukturálisan szolgálhatnak önelbeszélésekként, és elősegíthetik a csoporton belüli identitás és céltudatosság érzését, de mivel egy gravitációs kút episztemológiai megfelelőjéből származnak, a szervezeten kívüli magyarázó erejük általában szörnyű.
Ha az etikus perspektívát vesszük – azaz a szervezeten kívülről -, láthatjuk, hogy a szervezet sikerének vagy kudarcának emikus magyarázatai könnyen elérhető ellenpéldákkal rendelkeznek más szervezetekben. Ha az agilis, a lapos szervezetek, a kódértékelések, a monorepos, a nyitott irodák, a díszes típusrendszerek stb. valóban azok az ok-okozati tényezők lennének, amelyeknek állítólag állítólag, akkor miért alkalmazza annyi szervezet ezeket a gyakorlatokat sikertelenül? Miért vannak olyan sikeres szervezetek, amelyek nem alkalmazzák ezeket a gyakorlatokat? Hogyan tudunk különbséget tenni a cum hoc, ergo prompter hoc csak-úgy történetek és a tényleges ok-okozati tényezők között?
Még fontosabb, hogy meg tudjuk-e határozni a tényezők bizonyos csoportjának a szervezeti teljesítményre gyakorolt hatását, nem csak egy adott kontextusban, hanem az összes lehetséges szervezetben? Vagyis léteznek-e szükséges, a priori igazságok a szervezeti teljesítményről?
A történetesen igenis léteznek.
Ha elég erősen hunyorítunk, egy szervezet, amely munkát végez, egyszerűen egy hihetetlenül összetett, dinamikus, elosztott, párhuzamos folyamat. Nagyon jó eszközeink vannak arra, hogy megértsük, hogyan működnek ezek a folyamatok, legalábbis Manabrea 1842-es megjegyzéséig visszamenőleg, amit Babbage-nek tett az analitikus gépével kapcsolatban. Nos, nem fogok úgy tenni, mintha pszichohistóriát fejlesztettem volna ki, és tekintve, hogy még az egyszerű dinamikus rendszerek viselkedését is milyen nehéz megjósolni, a szervezeti siker teljesen előrejelző modellje bizonyosan lehetetlennek tűnik.
De ahogy Kant megpróbálta levezetni a szubjektív tapasztalat szükséges előfeltételeit A tiszta ész kritikájában, felvázolhatjuk annak határait, amire egy szervezet képes, és ennek dinamikáját, ahogy növekszik. Ugyanúgy, ahogy az a priori tudás arról, hogy tíz kiló több, mint öt kiló, tájékoztat arról, hogy mennyi szar fér bele egy táskába, a szervezetek párhuzamos folyamatokként való modellezése tájékoztathat arról, hogyan tervezzük meg őket.
Ami ezeken a határokon belül történik, az a végrehajtás és az erőfeszítés kérdése; ami ezeken a határokon kívül történik, az lehetetlen.
A plafon alacsony
A szervezet munkakapacitása legfeljebb lineárisan skálázódik az új tagok felvételével.A szervezet minden új tagja állandó számú lehetséges munkaórát ad hozzá a vállalat meglévő alkalmazottainak összes lehetséges munkaórájához. Az Amdahl-törvény kimondja, hogy egy rögzített feladat esetén egy NNN processzort használó párhuzamos megoldás legfeljebb NNN-szer gyorsabban fut, mint egy szekvenciális megoldás.
Amint a párhuzamos erőforrások hozzáadásával a feladat párhuzamosítható részének teljes időigénye nullára csökken; ezzel szemben a feladat szekvenciális részének teljes időigénye soha nem csökken egy alsó érték alá. Ez ugyanúgy igaz egy szoftverírással foglalkozó emberekből álló csoportra, mint a galaxisban lévő csillagok viselkedését modellezni próbáló CPU-kból álló csoportra. Az intuíciónk azt súgja, hogy a nagyobb szervezetek valóban szuperlineáris viselkedést mutatnak, de ez szó szerint nem lehet így, ha a felvételi az egyetlen változó az egyenletben. Ezért az egyetlen reményünk a szuperlineáris termelékenységre a végrehajtott feladat megváltoztatásában rejlik. Szerencsére a munkakapacitás nem azonos a termelékenységgel.
Amint egy szervezet több alkalmazottat vesz fel, a termelékenység javításán való munkának állandó prioritást kell élveznie. Belső eszközöket, képzéseket és szolgáltatásokat kell kifejleszteni és bevezetni annak biztosítására, hogy minden tag képes legyen a folyamatosan növekvő hatású problémákon dolgozni. Az erőszaporítók szüntelen keresése az egyetlen lehetséges út a szuperlineáris termelékenységjavuláshoz, ahogy a szervezet növekszik.
Végezetül hangsúlyozni kell, hogy a munkakapacitásnak ez a lineáris korlátja egy plafon, nem pedig egy padló.A lineárisnál jobbat nem lehet elérni, de rosszabbat biztosan lehet. Sok más tényező is van, amely a munkakapacitást gátló tényezőként hat, és ezek mérséklésében a termelékenység egész szervezetre kiterjedő javítása döntő fontosságú.
A padló a láva
A megtartási költségek szuperlineárisan nőnek, ahogy új tagokkal bővül a szervezet. A feladatok párhuzamos megoldásai ritkán tökéletesen egyidejűek (sőt, az ilyen feladatokat joggal nevezik “kínosan párhuzamosnak”), és gyakran szükség van néhány szekvenciális kritikus szakaszra. ACPU-k vagy a kritikus szakaszba való belépésre várakozó emberek sora sorbanállásként modellezhető, ami lehetővé teszi számunkra, hogy a sorbanállás elméletét használva megértsük, hogyan változik a sorbanállás ciklusideje a sorbanállás méretének növekedésével. Ha egy szekvenciális szakasz sorát G/G/1G/G/1G/G/1 várólistaként modellezzük, vagyis anélkül, hogy az érkezési folyamatra vagy a kiszolgálási idő eloszlására vonatkozó állításokat tennénk, de feltételezzük, hogy a sorban egyetlen kiszolgáló áll (azaz. csak egy CPU vagy személy tarthatja a zárat), eljutunk a Kingman-formulához az átlagos várakozási időre:
E(Wq)≈(ρ1-ρ)(ca2+cs22)τ\mathbb E(W_q) \approx \left( \frac{\rho}{1-\rho} \right) \left( \frac{c_a^2+c_s^2}{2}\right) \tauE(Wq)≈(1-ρρ)(2ca2+cs2)τ
Megjegyezhető, egy sor várakozási ideje nem lineárisan nő ρ\rhoρ (kihasználtság) ésnégyzetesen cac_aca (az érkezések variációs együtthatója) és csc_scs (a kiszolgálási idők variációs együtthatója) függvényében. (Ez annak az intuíciónak a számszerűsített formája, hogy a várólisták vagy üresek, vagy túlcsordulnak.)
Ez a nemlinearitás elgondolkodtató, mivel a megosztott erőforrásért versengő emberek számának növekedése ugyanaz, mint a ρ\rhoρ növekedése. Ha az ezeken az erőforrásokon való versengés nem kezelhető, a szervezeti növekedés a várakozási idő katasztrofális növekedését eredményezheti. Egy bizonyos ponton az új tagok felvétele a szervezet általános termelékenységének csökkenését okozhatja ahelyett, hogy növekedne, mivel a várakozási idő növekedése a versengés miatt nagyobb, mint a munkakapacitás növekedése. (Ez a szervezeti változata a szerverek túlterhelésekor tapasztalható késleltetési tüskéknek.)
Ezek a megosztott erőforrások nem feltétlenül fizikai dolgok, mint a fürdőszobák vagy nyomtatók; lehetnek digitálisak, mint a forráskód-tárban lévő fájlok vagy a hibakövető rendszerben lévő jegyek, vagy szervezetiak, mint a kódellenőrzések vagy a munkafeladatok. A nagymértékben párhuzamos alkalmazások írásához hasonlóan a nagyteljesítményű szervezetek felépítéséhez is szükség van a megosztott erőforrások gondos és folyamatos keresésére, és kifejezett stratégiák kidolgozására a teljesítményre gyakorolt hatásuk mérséklésére.
Egy gyakran alkalmazott, de ritkán sikeres stratégia a külső erőforrások – pl. tanácsadók, ügynökségek, személyzetbővítés – használata a belső erőforrásokkal való versengés megkerülésére. Míg a tanácsadók valóban gyorsan tudnak mozogni egy alacsony kontingensű környezetben, a munkatermékeik visszaintegrálása a vitatott erőforrásokba gyakran a csc_scs (a szolgáltatási idők változása, vagy az, hogy mennyi ideig tartanak egy kritikus szakaszt) felduzzasztásával jár. Ez a várakozási idők négyzetes kiugrását eredményezi, ami növeli a kihasználtságot, ami viszont a várakozási idők szuperlineáris kiugrását eredményezi (a sorban állás elmélete kemény úrnő.) Sikeres stratégiák a versengés csökkentésére többek között a megosztott erőforrás példányainak számának növelése (pl.,
Az erősen rétegzett alkalmazásokhoz hasonlóan, minél nagyobb a távolság a szervezet tervezői és az elvégzett munka között, annál nagyobb a kezeletlen vitás pontok kockázata. A felülről lefelé irányuló szervezési módszerek olyan alosztályokhoz vezethetnek, amelyek egy dián felsorolva párhuzamos erőfeszítéseknek tűnnek, de valójában nagymértékben függnek egymástól és egymásra épülnek. A nagymértékben egymásra épülő erőfeszítések olyan személyzettel való ellátása, mintha azok teljesen párhuzamosak lennének, katasztrófához vezet.
A pokol más emberek
A koherencia költségei négyzetesen nőnek, ahogy új tagok kerülnek be.A párhuzamos erőforrásokkal (vagy emberek egy csoportjával) végzett összetett feladatokon való munka kommunikációra van szükség. Egy 333 fős csoportnak 333 dyádja van; egy 444 fős csoportnak 666; egy 555 fős csoportnak101010; egy NNN fős csoportnak N2-N2\frac{N^2-N}{2}2N2-N2-N lehetséges dyádja van. A pont-pont kommunikáció (azaz az egymással való beszélgetés) e dyádok egy részhalmazának aktiválásaként modellezhető.
Míg egyes szervezetek csevegőbbek, mint mások, ez a kommunikáció elengedhetetlen az információ megosztásához és a cselekvés koordinálásához. De nem ingyenes. A kommunikáció időigényes. Ha azoknak az embereknek a relatív százalékos aránya, akiknek beszélniük kell egymással ahhoz, hogy valamit el tudjanak végezni, állandó marad, ahogy a szervezet növekszik (azaz az összes párkapcsolat x%x\x%-a), a kommunikációra fordított teljes idő kvadratikusan nő, ahogy a szervezet munkakapacitása lineárisan növekszik.
A csoportos találkozókat tekinthetjük kötegelési stratégiának a pont-pont kommunikációban résztvevő egységek számának csökkentése érdekében, de e stratégia hatékonysága nagyban függ a csoportok relatív átfedésétől és a csoportstruktúrától. A csoportok átfedésének mértéke lényegében ugyanaz a tényező, mint a kommunikációhoz szükséges dyádok százalékos aránya. Ha a csoportméretek korlátozottak, a koherenciaköltségek növekedése állandó tényezővel csökken, de még mindig négyzetesen növekszik. Csábító lehet, hogy megpróbáljuk a koherenciát kihasználni, és csak meglovagolni a piszkos ügyeket, de még az inkoherencia finom formái is hatalmas üzleti költségekkel járnak. Az egyetlen skálázható stratégia a koherenciaköltségek visszafogására az, hogy állandó tényezőre korlátozzuk azoknak az embereknek a számát, akikkel az egyénnek beszélnie kell ahhoz, hogy elvégezze a munkáját.
A szervezeti tervezés szempontjából ez azt jelenti, hogy korlátozzuk a szervezet folyamatában a megkérdezett csoportok típusait és számát. A felelősségkiosztási mátrixban minden egyes további személy vagy csoport geometrikusan növeli a mátrix területét. A mátrixban minden egyes továbbifelelősségi hozzárendelés geometrikusan növeli a szervezeti koherencia költségeit.
Azt is érdemes megjegyezni, hogy ezeknek a páronkénti kommunikációnak nem kell formálisnak, tervezettnek vagy akár jól ismertnek lennie ahhoz, hogy költségei legyenek. Sem a munkavállalói kézikönyv, sem a naptár nem pontosleírása annak, hogy a szervezetben hogyan folyik a munka. Hacsak nem zombikkal van tele a szervezet, a szervezet tagjai folyamatosan felforgatják a szabványos működési eljárásokat annak érdekében, hogy a tényleges munkát elvégezzék. Még a hangyák is improvizálnak. Ezeknek a rejtett költségeknek a pontos számbavétele csak a munka őszinte, feddhetetlen és folyamatos, végponttól végpontig tartó elemzésével alakítható ki.
Principles From Beyond Space And Time
Tartsuk a munkát párhuzamosnak, a csoportokat kicsinek és az erőforrásokat lokálisnak.
Ha olyan problémákkal találkozunk, amelyek az NNN növekedésével szuperlineárisan megoldhatatlanok lesznek, a legjobb, ha az NNN-t kicsiben tartjuk. Ha a szervezet célja az értékteremtés növelése több ember felvételével, a munkaerőfeszítéseknek a lehető legfüggetlenebbeknek kell lenniük. A vezetőknek olyan gyakorlatokat és folyamatokat kell kialakítaniuk, amelyek biztosítják, hogy a stratégiáik által párhuzamosnak tekintett munka erőfeszítések valóban párhuzamosak legyenek. A megosztott erőforrásokat folyamatosan kezelni kell a vitás kérdések miatt, és ahol lehetséges, a csoportnak szükséges erőforrásokat az adott csoporthoz kell telepíteni (pl. ha a munka sok tervezést foglal magában, alkalmazzanak egy tervezőt az adott csoporthoz). A kombinált fegyverek doktrínája nem csak a katonáknak szól.
Prioritást kell adni a haderő-szaporítók fejlesztésének.
Ha egy szervezet nagyrészt ugyanazokon a típusú problémákon dolgozik, mint az előző években, az aggodalomra ad okot. A belső eszközfejlesztésre szakosodott csapatokat kell felállítani, és kifejezetten arra kell irányítani, hogy olyan eszközöket hozzanak létre és optimalizálják a folyamatokat, amelyek segítenek növelni munkatársaik termelékenységét. Ha a szervezet munkamódszereinek javítására fordított százalékos arány csökkenni kezd, kérdezzük meg magunktól, hogy globális vagy helyi maximumot értünk-e el? Vágjon bele a nagy hozzáadott értékű eszközökbe, de maradjon a földön, hogy valóban segítenek-e vagy sem.
Ha lehetséges, a munkatermékek független modulokba faktorálhatók; ha nem, lassan növekedjen és optimalizáljon.
Ha a munkatermék – pl. kódbázis, dokumentumok stb. – független modulokba faktorálhatók, tegye ezt. A kulcsszó itt a független. Ha száz mikroszolgáltatásra szeleteled a szarodat, az nem fog segíteni, ha mindenkinek tízet kell megváltoztatnia belőlük, hogy bármit is el tudjon végezni. Egyes problémák nem különösebben jól feloszthatók; ezek olyan problémák, amelyeknek nem sok hasznát veszik a további dolgozóknak. Ha a probléma egy fix pont, keressük a munka szekvenciális részének optimalizálási lehetőségeit. Tudja, hogy ha testeket dobál a problémára, az egy klaszterfuckot fog eredményezni.
Szintetizálja a szervezeti erőfeszítéseket szinergikus termékek portfóliójára.
A legtöbb okos vállalkozás egyetlen termékkel indul. A termékhipotézisükre alapoznak, egyetlen kosárba teszik a tojásaikat, és a kerítésre lendülnek. Ha elég szerencsések ahhoz, hogy vonzerőt kapjanak, akkor megduplázzák ezt. Vége. És újra. És újra. Egy bizonyos ponton már több zászlóaljnyi ember őrlődik körülöttük, akik mind azt próbálják kitalálni, hogy kié a turbókabinos felhasználói felület, és hogy az új marzelvanok teljesen antigravikusak lesznek-e az őszi nagy marketinglökésre.
Ezek elkerülése érdekében a szervezet vezetőinek a termékportfólió fejlesztését explicit célként kell tartaniuk. Azokat a funkció- vagy termékötleteket, amelyek kiegészítik a szervezet általános üzleti stratégiáját, de nem léteznek együtt a fő termékkel, független csapatok különálló termékként fejleszthetik. Bizonyítékunk van arra, hogy a szoftverfejlesztési ütemterveket legfeljebb 25%-kal lehet lerövidíteni; könnyen lehet választani egy termék 18 hét alatt vagy két termék 24 hét alatt.
A sikeres új termékek fokozatosan integrálhatók a meglévő termékekbe, ahol ez ésszerű, és az eszközrendszereket, könyvtárakat és keretrendszereket a multiplikátor csapatok fejleszthetik, hogy csökkentsék mind az új termékek piacra kerülésének idejét, mind a meglévő termékek hordozási költségeit. A sikertelen új termékek méltóságteljesen kivonhatók a piacról drámaian alacsonyabb költséggel, mint a hasonlóan bonyolult funkciók. Végül is egy funkció eltávolítása egy termékből ugyanazokkal a vitás és koherenciaköltségekkel jár, mint egy funkció hozzáadása. Ritkán fordul elő, hogy egy funkciónak nagyobb a hordozási költsége, mint az eltávolításának költsége, ezért gyakoriak a Flying Dutchman funkciók.
A termékportfólió erényének konkrét példájaként képzeljük el az Amazon Web Services-t egyetlen termékként, amelyet százezer halálraítélt lélek foglalkoztat, és amelynek felhasználói felülete csupán gombok sorozata, amelyek lehetővé teszik a virtuális gépek, adatbázisok, adattavak, robotalkalmazások, kiterjesztett valóság alkalmazások, IoT dingók és egyebek rendelkezésre bocsátását és működtetését. Egy ilyen teremtmény a saját súlya alatt összeomlana.
Ehelyett az Amazon Web Services szinergikus termékek portfóliója. Az EC2 saját, független funkciókkal rendelkezik, amelyeket független alkalmazottak fejlesztenek és üzemeltetnek. Amikor az igényeit egy másik AWS-termék is kielégítheti (pl. virtuális gépképek tárolása az S3-on, vagy metrikák küldése a CloudWatch-nak), termékközi integrációt vezetnek be. Ez a termékstruktúra teszi lehetővé azt a nagymértékben egyidejű szervezeti struktúrát, amely lehetővé teszi az Amazon számára, hogy évente elképesztően sok új terméket dobjon piacra, miközben továbbra is támogatja és fejleszti a meglévő termékeket. A sikertelen szolgáltatásokat a szervezet többi részének megzavarása nélkül lehet megszüntetni vagy leállítani.
A felelősségkiosztási mátrixok legyenek kicsik, ritkák és lokálisak.
A szervezet érésével az ad-hoc szerepek gyakran teljes csapatokká fejlődnek. Ez a specializáció gyakran kritikus a belső méretgazdaságosság kiépítése szempontjából, de az új csoportok formalizálását kordában kell tartani. A felelősségkiosztási mátrix minden egyes oszlopa geometrikusan bővíti a szükséges interakciók lehetséges halmazát; a mátrix minden egyes kiosztása egy várakozást igénylő koordinációs pont. Amennyiben a mátrix két csoport közötti, sok érintkezést igénylő kapcsolatot jelez (pl. egy funkción dolgozó mérnökcsoport és a funkció jogi megfelelőségét biztosítani próbáló jogászok), törekedni kell arra, hogy az interakció költségeit csökkentsék a tagok áthelyezésével (pl., egy jogász beágyazása a mérnökök közé).
Aszinkron információterjesztés előnyben részesítése a szinkronnal szemben.
A megbeszélések és állapotfrissítések iránti hibakereslet jelentős forrása a szervezeti vezetők azon vágya, hogy lépést tartsanak azzal, hogy ki mit csinál. Ez a helyzettudatosság valóban fontos, de az, hogy ezt értekezletek összehívásával, Slacken történő üzenetküldéssel és a folyosókon való találkozással próbálják fenntartani, jelentős rendszerszintű hátrányt jelent a szervezeti termelékenységre nézve.
A szervezet skálázódása során a fejleményekről való tájékoztatás jobb modellje az, ha a csoportok a rendszeres munkájuk részeként állapotfrissítéseket tesznek közzé. A vezetők aszinkron módon elolvashatják ezeket a frissítéseket, és ha szükséges, további szinkron beszélgetést kezdeményezhetnek, hogy kérdéseket tegyenek fel, visszajelzést adjanak stb.
A szinkron megbeszéléseket az összetett kérdésekben való alacsony késleltetésű együttműködésre kell fenntartani; hasonlóképpen az együttműködést a szinkron megbeszélésekre kell fenntartani.
Az, ami a határokon belül történik, fontos.
Az, hogy ismerjük a szervezeti teljesítmény néhány határát és azok dinamikáját, nem mentesít minket attól, hogy empátiánkat emberi szervezetek építésére használjuk. A vállalatok olyan emberek csoportjai, akiket azért kompenzálnak, hogy véges életük egy részét nem a partnerükkel, gyermekeikkel, háziállataikkal vagy szuper fura hobbijaikkal tölthetik. Megérdemlik, hogy olyan szervezetek tagjai legyenek, amelyek tiszteletben tartják ezt az időt azáltal, hogy biztosítják, hogy munkájuknak értéke és értelme legyen. Nincs olyan matematikai modell, amely elvezetne minket ehhez a célhoz.
Köszönjük a különböző fiascaniaknak, hogy átnézték ezt a bejegyzést. A cikk esetleges hibái az enyémek, nem az övék.