Kio estas yak shaving?
Inĝeniera kulturo kaj programara praktiko
Yak shaving estas la ĉeno de malgrandaj, enuigaj subtaskoj, kiujn vi devas plenumi antaŭ ol vi povas fari tion, kion vi efektive celis. La taskoj ne estas hazardaj; ĉiu estas ligita, eĉ se nerekte, al la origina celo. La termino, kreita en la MIT AI Lab, kaptas la absurdan senton de esti okupata la tutan tagon dum la vera tasko daŭre malproksimiĝas.
Reviziita de Jackie, Estro de Lernado kaj Disvolviĝo, Levellers - Laste reviziita la 8-an de junio 2026
Kion tio signifas
Yak shaving okazas kiam simpla tasko ekkreskigas barbon. Vi ekiras por fari unu aferon, ripari cimon, sendi dokumenton, deploji flikaĵon, ruli teston, kaj baldaŭ vi estas enterigita sub stako da neverŝajnaj etaj taskoj, kiuj ŝajnas esti vagintaj ien el ies alia tago. La ŝlosila punkto estas, ke tiuj taskoj ne estas tute hazardaj. Ili estas ligitaj, eĉ se nerekte, al tio, kion vi intencis fari. En la klasika MIT-klarigo, ekzistas "ĉeno de dek du kaŭzaj rilatoj" inter la enuiga tasko antaŭ vi kaj la vera tasko, kiun vi komencis.
Tial yak shaving estas pli preciza ol simpla distriĝo. Respondi mesaĝojn anstataŭ verki vian raporton estas prokrastado. Malkovri, ke vi ne povas verki la raporton ĝis vi retrovas dosieron, ne povas retrovi la dosieron ĝis vi renovigas atestilon, ne povas renovigi la atestilon ĝis vi ĝisdatigas dependaĵon, kaj ne povas ĝisdatigi la dependaĵon ĝis vi riparis rompitan lokan konstruaĵon, tio estas yak shaving. Ĝi sentas absurde, ĉar ĉiu paŝo estas malgranda kaj loka, dum la origina celo daŭre malproksimiĝas.
Kial tio gravas
La genieco de "yak shaving" ne estas zoologia precizeco. Ĝi estas emocia precizeco. La frazo kaptas la apartan miksaĵon de neceso kaj ridindeco, kiun moderna laboro generas. Ni vivas ene de sistemoj konstruitaj el dependaĵoj, permesoj, versioj, transdonoj, alirreguloj, forgesitaj defaŭltoj, fragila ilaro kaj kaŝitaj supozoj. La ĉefa tasko estas ofte facile priskribi kaj strange malfacile atingi. Yak shaving donas nomon al la sento, ke la plej rekta vojo al la celo iel fariĝis flanka aventuro tra aĉetado, agordo kaj arkiva arkeologio.
Ĝi ankaŭ daŭras, ĉar ĝi estas amuza sen esti triviala. Inĝenieroj ŝatas ĝin, ĉar ĝi sonas same ridinde kiel la sperto sentas. Homoj ekster inĝenierado ŝatas ĝin, ĉar la ŝablono ne limiĝas al kodo. Jam en 2005 la termino estis disvastiĝinta en pli ĝeneralan skribadon pri laboro kaj produktiveco, kie ĝi estis uzata por priskribi, kiel grupoj kaj organizoj perdas la fadenon de tio, kion ili efektive provis plenumi. Kiam termino povas priskribi kaj rompitan Emacs-agordon kaj komitatan kunsidon, kiu iel fariĝis pri la malĝusta kalkultabelo, ĝi eskapis el ĵargono kaj fariĝis daŭra metaforo.
Kiel ĝi funkcias
De kie venas la termino
La origina rakonto gravas, ĉar ĝi estas ofte rakontata iom malĝuste. La frazo eliris el la kulturo de la MIT AI Lab, ne kiel sentempa popola diraĵo. Carlin J. Vieri kreis ĝin en la 1990-aj jaroj post vidi la segmenton "Yak Shaving Day" el la programo The Ren and Stimpy Show. En posta raporto, Vieri rememoris, ke li vidis la epizodo post malfrunoktaj hokeo-ludoj, kaj poste, iom da tempo poste, atingis la frazon kiam li baraktis por sendi dokumenton nokte kaj trovis sin kaptita en administraj antaŭaĵoj kiel permesoj, kuriera aranĝo kaj aĉetmenda paperaro. Li diris al sia ĉambrokunulo, ke li "yak shaving"-as, kaj poste provis disvastigi la terminon en la laboratorio.
La bildstrio provizis la bildaron
Postaj raportoj pri la frazo ligas la kreaĵon de Vieri al la bizara Yak Shaving Day-materialo en la frua Ren and Stimpy-sezono de aŭtuno 1991. Samtempaj resumoj de tiu materialo priskribas ŝajnigan feston implikante razkremon, razilon kaj la atendadon de razita jako alvenanta kun donacoj, kio klarigas, kial la frazo ĉiam sonis iomete freneza eĉ kiam uzata por priskribi tute ordinaran programaran doloron.
Kiel ĝi eniris la skriban registron
La unua solida publika dokumentado de la termino estas interna MIT-arkivo de la 11-a de februaro 2000. En tiu mesaĝo, Jeremy H. Brown skribis al la dissendolisto all-ai, ke "nia propra Carlin Vieri inventis la terminon", kaj poste difinis yak shaving kiel fari stultan, enuigan taskon, kies ligo al la vera laboro estas videbla nur tra tiu longa kaŭza ĉeno. Tiu arkivo gravas, ĉar ĝi fiksigas la laboratorian kuntekston kaj la atribuon. La Jargon File poste registris la terminon kiel slango de la MIT AI Lab kaj notis, ke ĝi verŝajne venis el epizodo de Ren and Stimpy, kio estas ĝenerale ĝusta, kvankam la propra posta klarigo de Vieri faras la sekvencon pli klara ol la singarda formulado de la Jargon File.
Kiel ĝi disvastiĝis
La rakonto estis konfuzita preskaŭ tuj kiam la termino eskapis el la laboratorio. En marto 2005, Seth Godin popularigis ĝin por pli larĝa publiko, sed lia unua afiŝo malĝuste atribuis ĝin al la MIT Media Lab kaj eĉ donis malĝustan daton. En oktobro de tiu sama jaro, li publikigis korekton, eksplicite kreditante Carlin J. Vieri kaj ligante al la MIT-arkivo. Joichi Ito ankaŭ skribis pri la termino en marto 2005, traktante ĝin kiel pecon de teknika ĵargono, kiu jam komencis vojaĝi preter sia origina hejmo. Do la pura versio de la rakonto estas jena: la bildstrio provizis la bildon en 1991, Vieri kreis la frazon en la MIT AI Lab en la 1990-aj jaroj, la dissendolista afiŝo de Brown en 2000 donis al ĝi daŭran skriban difinon, kaj la blogosfera kulturo helpis ĝin disvastiĝi en pli ĝeneralan kulturon en 2005.
Ekzemploj
En programara inĝenierado, yak shaving kutime komenciĝas per tasko tiel modesta, ke ĝi apenaŭ ŝajnas inda je mencio. Vi volas ŝanĝi unu etikedon en formularo. Vi volas ruli unu migradon. Vi volas ĝisdatigi unu pakaĵon. Poste la dependaĵoj amasiĝas. Biblioteka ĝisdatigo postulas pli novan rultempan medion. La nova rultempa medio rompas malnovan kromprogramon. La kromprogramo dependas de ilo, kiun neniu tuŝis dum jaroj. La instalilo de la ilo ne plu funkcias sur via maŝino. En tiu punkto vi estas tri horojn profunde, ĉirkaŭita de protokoloj, kaj teknike ankoraŭ "nur ŝanĝas etikedon".
La fama folklora ekzemplo komenciĝas per la deziro vaksi aŭton kaj retroiras tra absurda ĉeno ĝis iu finas en zoo. Ĝia daŭro venas el la strukturo prefere ol el la detaloj. Jen pli nuntempa versio. Vi nur intencis liveri unu-linian urĝan flikaĵon antaŭ tagmanĝo. La laboro de kontinua integriĝo malsukcesas, ĉar la konstrua bildo estas malaktuala. Ĝisdatigi la bildon postulas pli novan pakaĵadministrilon. La pakaĵadministrilo ne povas komuniki kun la interna registro, ĉar la kompania radika atestilo eksvalidiĝis sur via tekokomputilo. Renovigi tiun atestilon signifas ensaluti en la sekurecan portalon. La portalo nun insistas pri nova aplikaĵo por ununura ensaluto. La aplikaĵa ĝisdatigo postulas plenan operaciumrestarton. La restarto malkaŝas nefinitan firmvaran flikaĵon, kiu ekigas ekranojn de diska reakiro kaj pardonpetan telefonon al IT. Je la 15-a horo vi ne tuŝis la flikaĵon, sed ĉio, kion vi faris, povas ankoraŭ, en grimpe laŭleĝa senco, esti spurita reen al ĝi. Tio estas yak shaving.
Oftaj miskomprenoj
Yak shaving estas nur prokrastado. Ne estas. Prokrastado estas foriri por fari ion senrilatan. Yak shaving estas laboro, kiu estas genuene ligita al via celo tra longa kaŭza ĉeno, eĉ kiam tiu ligo fariĝas videbla nur post kiam vi estas jam profunde en ĝi.
Ĝi estas ĉiam perdo de tempo. Ne nepre. Bona yak shaving forigas realan blokadon, kaj post kiam la blokado estas forigita, la progreso rekomenciĝas. La problemo aperas nur kiam la deturniĝo ĉesas esti necesa.
Ĝi estas malnova popola diraĵo. Ĝi estas nova kaj specifa. Ĝi estis kreita en la MIT AI Lab en la 1990-aj jaroj kaj spuras sian bildaron al la bildstrio Ren and Stimpy, ne al tradicia proverbo.
Ĝi aplikeblas nur al programado. La ŝablono aperas ie ajn, kie laboro sidas ene de sistemoj de dependaĵoj, permesoj kaj transdonoj, kio klarigas, kial la termino disvastiĝis bone preter inĝenierado en ĝeneralan skribadon pri laboro.
Riskoj kaj limoj
La plej utila distingo ne estas inter yak shaving kaj ne-yak shaving. Ĝi estas inter bona yak shaving kaj malbona yak shaving. Bona yak shaving forigas realan blokadon. Vi ne povas plenumi la taskon ĝis tiu alia afero estas riparita, kaj post kiam ĝi estas riparita, la progreso rekomenciĝas. Malbona yak shaving perdas la fadenon. La deturniĝo komenciĝas kiel antaŭkondiĉo kaj poste bloomas en redesignon, optimumigon, ordigadon aŭ scivolemo-movitan vagadon. La testo de Vieri estas bona: ĉu tio efektive rilatas al via ĉefa celo, aŭ ĉu vi nur flatas vin mem per agado? Moderna konsilo pri la termino faras similan distingon inter necesa ĝeno kaj simpla prokrastado.
La propra klarigo de Vieri estas utila ĉi tie. Li diris, ke yak shaving devus impliki taskojn rilatajn al via ĉefa celo, ne nur hazardajn distraĵojn. Tio konservas la frazon honesta. Vera yak shaving ne estas simple enui kaj foriri. Ĝi estas laboro antaŭ la laboro, ofte necesa laboro, sed laboro, kies neceso estas videbla nur post kiam vi estas jam profunde en ĝi.
Kion fari poste
Praktikantoj eliras el la kaptilo per eksplicita formulado de la origina celo kaj traktado de ĉiu deturniĝo kiel kulpa ĝis pruvita necesa. Skribu la taskon, kiun vi efektive intencis fini. Demandu, ĉu la nova subtasko genuene blokas ĝin nun. Se jes, faru nur la minimuman necesan por malbloki. Se ne, kaptu ĝin kaj revenu poste. En programaraj terminoj, tio ofte signifas rifuzi kontrabandi refaktorigon, purigadon kaj ilplibonigojn en laboron, kies efektiva celo estas ripari unu urĝan cimon. Se vi apartigas la nunan malblokigon de la allogaj ekstra plibonigoj, la jako eble ankoraŭ bezonas razadon, sed almenaŭ nur la rilatajn partojn de ĝi.
Rilata: Rubber duck debugging.
Rilata: Heisenbug.
Rilata: XY problem.
Rilata: Footgun.
Rilata: Blameless post-mortem.
Rilata: Death march.
Rilata: Premature optimisation.
Rilata: YAGNI.
Rilata: Cargo-cult programming.
Rilata: Rewrite trap.
Rilata: Hofstadter's law.
Rilata: Two hard things in computer science.
Rilata: Ninety-ninety rule.
Rilata: Worse is better.
Rilata: Chesterton's fence.
Rilata: Fundamental theorem of software engineering.
Ĉu vi havas demandon aŭ sugeston, aŭ volas kompreni, kiel ni esploras kaj reviziis tiujn gvidilojn? Legu pri niaj redakciaj normoj kaj kiel kontakti nin.
Oftaj demandoj
Kion signifas yak shaving?
Ĝi estas la ĉeno de malgrandaj, enuigaj subtaskoj, kiujn vi devas plenumi antaŭ ol vi povas fari la taskon, kiun vi efektive celis. Ĉiu subtasko estas ligita al la origina celo, eĉ se nerekte, kio estas tio, kio apartigas ĝin de simpla distriĝo.
De kie venas la frazo?
Ĝi estis kreita en la MIT AI Lab en la 1990-aj jaroj de Carlin J. Vieri, kiu prenis la bildaron el la Yak Shaving Day-materialo en la bildstrio Ren and Stimpy. La dissendolista afiŝo de Jeremy H. Brown en la MIT en 2000 donis al ĝi sian unuan daŭran skriban difinon.
Ĉu yak shaving estas la sama kiel prokrastado?
Ne. Prokrastado estas fari ion senrilatan anstataŭ via tasko. Yak shaving estas fari aferojn, kiuj estas genuene ligitaj al via tasko tra longa ĉeno de antaŭkondiĉoj, eĉ se ĝi povas sentiĝi same neproduktiva.
Ĉu yak shaving estas ĉiam malbona?
Ne. Bona yak shaving forigas realan blokadon, por ke la ĉefa laboro povu daŭri. Ĝi fariĝas problemo nur kiam la deturniĝo ĉesas esti necesa kaj transformiĝas en ordigadon, optimumigon aŭ scivolemo-movitan vagadon.
Kiel mi ĉesigas yak shaving?
Skribu la taskon, kiun vi efektive intencis fini, kaj poste traktu ĉiun novan subtaskon kiel kulpan ĝis pruvita necesa. Se ĝi genuene blokas vin nun, faru la minimuman por malbloki kaj nenion pli. Se ne, kaptu ĝin por poste.
Kial la termino uzas jakon?
La bildo venas el bildstrio, ne el ia reala praktiko. Ĝia absurdeco estas la punkto: ĝi kaptas, kiom ridinde sentas esti okupata la tutan tagon pri antaŭkondiĉoj dum la simpla origina tasko restas netusita.
Fontoj
GSB Archive, Yak Shaving (all-ai mailing list, 11 February 2000) (MIT CSAIL). Jeremy H. Brown's attribution of the term to Carlin Vieri and the original MIT AI Lab definition built on a long causal chain of subtasks
