ProHoster > blogg > administration > "Vi litar pĂ„ varandra. Vi har till exempel inga löner allsâ - en lĂ„ng intervju med Tim Lister, författare till Peopleware
"Vi litar pĂ„ varandra. Vi har till exempel inga löner allsâ - en lĂ„ng intervju med Tim Lister, författare till Peopleware
Tim Lister - medförfattare till böcker
"MÀnskliga faktorn. FramgÄngsrika projekt och team" (originalboken heter "Peopleware")
"Waltzing with the Bears: Managing Risk in Software Projects"
"Adrenalin-galen och zombifierad av mönster. Beteendemönster för projektteam"
Alla dessa böcker Àr klassiker inom sitt omrÄde och skrevs tillsammans med kollegor i Atlantic Systems Guild. I Ryssland Àr hans kollegor mest kÀnda - Tom DeMarco О Peter Hruschka, som ocksÄ skrev mÄnga kÀnda verk.
Tim har 40 Ärs erfarenhet av mjukvaruutveckling; 1975 (ingen av dem som skrev detta habrapost föddes i Är), var Tim redan vice vd för Yourdon Inc. Han Àgnar nu sin tid Ät att konsultera, undervisa och skriva, med enstaka besök pÄ med rapporter konferenser runt om i vÀrlden.
Jag har handlett klienter pÄ olika sÀtt i mÄnga Är. Ett intressant exempel Àr ett företag som tillverkar robotar för knÀ- och höftoperationer. Kirurgen opererar inte helt sjÀlvstÀndigt utan anvÀnder en robot. SÀkerheten hÀr, Àrligt talat, Àr viktig. Men nÀr man försöker diskutera krav med mÀnniskor som Àr fokuserade pÄ att lösa problem... Det kommer att lÄta konstigt, men i USA finns det FDA (Federal Drug Administration), som licensierar produkter som dessa robotar. Innan du sÀljer nÄgot och anvÀnder det pÄ levande mÀnniskor mÄste du skaffa en licens. Ett av villkoren Àr att visa dina krav, vilka testerna Àr, hur du testade dem, vilka testresultaten Àr. Om du Àndrar kraven mÄste du gÄ igenom hela den hÀr enorma testprocessen om och om igen. VÄra kunder lyckades inkludera visuell design av applikationer i sina krav. De hade skÀrmdumpar direkt som en del av kraven. Vi mÄste dra ut dem och förklara att för det mesta vet alla dessa program ingenting om knÀn och höfter, alla dessa saker med kameran, etc. Vi behöver skriva om kravdokumenten sÄ att de aldrig Àndras, sÄvida inte nÄgra riktigt viktiga underliggande förutsÀttningar Àndras. Om visuell design inte Àr i kraven kommer uppdateringen av produkten att gÄ mycket snabbare. VÄrt jobb Àr att hitta de element som handlar om operationer i knÀ, höfter, rygg, dra ut dem i separata dokument och sÀga att dessa kommer att vara de grundlÀggande kraven. LÄt oss stÀlla en isolerad grupp krav om knÀoperationer. Detta kommer att göra det möjligt för oss att bygga en mer stabil uppsÀttning krav. Vi kommer att prata om hela produktlinjen, och inte om specifika robotar.
Mycket arbete gjordes, men de kom ÀndÄ till platser dÀr de tidigare tillbringade veckor och mÄnader av upprepade tester utan mening eller behov, eftersom deras krav beskrivna pÄ papper inte överensstÀmde med de verkliga krav som systemen byggdes för. FDA sa till dem varje gÄng: dina krav har förÀndrats, nu mÄste du kontrollera allt frÄn grunden. Kompletta omkontroller av hela produkten dödade företaget.
SÄ det finns sÄ underbara uppgifter nÀr du befinner dig i början av nÄgot intressant, och de allra första ÄtgÀrderna sÀtter spelets ytterligare regler. Om du ser till att denna tidiga aktivitet börjar fungera bra ur bÄde ledningsmÀssig och teknisk synvinkel, finns det en chans att du kommer att fÄ ett jÀttebra projekt. Men om den hÀr delen har gÄtt av stapeln och blivit fel nÄgonstans, om du inte kan hitta de grundlÀggande överenskommelserna... nej, det Àr inte sÄ att ditt projekt nödvÀndigtvis kommer att misslyckas. Men du kommer inte lÀngre att kunna sÀga: "Vi gjorde det bra, vi gjorde allting riktigt effektivt." Det hÀr Àr de saker jag gör nÀr jag kommunicerar med kunder.
Michael: Dvs man drar igÄng projekt, gör nÄgon form av kickoff och kollar att rÀlsen Àr pÄ vÀg Ät rÀtt hÄll?
Michael: I Agile försöker folk ofta att inte definiera nÄgot i förvÀg, utan att fatta beslut sÄ sent som möjligt och sÀga: vi Àr för stora, jag tÀnker inte pÄ den övergripande arkitekturen. Jag tÀnker inte pÄ en massa andra saker, istÀllet ska jag leverera nÄgot som fungerar till kunden just nu.
Tim: Jag tror att agila metoder, börjar med Agile manifest 2001 öppnade branschens ögon. Men Ă„ andra sidan Ă€r ingenting perfekt. Jag Ă€r helt för iterativ utveckling. Iteration Ă€r mycket vettigt i de flesta projekt. Men frĂ„gan du behöver tĂ€nka pĂ„ Ă€r: nĂ€r produkten vĂ€l Ă€r ute och anvĂ€nds, hur lĂ€nge hĂ„ller den? Ăr detta en produkt som hĂ„ller i sex mĂ„nader innan den ersĂ€tts av nĂ„got annat? Eller Ă€r detta en produkt som kommer att fungera i mĂ„nga, mĂ„nga Ă„r? Naturligtvis kommer jag inte att nĂ€mna namn, men... I New York och dess finansiella samhĂ€lle Ă€r de mest grundlĂ€ggande systemen vĂ€ldigt gamla. Det hĂ€r Ă€r otroligt. Du tittar pĂ„ dem och tĂ€nker, om du bara kunde gĂ„ tillbaka i tiden, till 1994, och berĂ€tta för utvecklarna: "Jag kom frĂ„n framtiden, frĂ„n 2019. Utveckla bara detta system sĂ„ lĂ€nge du behöver. Gör det utbyggbart, tĂ€nk pĂ„ arkitekturen. Det kommer sedan att förbĂ€ttras i mer Ă€n tjugofem Ă„r. Om du skjuter upp utvecklingen lite lĂ€ngre, i det stora hela kommer ingen att mĂ€rka det!â NĂ€r du ska uppskatta saker pĂ„ lĂ„ng sikt mĂ„ste du övervĂ€ga hur mycket det kommer att kosta totalt. Ibland Ă€r vĂ€ldesignad arkitektur verkligen vĂ€rt det, och ibland inte. Vi mĂ„ste se oss omkring och frĂ„ga oss sjĂ€lva: Ă€r vi i rĂ€tt situation för ett sĂ„dant beslut?
Och jag tror inte att de flesta kunder kan tÀnka pÄ problemet pÄ det sÀttet. De ser bara det de redan har, det Àr allt. DÀrefter kommer de med förfrÄgningar som "lÄt oss göra det hÀr lite enklare", eller vad de brukar sÀga. Men vi Àr inga servitörer eller servitriser, sÄ vi kan ta en bestÀllning hur dum den Àn blir och sedan baka den i köket. Vi Àr deras guider. Vi mÄste öppna deras ögon och sÀga: hej, vi har nya möjligheter hÀr! Inser du att vi verkligen kan förÀndra hur den hÀr delen av din verksamhet görs? Ett av problemen med Agile Àr att det tar bort medvetenheten om vad som Àr en möjlighet, vad som Àr ett problem, vad behöver vi ens göra, vilka tillgÀngliga tekniker som Àr bÀst lÀmpade för just den hÀr situationen.
Jag kanske Àr överdrivet skeptisk hÀr: det hÀnder mÄnga underbara saker i det agila samhÀllet. Men jag har ett problem med att istÀllet för att definiera ett projekt sÄ börjar folk rÀta upp handen. Jag skulle frÄga hÀr - vad gör vi, hur ska vi göra det? Och pÄ nÄgot magiskt sÀtt visar det sig alltid att klienten borde veta bÀttre Àn nÄgon annan. Men klienten vet bÀst bara nÀr han vÀljer frÄn saker som redan byggts av nÄgon. Om jag vill köpa en bil och jag vet storleken pÄ min familjebudget, kommer jag snabbt att vÀlja en bil som passar min livsstil. HÀr vet jag allt bÀttre Àn nÄgon annan! Men observera att nÄgon redan har tillverkat bilarna. Jag har ingen aning om hur man uppfinner en ny bil, jag Àr ingen expert. NÀr vi skapar anpassade eller specialprodukter mÄste kundens röst beaktas, men detta Àr inte lÀngre den enda rösten.
Oleg: Du nÀmnde Agile Manifesto. Behöver vi pÄ nÄgot sÀtt uppdatera eller revidera det med hÀnsyn till den moderna förstÄelsen av problemet?
Tim: Jag skulle inte röra honom. Jag tycker att det Àr ett fantastiskt historiskt dokument. Jag menar, han Àr vad han Àr. Han fyller 19 Är, han Àr gammal, men pÄ sin tid gjorde han revolution. Vad han gjorde bra var att han utlöste en reaktion och folk började viska om honom. Du arbetade med största sannolikhet inte Ànnu i branschen 2001, men dÄ arbetade alla enligt processer. Software Engineering Institute, fem nivÄer av mjukvarukompletthetsmodellen (CMMI). Jag vet inte om sÄdana legender frÄn den djupa antiken sÀger dig nÄgot, men dÄ var det ett genombrott. Till en början trodde man att om processerna var rÀtt instÀllda sÄ skulle problemen försvinna av sig sjÀlva. Och sÄ kommer Manifestet och sÀger: "Nej, nej, nej - vi kommer att baseras pÄ mÀnniskor, inte processer." Vi Àr mÀstare pÄ mjukvaruutveckling. Vi förstÄr att den ideala processen Àr en hÀgring, den hÀnder inte. Det finns för mycket egenart i projekt, tanken pÄ en enda perfekt process för alla projekt Àr inte meningsfull. Problemen Àr för komplexa för att hÀvda att det bara finns en lösning pÄ allt (hej, nirvana).
Jag antar inte att se in i framtiden, men jag kommer att sÀga att folk nu har börjat tÀnka mer pÄ projekt. Jag tycker att Agile Manifesto Àr vÀldigt bra pÄ att hoppa ut och sÀga, "Hej! Du Àr pÄ ett fartyg, och du sjÀlv kör det hÀr fartyget. Du mÄste fatta ett beslut - vi kommer inte att föreslÄ ett universellt recept för alla situationer. Du Àr besÀttningen pÄ fartyget, och om du Àr tillrÀckligt bra kan du hitta en vÀg till mÄlet. Det fanns andra skepp före dig, och det kommer att finnas andra skepp efter dig, men ÀndÄ, pÄ sÀtt och vis, Àr din resa unik." NÄgot sÄdant! Det Àr ett sÀtt att tÀnka. För mig Àr det inget nytt under solen, folk har seglat förut och kommer att segla igen, men för dig Àr detta din huvudresa, och jag kommer inte att berÀtta för dig exakt vad som kommer att hÀnda dig. Du mÄste ha förmÄgan att samordna arbete i ett team, och om du verkligen har det kommer allt att lösa sig och du kommer dit du ville.
MĂ€nniskor: 30 Ă„r senare
Oleg: Var Peopleware en revolution likavÀl som Manifestet?
Trots att Tim har hÄllit ett enormt antal föredrag Àr vÀldigt fÄ av dem upplagda pÄ YouTube. Du kan titta pÄ rapporten "The Return of Peopleware" frÄn 2007. Kvaliteten lÀmnar naturligtvis mycket övrigt att önska.
Michael: Har nÄgot förÀndrats under de senaste 30 Ären sedan boken publicerades?
Tim: Du kan se pÄ detta frÄn mÄnga olika vinklar. Sociologiskt sett... en gÄng i tiden, i enklare tider, satt du och ditt team pÄ samma kontor. Ni kunde vara nÀra varje dag, dricka kaffe tillsammans och diskutera arbete. Det som verkligen har förÀndrats Àr att team nu kan fördelas geografiskt, i olika lÀnder och tidszoner, men ÀndÄ arbetar de med samma problem, och detta lÀgger till ett helt nytt lager av komplexitet. Det hÀr kan lÄta gammaldags, men det finns inget som öga mot öga kommunikation dÀr ni Àr alla tillsammans, arbetar tillsammans och ni kan gÄ fram till en kollega och sÀga, titta vad jag upptÀckte, hur gillar ni det hÀr? Konversationer ansikte mot ansikte ger ett snabbt sÀtt att övergÄ till informell kommunikation, och jag tror att smidiga entusiaster ocksÄ borde gilla det. Och jag Àr ocksÄ orolig för i verkligheten har vÀrlden visat sig vara vÀldigt liten, och nu Àr det hela tÀckt med distribuerade team, och det hela Àr vÀldigt komplext.
Men hÀr Àr svÄrigheten: du har den hÀr funktionen med att uppdatera programvaran, men att integrera mÀnniskor Àr mycket svÄrare. Det jag vill uttrycka pÄ DevOops keynote Àr att vi nu har mÄnga fler spelare Àn vi nÄgonsin haft. Om du bara tÀnker pÄ alla inblandade i bara ett lag... Du tÀnkte pÄ det som ett team, och det Àr mycket mer Àn bara ett team av programmerare. Det hÀr Àr testare, projektledare och ett gÀng andra mÀnniskor. Och alla har sin egen syn pÄ vÀrlden. Produktchefer Àr helt annorlunda Àn projektledare. Administratörer har sina egna uppgifter. Det blir ett ganska svÄrt problem att samordna alla deltagare för att fortsÀtta vara medveten om vad som hÀnder och inte bli galen. Det Àr nödvÀndigt att separera gruppens uppgifter och uppgifter som gÀller alla. Detta Àr en mycket svÄr uppgift. à andra sidan tycker jag att det hela Àr mycket bÀttre Àn det var för mÄnga Är sedan. Det Àr precis den vÀgen som mÀnniskor vÀxer och lÀr sig att bete sig pÄ rÀtt sÀtt. NÀr man gör integration förstÄr man att det inte ska ske nÄgon underjordisk utveckling, sÄ att mjukvaran i allra sista stund inte kryper ut som en jack-in-the-box: typ, titta vad vi gjorde hÀr! Tanken Àr att du ska kunna göra integration och utveckling, och i slutet ska du rulla ut pÄ ett snyggt och iterativt sÀtt. Allt detta betyder mycket för mig. Detta gör det möjligt att skapa mer vÀrde för anvÀndarna av systemet och för din kund.
Tim: Alla vill förstÄs ha mer och mer funktionalitet. Du behöver inte röra pÄ dig, bara lÀgga pÄ mer. Ibland mÄste du till och med sakta ner för nÀsta stegvisa uppdatering för att fÄ med dig nÄgot anvÀndbart - och det Àr helt normalt.
Tanken att du behöver springa, springa, springa Ă€r inte den bĂ€sta. Det Ă€r osannolikt att nĂ„gon vill leva sitt liv sĂ„. Jag skulle vilja att rytmen i leveranserna sĂ€tter projektets egen rytm. Om du bara producerar en ström av smĂ„, relativt meningslösa saker, blir allt meningslöst. IstĂ€llet för att tanklöst försöka slĂ€ppa saker sĂ„ tidigt som möjligt, Ă€r det strategi som Ă€r vĂ€rt att diskutera med de ledande utvecklarna och produkt- och projektledare. Ăr detta ens vettigt?
Mönster och antimönster
Oleg: Man brukar prata om mönster och antimönster, och detta Àr skillnaden mellan projekts liv och död. Och nu kommer devops in i vÄra liv. Har den nÄgra egna mönster och antimönster som kan döda projektet pÄ plats?
Tim: Mönster och antimönster hĂ€nder hela tiden. NĂ„got att prata om. Tja, det finns det hĂ€r vi kallar "blanka saker". Folk gillar verkligen ny teknik. De fascineras helt enkelt av glansen av allt som ser coolt och stiligt ut, och de slutar stĂ€lla frĂ„gor: Ă€r det ens nödvĂ€ndigt? Vad ska vi uppnĂ„? Ăr det hĂ€r tillförlitligt, Ă€r det nĂ„gon mening? Jag ser ofta mĂ€nniskor, sĂ„ att sĂ€ga, i framkant av tekniken. De hypnotiseras av vad som hĂ€nder i vĂ€rlden. Men om man tittar nĂ€rmare pĂ„ vilka anvĂ€ndbara saker de gör sĂ„ finns det ofta helt enkelt inget anvĂ€ndbart!
Vi diskuterade just med vÄra kamrater att det hÀr Äret Àr ett jubileumsÄr, femtio Är sedan mÀnniskor landade pÄ mÄnen. Detta var 1969. Tekniken som hjÀlpte mÀnniskor att ta sig dit Àr inte ens 1969 Ärs teknik, utan snarare 1960 eller 62, eftersom NASA bara ville anvÀnda det som hade goda bevis pÄ tillförlitlighet. Och sÄ ser du pÄ det och förstÄr - ja, och de var sanna! Nu, nej, nej, men man fÄr problem med tekniken helt enkelt för att allt pressas för hÄrt, sÀljs frÄn alla sprickor. Folk ropar frÄn överallt: "Titta, vilken grej, det hÀr Àr det nyaste, det vackraste i vÀrlden, passar absolut alla!" Tja, det Àr det... vanligtvis visar sig allt detta bara vara ett lockbete, och sedan mÄste allt slÀngas. Kanske beror det pÄ att jag redan Àr en gammal man och ser pÄ sÄdana saker med stor skepsis, nÀr folk springer ut och sÀger att de har hittat det enda, mest korrekta sÀttet att skapa de bÀsta teknologierna. I detta ögonblick vaknar en röst inom mig som sÀger: "Vilken röra!"
Michael: Ja, hur ofta har vi hört talas om nÀsta silverkula?
Michael: Ja, den huvudsakliga "frÄgan om livet, universum och allt": Àr denna teknik eller tillvÀgagÄngssÀtt lÀmplig för din situation eller inte?
Tim: Denna frĂ„ga kan redan diskuteras med teknikgruppen. Kanske till och med ta in nĂ„gon konsult. Ta en titt pĂ„ projektet och förstĂ„ â kommer vi nu att göra nĂ„got rĂ€tt och anvĂ€ndbart, bĂ€ttre Ă€n tidigare? Kanske passar det, kanske inte. Men viktigast av allt, ta inte ett sĂ„dant beslut som standard, helt enkelt för att nĂ„gon sa: "Vi behöver desperat en blockchain! Jag lĂ€ste precis om honom i en tidning pĂ„ planet!â Allvarligt? Det Ă€r inte ens roligt.
Den mytomspunna "devops-ingenjören"
Oleg: Nu implementerar alla devops. NÄgon lÀser om devops pÄ Internet, och i morgon dyker ytterligare en ledig tjÀnst upp pÄ en rekryteringssajt. "devops ingenjör". HÀr skulle jag vilja uppmÀrksamma er: tror du att denna term, "devops ingenjör", har rÀtt till liv? Det finns en Äsikt att devops Àr en kultur, och nÄgot stÀmmer inte med hÀr.
Tim: SÄ sÄ. LÄt dem sedan omedelbart ge en förklaring av denna term. NÄgot som gör det unikt. Tills de bevisar att det finns nÄgon unik kombination av kompetens bakom en ledig tjÀnst som denna, kommer jag inte att köpa den! Jag menar, ja, vi har en jobbtitel, "devops ingenjör", en intressant titel, ja, vad hÀnder hÀrnÀst? Arbetstitlar Àr generellt sett en vÀldigt intressant sak. LÄt oss sÀga "utvecklare" - vad Àr det egentligen? Olika organisationer betyder helt olika saker. I vissa företag skriver högkvalitativa programmerare tester som Àr mer vettiga Àn tester skrivna av speciella professionella testare i andra företag. SÄ vad Àr de nu programmerare eller testare?
Ja, vi har jobbtitlar, men om du stÀller frÄgor tillrÀckligt lÀnge visar det sig sÄ smÄningom att vi alla Àr problemlösare. Vi Àr lösningssökande, och vissa har en del teknisk kompetens och en del har olika. Om du bor i en miljö dÀr DevOps har penetrerat, Àr du engagerad i integrationen av utveckling och administration, och denna aktivitet har ett ganska viktigt syfte. Men om man fÄr frÄgan om vad exakt man gör och vad man Àr ansvarig för, visar det sig att folk har gjort alla dessa saker sedan urminnes tider. "Jag Àr ansvarig för arkitekturen", "Jag Àr ansvarig för databaserna" och sÄ vidare, vad du Àn ser - allt detta var innan "devops".
NÀr nÄgon sÀger till mig sin jobbtitel lyssnar jag inte sÄ mycket. Det Àr bÀttre att lÄta honom berÀtta vad han faktiskt Àr ansvarig för, det gör att vi kan förstÄ problemet mycket bÀttre. Mitt favoritexempel Àr nÀr en person pÄstÄr sig vara en "projektledare". Vad? Det betyder ingenting, jag vet fortfarande inte vad du gör. En projektledare kan vara en utvecklare, ledare för ett team pÄ fyra personer, skriva kod, utföra arbete, som har blivit en teamleader, som mÀnniskor sjÀlva kÀnner igen sinsemellan som en ledare. Och dessutom kan en projektledare vara en chef som leder sexhundra personer i ett projekt, hanterar andra chefer, ansvarar för att upprÀtta scheman och planera budgetar, det Àr allt. Det Àr tvÄ helt olika vÀrldar! Men deras jobbtitel lÄter likadant.
Och förresten, jag Àr en stor föresprÄkare för ett tillvÀgagÄngssÀtt dÀr den hÀr typen av uppdelning av kompetens fungerar bra. DÀr tekniker kan vÀxa sina karriÀrer sÄ lÄngt de vill. Men jag ser fortfarande organisationer dÀr tekniker klagar: jag mÄste gÄ in i projektledning eftersom det Àr det enda sÀttet i det hÀr företaget. Ibland leder detta till fruktansvÀrda resultat. De bÀsta teknikerna Àr inte alls bra chefer, och de bÀsta cheferna kan inte hantera teknik. LÄt oss vara Àrliga om detta.
Jag ser en stor efterfrÄgan pÄ detta nu. Om du Àr en tekniker kan ditt företag hjÀlpa dig, men oavsett behöver du verkligen hitta din egen karriÀrvÀg eftersom tekniken hela tiden förÀndras och du mÄste uppfinna dig sjÀlv tillsammans med den! PÄ bara tjugo Är kan tekniken förÀndras minst fem gÄnger. Teknik Àr en konstig sak...
"Experter pÄ allt"
Michael: Hur kan mÀnniskor hantera en sÄdan hastighet av tekniska förÀndringar? Deras komplexitet vÀxer, deras antal vÀxer, den totala mÀngden kommunikation mellan mÀnniskor vÀxer ocksÄ, och det visar sig att du inte kan bli en "expert pÄ allt".
Tim: Höger! Om du arbetar inom teknik, ja, du mÄste definitivt vÀlja nÄgot specifikt och fördjupa dig i det. En del teknik som din organisation tycker Àr anvÀndbar (och kanske faktiskt kommer att vara anvÀndbar). Och om du inte lÀngre Àr intresserad av det - jag hade aldrig trott att jag skulle sÀga det hÀr - ja, du kanske borde flytta till nÄgon annan organisation dÀr tekniken Àr mer intressant eller bekvÀmare att studera.
Men generellt sett har du rÀtt. Teknikerna vÀxer Ät alla hÄll pÄ en gÄng; ingen kan sÀga "Jag Àr en experttekniker pÄ all teknik som finns." à andra sidan finns det svampmÀnniskor som bokstavligen tar till sig teknisk kunskap och Àr galna i det. Jag har sett ett par sÄdana mÀnniskor, de bokstavligen andas och lever det, det Àr anvÀndbart och intressant att prata med dem. De studerar inte bara vad som hÀnder inom organisationen, utan i allmÀnhet pratar de om det, de Àr ocksÄ riktigt coola teknologer, de Àr vÀldigt medvetna och mÄlmedvetna. De försöker bara hÄlla sig pÄ toppen av vÄgen, oavsett vad deras huvudsakliga jobb Àr, eftersom deras passion Àr teknikens rörelse, frÀmjandet av tekniken. Om du plötsligt trÀffar en sÄdan person ska du gÄ pÄ lunch med honom och diskutera olika hÀftiga saker under lunchen. Jag tror att varje organisation behöver Ätminstone ett par sÄdana personer.
Risker och osÀkerhet
Michael: Ărade ingenjörer, ja. LĂ„t oss beröra riskhantering medan vi har tid. Vi inledde den hĂ€r intervjun med en diskussion om medicinsk programvara, dĂ€r fel kan leda till svĂ„ra konsekvenser. Sedan pratade vi om Lunar Program, dĂ€r kostnaden för ett fel Ă€r miljontals dollar, och möjligen flera mĂ€nniskoliv. Men nu ser jag den motsatta rörelsen i branschen, folk tĂ€nker inte pĂ„ risker, försöker inte förutsĂ€ga dem, observerar dem inte ens.
Oleg: Rör dig snabbt och slÄ sönder saker!
Michael: Ja, gÄ snabbt, bryt saker, fler och fler saker, tills du dör av nÄgot. Ur din synvinkel, hur bör den genomsnittliga utvecklaren nÀrma sig att lÀra sig riskhantering nu?
Tim: LÄt oss hÀr dra en grÀns mellan tvÄ saker: risker och osÀkerhet. Det hÀr Àr olika saker. OsÀkerhet uppstÄr nÀr du inte har tillrÀckligt med data vid en given tidpunkt för att komma fram till ett definitivt svar. Till exempel, i ett mycket tidigt skede av ett projekt, om nÄgon frÄgar dig "nÀr kommer du att avsluta arbetet", om du Àr en ganska Àrlig person, kommer du att sÀga: "Jag har ingen aning." Du vet bara inte, och det Àr okej. Du har Ànnu inte studerat problemen och Àr inte bekant med laget, du kÀnner inte till deras fÀrdigheter och sÄ vidare. Detta Àr osÀkerhet.
Risker uppstÄr nÀr potentiella problem redan kan identifieras. SÄnt hÀr kan hÀnda, sannolikheten Àr större Àn noll, men mindre Àn hundra procent, nÄgonstans dÀremellan. PÄ grund av det kan allt hÀnda, frÄn förseningar och onödigt arbete, men till och med till ett ödesdigert resultat för projektet. Resultatet, nÀr ni sÀger - killar, lÄt oss fÀlla ihop vÄra paraplyer och lÀmna stranden, vi kommer aldrig att avsluta det, det Àr över, punkt. Vi gjorde antagandet att det hÀr skulle fungera, men det fungerar inte alls, det Àr dags att sluta. Det hÀr Àr situationerna.
Ofta Ă€r problem lĂ€ttast att lösa nĂ€r de redan har dykt upp, nĂ€r problemet uppstĂ„r just nu. Men nĂ€r ett problem Ă€r precis framför dig, gör du inte riskhantering â du löser problem, krishantering. Om du Ă€r en ledande utvecklare eller chef mĂ„ste du undra vad som kan hĂ€nda som skulle leda till förseningar, bortkastad tid, onödiga kostnader eller kollaps av hela projektet? Vad kommer fĂ„ oss att stanna och börja om? NĂ€r alla dessa saker fungerar, vad ska vi göra med dem? Det finns ett enkelt svar som Ă€r giltigt i de flesta situationer: fly inte frĂ„n risker, arbeta pĂ„ dem. Se hur du kan lösa en riskfylld situation, reducera den till ingenting, förvandla den frĂ„n ett problem till nĂ„got annat. IstĂ€llet för att sĂ€ga: ja, vi kommer att lösa problem nĂ€r de uppstĂ„r.
OsÀkerhet och risk ska stÄ i frÀmsta rummet i allt du sysslar med. Du kan ta en projektplan, titta pÄ vissa kritiska risker i förvÀg och sÀga: vi mÄste ta itu med det hÀr nu, för om nÄgot av det hÀr gÄr fel kommer inget annat att spela nÄgon roll. Du bör inte oroa dig för skönheten i duken pÄ bordet om det Àr oklart om du kan laga middag. Först mÄste du identifiera alla risker med att förbereda en utsökt middag, ta itu med dem och först sedan tÀnka pÄ alla andra saker som inte utgör ett verkligt hot.
à terigen, vad gör ditt projekt unikt? LÄt oss se vad som kan fÄ vÄrt projekt att gÄ av stapeln. Vad kan vi göra för att minimera sannolikheten för att detta hÀnder? Vanligtvis kan du inte bara neutralisera dem till 100 % och deklarera med gott samvete: "Det Àr det, det hÀr Àr inte lÀngre ett problem, risken har löst sig!" För mig Àr detta ett tecken pÄ vuxens beteende. Det hÀr Àr skillnaden mellan ett barn och en vuxen - barn tror att de Àr odödliga, att inget kan gÄ fel, allt kommer att bli bra! Samtidigt tittar vuxna pÄ hur treÄriga barn hoppar pÄ lekplatsen, följer rörelserna med blicken och sÀger till sig sjÀlva: "ooh-ooh, ooh-ooh." Jag stÄr i nÀrheten och gör mig redo att fÄnga nÀr barnet faller.
à andra sidan Àr anledningen till att jag gillar den hÀr verksamheten sÄ mycket för att den Àr riskabel. Vi gör saker, och de sakerna Àr riskfyllda. De krÀver en vuxen instÀllning. Entusiasm ensam kommer inte att lösa dina problem!
VuxeningenjörstÀnkande
Michael: Exemplet med barn Àr bra. Om jag Àr en vanlig ingenjör, dÄ Àr jag glad över att vara barn. Men hur gÄr man mot ett mer vuxet tÀnkande?
Oleg: Relativt sett, om du arbetar enligt Kanban, nÀr du trÀffar flaskhalsen av vissa tester, kan du sluta med det du gjorde dÀr (till exempel programmering) och gÄ och hjÀlpa testarna.
Tim: Exakt. Jag tror att de bÀsta teknikerna, om man tittar noga pÄ dem, Àr de typ sina egna chefer. Hur kan jag formulera detta...
Oleg: Ditt liv Àr ditt projekt, som du hanterar.
Tim: Exakt! Jag menar, du tar ansvar, du förstÄr frÄgan, och du kommer i kontakt med mÀnniskor nÀr du ser att dina beslut kan pÄverka deras arbete, sÄdana saker. Det handlar inte om att bara sitta vid skrivbordet, göra sitt jobb och inte ens inse vad som hÀnder runt omkring dig. Nej nej nej. Förresten, en av de bÀsta sakerna med Agile Àr att de föreslog korta spurter, för pÄ sÄ sÀtt kan alla deltagares tillstÄnd tydligt observeras, de kan se allt tillsammans. Vi pratar om varandra varje dag.
Hur man kommer in i riskhantering
Oleg: Finns det nÄgon formell kunskapsstruktur inom detta omrÄde? Jag Àr till exempel Java-utvecklare och vill förstÄ riskhantering utan att bli en riktig projektledare av utbildning. Jag kommer förmodligen att lÀsa McConnells "Hur mycket kostar ett mjukvaruprojekt" först, och vad sedan? Vilka Àr de första stegen?
Tim: Det första Àr att börja kommunicera med mÀnniskor i projektet. Detta ger en omedelbar förbÀttring av kulturen för kommunikation med kollegor. Vi mÄste börja med att öppna allt som standard, istÀllet för att dölja det. SÀg: det hÀr Àr sakerna som stör mig, det hÀr Àr sakerna som hÄller mig vaken pÄ nÀtterna, jag vaknade pÄ natten idag och var som: herregud, jag mÄste tÀnka pÄ det hÀr! Ser andra samma sak? Bör vi som grupp reagera pÄ dessa potentiella problem? Du mÄste kunna stödja en diskussion om dessa Àmnen. Det finns ingen förberedd formel som vi arbetar efter. Det handlar inte om att göra hamburgare, det handlar om mÀnniskor. "Made a cheeseburger, sell a cheeseburger" Àr inte alls vÄr grej, och det Àr dÀrför jag Àlskar det hÀr jobbet sÄ mycket. Jag gillar nÀr allt som managers brukade göra nu blir lagets egendom.
Oleg: Du har pratat i böcker och intervjuer om hur mÀnniskor oroar sig mer för lycka Àn om siffror pÄ en graf. à andra sidan, nÀr du sÀger till teamet: vi flyttar till devops, och nu mÄste programmeraren stÀndigt kommunicera, detta kan vara lÄngt utanför hans komfortzon. Och i detta ögonblick kan han, lÄt oss sÀga, vara djupt olycklig. Vad ska man göra i den hÀr situationen?
Michael: Men allt detta tvingar dig att kliva ur din komfortzon. Som ingenjör mÄste du komma ur din komfortzon och kommunicera. Som problemlösare mÄste du hela tiden försÀtta dig sjÀlv i en svag position och fundera pÄ vad som kan gÄ fel. Denna typ av arbete Àr till sin natur utformad för att vara en olÀgenhet. Du försÀtter dig medvetet i stressiga situationer. Vanligtvis flyr folk ifrÄn dem, folk gillar att vara glada barn.
Tim: Vad som kan göras kan du komma ut och öppet sĂ€ga: âAllt Ă€r okej, jag klarar det! Jag Ă€r inte den enda som kĂ€nner mig obekvĂ€m. LĂ„t oss diskutera olika obekvĂ€ma saker, alla tillsammans, som ett team!" Det hĂ€r Ă€r vĂ„ra vanliga problem, vi mĂ„ste ta itu med dem, vet du? Jag tror att idiosynkratiska geniutvecklare Ă€r som mammutar, de försvann. Och deras betydelse Ă€r mycket begrĂ€nsad. Om du inte kan kommunicera kan du inte delta bra. DĂ€rför Ă€r det bara att prata. Var Ă€rlig och öppen. Jag Ă€r vĂ€ldigt ledsen att detta Ă€r obehagligt för nĂ„gon. Kan du förestĂ€lla dig att det för mĂ„nga Ă„r sedan gjordes en studie enligt vilken den största rĂ€dslan i USA inte Ă€r döden, men gissa vad? RĂ€dsla för att tala inför publik! Det betyder att det nĂ„gonstans finns mĂ€nniskor som hellre dör Ă€n att sĂ€ga en komplimang högt. Och jag tror att det rĂ€cker för dig att ha nĂ„gra grundlĂ€ggande fĂ€rdigheter, beroende pĂ„ vad du gör. TalförmĂ„ga, skrivförmĂ„ga - men bara sĂ„ mycket som verkligen behövs i ditt arbete. Om du arbetar som analytiker, men inte kan lĂ€sa, skriva eller tala, sĂ„ har du tyvĂ€rr inget att göra i mina projekt!
Priset för kommunikation
Oleg: Ăr det inte dyrare att anstĂ€lla sĂ„dana utĂ„triktade medarbetare av olika anledningar? De chattar trots allt hela tiden istĂ€llet för att jobba!
Tim: Jag menade kÀrnan i laget, och inte bara alla. Om du har nÄgon som Àr riktigt cool pÄ att stÀlla in databaser, Àlskar att stÀlla in databaser och kommer att fortsÀtta stÀlla in dina databaser för resten av sitt liv och det Àr det, coolt, fortsÀtt sÄ. Men jag pratar om mÀnniskor som vill bo i sjÀlva projektet. KÀrnan i teamet, som syftar till att utveckla projektet. Dessa mÀnniskor behöver verkligen stÀndigt kommunicera med varandra. Och speciellt i början av projektet, nÀr man diskuterar risker, sÀtt att nÄ globala mÄl och liknande.
Michael: Detta gÀller alla som Àr involverade i projektet, oavsett specialisering, kompetens eller arbetssÀtt. Ni Àr alla intresserade av projektets framgÄng.
Tim: Ja, du kÀnner att du Àr tillrÀckligt fördjupad i projektet, att din uppgift Àr att hjÀlpa projektet att bli verklighet. Oavsett om du Àr programmerare, analytiker, grÀnssnittsdesigner, vem som helst. Det Àr anledningen till att jag kommer till jobbet varje morgon och det hÀr Àr vad vi gör. Vi Àr ansvariga för alla dessa mÀnniskor, oavsett deras kompetens. Det hÀr Àr en grupp mÀnniskor som har vuxenkonversationer.
Oleg: Faktum Àr att, pÄ tal om pratglada anstÀllda, försökte jag simulera invÀndningar frÄn mÀnniskor, sÀrskilt chefer, som uppmanas att byta till devops, mot denna helt nya vision av vÀrlden. Och du som konsulter borde vara medveten om dessa invÀndningar mycket bÀttre Àn jag som utvecklare! Dela vad som oroar chefer mest?
Tim: Chefer? Hm. Oftast Àr chefer pressade av problem, inför behovet av att akut slÀppa nÄgot och göra en leverans och liknande. De tittar pÄ hur vi hela tiden diskuterar och brÄkar om nÄgot, och de ser det sÄ hÀr: samtal, samtal, samtal... Vilka andra samtal? FortsÀtt jobba nu! För att prata kÀnns inte som jobb för dem. Du skriver inte kod, testar inte programvara, verkar inte göra nÄgonting - varför inte skicka dig att göra nÄgot? NÀr allt kommer omkring Àr leverans redan om en mÄnad!
Michael: Skriv lite kod!
Tim: Det verkar för mig att de inte Àr oroliga för arbetet, utan för bristen pÄ synlighet av framstegen. För att det ska verka som om vi nÀrmar oss framgÄng mÄste de se oss trycka pÄ knappar pÄ tangentbordet. Hela dagen frÄn morgon till kvÀll. Detta Àr problem nummer ett.
Oleg: Misha, du tÀnker pÄ nÄgot.
Michael: FörlÄt, jag tappade tankarna och fick en flashback. Allt detta pÄminde mig om ett intressant rally som hÀnde igÄr... Det var för mÄnga rallyn igÄr... Och allt lÄter vÀldigt bekant!
Livet utan löner
Tim: Förresten, det Àr inte alls nödvÀndigt att organisera "rallyn" för kommunikation. Jag menar, de mest anvÀndbara diskussionerna mellan utvecklare sker nÀr de bara pratar med varandra. Man gÄr in pÄ morgonen med en kopp kaffe, och dÀr Àr fem personer samlade och rasande diskuterar nÄgot tekniskt. För mig, om jag Àr chef för det hÀr projektet, Àr det bÀttre att bara le och gÄ nÄgonstans om mitt företag, lÄta dem diskutera det. De Àr redan involverade sÄ mycket som möjligt. Detta Àr ett gott tecken.
Oleg: Förresten, i din bok har du ett gÀng anteckningar om vad som Àr bra och vad som Àr dÄligt. AnvÀnder du nÄgon av dem sjÀlv? Relativt sett har du nu ett företag, och ett som Àr strukturerat pÄ ett mycket oortodoxt sÀtt...
Tim: Jag trodde en gÄng att om man skrev en bok som Waltzing with Bears skulle det förÀndra historiens gÄng och folk skulle sluta, men... Ja, se, företag lÄtsas ofta att allt Àr bra med dem. SÄ fort nÄgot dÄligt hÀnder Àr det en chock och en överraskning för dem. "Titta, vi testade systemet, och det klarar inga systemtester, och det hÀr Àr ytterligare tre mÄnader av oplanerat arbete, hur kunde detta hÀnda? Vem visste? Vad kan gÄ fel? Seriöst, tror du pÄ detta?
Jag försöker förklara att du inte ska bli för arg över den nuvarande situationen. Vi mÄste prata ut det, verkligen förstÄ vad som kunde ha gÄtt fel och hur vi kan förhindra att sÄdana saker hÀnder i framtiden. Om ett problem uppstÄr, hur ska vi bekÀmpa det, hur ska vi begrÀnsa det?
För mig ser allt detta skrÀmmande ut. MÀnniskor hanterar komplexa, irriterande problem och fortsÀtter att lÄtsas att om de bara hÄller tummarna och hoppas pÄ det bÀsta sÄ kommer det "bÀsta" att hÀnda. Nej, det fungerar inte sÄ.
Ăva riskhantering!
Michael: Hur mÄnga organisationer Àgnar du sig Ät riskhantering enligt din Äsikt?
Tim: Det som gör mig upprörd Àr att folk helt enkelt skriver ner risker, tittar pÄ listan och gÄr till jobbet. Att identifiera risker för dem Àr faktiskt riskhantering. Men för mig lÄter detta som en anledning att frÄga: okej, det finns en lista, vad exakt kommer du att Àndra? Du mÄste Àndra dina standardsekvenser av ÄtgÀrder med hÀnsyn till dessa risker. Om det finns nÄgon svÄrare del av arbetet mÄste du ta itu med det och först dÄ gÄ vidare till nÄgot enklare. I de första spurterna, börja lösa komplexa problem. Detta ser redan ut som riskhantering. Men vanligtvis kan folk inte sÀga vad de Àndrade efter att ha sammanstÀllt en lista över risker.
Michael: Och ÀndÄ, hur mÄnga av dessa företag Àr involverade i riskhantering, fem procent?
Tim: TyvÀrr hatar jag att sÀga detta, men det hÀr Àr en mycket obetydlig del. Men mer Àn fem, eftersom det finns riktigt stora projekt, och de kan helt enkelt inte existera om de inte gör Ätminstone nÄgot. LÄt oss bara sÀga att jag blir vÀldigt förvÄnad om det Àr minst 25%. SmÄ projekt brukar svara pÄ sÄdana frÄgor sÄ hÀr: om problemet pÄverkar oss, dÄ löser vi det. Sedan hamnar de framgÄngsrikt i problem och Àgnar sig Ät problemhantering och krishantering. NÀr du försöker lösa ett problem och problemet inte Àr löst, vÀlkommen till krishantering.
Ja, jag hör ofta, "vi kommer att lösa problem nÀr de uppstÄr." Visst kommer vi att göra det? Kommer vi verkligen att bestÀmma oss?
Oleg: Du kan göra det naivt och helt enkelt skriva in viktiga invarianter i projektstadgan, och om invarianterna gÄr sönder Àr det bara att starta om projektet. Det visar sig mycket piembucky.
Michael: Ja, det hÀnde mig att nÀr risker utlöstes sÄ omdefinierades projektet helt enkelt. Trevligt, bingo, problemet löst, oroa dig inte lÀngre!
Tim: LÄt oss trycka pÄ ÄterstÀllningsknappen! Nej, det fungerar inte sÄ.
Keynote pÄ DevOops 2019
Michael: Vi kommer till den sista frÄgan i denna intervju. Du kommer till nÀsta DevOops med en keynote, kan du lyfta pÄ hemlighetsgardinen för vad du ska berÀtta?
Tim: Just nu skriver sex av dem pÄ en bok om arbetskultur, organisationers outtalade regler. Kultur bestÀms av organisationens kÀrnvÀrden. Oftast mÀrker inte folk detta, men efter att ha jobbat med konsult i mÄnga Är Àr vi vana att mÀrka det. Du kommer in i ett företag, och bokstavligen inom nÄgra minuter börjar du kÀnna vad som hÀnder. Vi kallar detta "smak". Ibland Àr den hÀr doften riktigt bra, och ibland Àr den, ja, oj. Saker och ting Àr vÀldigt olika för olika organisationer.
Michael: Jag har ocksÄ jobbat med konsultverksamhet i flera Är och förstÄr vÀl vad du pratar om.
Tim: Egentligen Ă€r en av de saker som Ă€r vĂ€rda att prata om vid keynoten att allt inte bestĂ€ms av företaget. Du och ditt team, som en gemenskap, har din egen lagkultur. Detta kan vara hela företaget, eller en separat avdelning, ett separat team. Men innan du sa, hĂ€r Ă€r vad vi tror, ââhĂ€r Ă€r vad som Ă€r viktigt... Du kan inte förĂ€ndra en kultur innan vĂ€rderingarna och övertygelserna bakom specifika handlingar har förstĂ„tts. Beteende Ă€r lĂ€tt att observera, men att söka efter övertygelser Ă€r svĂ„rt. DevOps Ă€r bara ett bra exempel pĂ„ hur saker och ting blir mer och mer komplexa. Interaktioner blir bara mer komplexa, de blir inte alls renare eller tydligare, sĂ„ du bör tĂ€nka pĂ„ vad du tror pĂ„ och vad alla omkring dig Ă€r tysta om.
Om du vill uppnÄ snabba resultat, hÀr Àr ett bra Àmne för dig: har du sett företag dÀr ingen sÀger "jag vet inte"? Det finns platser dÀr du bokstavligen torterar en person tills han erkÀnner att han inte vet nÄgot. Alla vet allt, alla Àr otroligt lÀrda. Du nÀrmar dig vilken person som helst och han mÄste omedelbart svara pÄ frÄgan. IstÀllet för att sÀga "Jag vet inte." Hurra, de anstÀllde ett gÀng lÀrda! Och i vissa kulturer Àr det i allmÀnhet mycket farligt att sÀga "jag vet inte", det kan uppfattas som ett tecken pÄ svaghet. Det finns ocksÄ organisationer dÀr, tvÀrtom, alla kan sÀga "jag vet inte." DÀr Àr det helt lagligt, och om nÄgon börjar skrÀpa som svar pÄ en frÄga Àr det helt normalt att svara: "Du vet inte vad du pratar om, eller hur?" och förvandla det hela till ett skÀmt.
Helst skulle du vilja ha ett jobb dÀr du kan vara stÀndigt lycklig. Det kommer inte att bli lÀtt, inte varje dag Àr solig och trevlig, ibland mÄste man jobba hÄrt, men nÀr man börjar göra inventering kommer det att visa sig: wow, det hÀr Àr en riktigt underbar plats, jag mÄr bra av att jobba hÀr, bÄde kÀnslomÀssigt och intellektuellt. Och det finns företag dit du gÄr som konsult och omedelbart inser att du inte kunde stÄ ut i tre mÄnader och skulle fly i fasa. Det Àr detta jag vill prata om i rapporten.