Cargo Cult-Programteknik

i Sydhavet er der en lastkult af mennesker. Under krigen så de fly med masser af gode materialer, og de ønsker, at det samme skal ske nu. Så de har arrangeret at lave ting som landingsbaner, at sætte brande langs siderne af landingsbanerne, at lave en træhytte, som en mand kan sidde i, med to træstykker på hovedet til hovedtelefoner og bambusstænger, der stikker ud som antenner—han er controlleren—og de venter på, at flyene lander. De gør alt rigtigt. Formen er perfekt. Det ser ud præcis som det så ud før. Men det virker ikke. Ingen fly lander. Så jeg kalder disse ting cargo cult science, fordi de følger alle de tilsyneladende forskrifter og former for videnskabelig undersøgelse, men de mangler noget vigtigt, fordi flyene ikke lander.
-Richard Feynman

jeg finder det nyttigt at tegne en kontrast mellem to forskellige organisationsudviklingsformer: “procesorienteret” og “engagementorienteret” udvikling. Procesorienteret udvikling opnår sin effektivitet gennem dygtig planlægning, brug af omhyggeligt definerede processer, effektiv brug af tilgængelig tid og dygtig anvendelse af bedste praksis for programmelteknik. Denne udviklingsstil lykkes, fordi den organisation, der bruger den, konstant forbedres. Selvom dets tidlige forsøg er ineffektive, betyder konstant opmærksomhed på processen, at hvert efterfølgende forsøg fungerer bedre end det foregående forsøg.

engagement-orienteret udvikling går under flere navne, herunder “hero-orienteret udvikling” og “individuel bemyndigelse.”Forpligtelsesorienterede organisationer er kendetegnet ved at ansætte de bedst mulige mennesker, bede dem om total engagement i deres projekter, styrke dem med næsten fuldstændig autonomi, motivere dem i ekstrem grad og derefter se, at de arbejder 60, 80 eller 100 timer om ugen, indtil projektet er afsluttet. Engagement-orienteret udvikling henter sin styrke fra sin enorme motiverende evne—undersøgelse efter undersøgelse har vist, at individuel motivation er langt den største enkelt bidragyder til produktivitet. Udviklere gør frivillige, personlige forpligtelser til de projekter, de arbejder på, og de går ofte til ekstraordinære længder for at få deres projekter til at lykkes.

organisatoriske bedragere

når de bruges kyndigt, kan enten udviklingsstil producere programmer af høj kvalitet økonomisk og hurtigt. Men begge udviklingsstile har patologiske lookalikes, der ikke fungerer næsten lige så godt, og det kan være svært at skelne fra de ægte artikler.

proces-bedragerorganisationen baserer sin praksis på en slavisk hengivenhed til processen for processens skyld. Disse organisationer ser på procesorienterede organisationer som NASAs Programmelingeniørlaboratorium og IBMs tidligere føderale Systemafdeling. De bemærker, at disse organisationer genererer masser af dokumenter og holder hyppige møder. De konkluderer, at hvis de genererer et tilsvarende antal dokumenter og afholder et sammenligneligt antal møder, vil de få samme succes. Hvis de genererer mere dokumentation og holder flere møder, bliver de endnu mere succesrige! Men de forstår ikke, at dokumentationen og møderne ikke er ansvarlige for succesen; de er bivirkningerne af nogle få specifikke effektive processer. Vi kalder disse organisationer bureaukratiske, fordi de sætter form af programmelprocesser over substansen. Deres misbrug af processen er demotiverende, hvilket gør ondt i produktiviteten. Og de er ikke særlig behagelige at arbejde for.

commitment-imposter-organisationen fokuserer primært på at motivere folk til at arbejde lange timer. Disse organisationer ser på succesrige virksomheder som Microsoft; bemærk, at de genererer meget lidt dokumentation; tilbyde aktieoptioner til deres medarbejdere; og så kræve dem til at arbejde bjerge af overarbejde. De konkluderer, at hvis de også minimerer dokumentation, tilbyder aktieoptioner og kræver omfattende overarbejde, vil de få succes. Jo mindre dokumentation og jo mere overarbejde, jo bedre! Men disse organisationer savner det faktum, at Microsoft og andre succesrige engagementorienterede virksomheder ikke kræver overarbejde. De ansætter folk, der elsker at skabe programmer. De hold disse mennesker med andre mennesker, der elsker at skabe programmer lige så meget som de gør. De giver overdådig organisatorisk støtte og belønninger for at skabe programmer. Og så løsner de dem. Det naturlige resultat er, at udviklere og ledere vælger at arbejde mange timer frivilligt. Bedragerorganisationer forvirrer effekten (lange timer) med årsagen (høj motivation). Vi kalder bedragerorganisationerne svedbutikker, fordi de lægger vægt på at arbejde hårdt snarere end at arbejde smart, og de har tendens til at være kaotiske og ineffektive. De er heller ikke meget behagelige at arbejde for.

Cargo Cult Engineering

ved første øjekast synes disse to slags bedragerorganisationer at være nøjagtige modsætninger. Den ene er utrolig bureaukratisk, og den anden er utrolig kaotisk. Men en vigtig lighed er faktisk vigtigere end deres overfladiske forskelle. Ingen af dem er meget effektive, og årsagen er, at ingen af dem forstår, hvad der virkelig får sine projekter til at lykkes eller mislykkes. De gennemgår bevægelserne om at ligne effektive organisationer, der er stilistisk ens. Men uden nogen reel forståelse af, hvorfor praksis fungerer, stikker de i det væsentlige bare stykker bambus i ørerne og håber, at deres projekter lander sikkert. Mange af deres projekter ender med at gå ned, fordi disse kun er to forskellige sorter af lastkult-programmelteknik, der ligner deres manglende forståelse for, hvad der får programmelprojekter til at fungere.

Cargo cult er let at identificere. Cargo cult-ingeniører retfærdiggør deres praksis ved at sige: “Vi har altid gjort det på denne måde i fortiden” eller “vores virksomhedsstandarder kræver, at vi gør det på denne måde”—selv når disse måder ikke giver mening. De nægter at anerkende de afvejninger, der er involveret i enten procesorienteret eller engagementorienteret udvikling. Begge har styrker og svagheder. Når de præsenteres for mere effektive, nye metoder, foretrækker cargo cult-ingeniører at blive i deres træhytter med velkendte, komfortable og-ikke-nødvendigvis-effektive arbejdsvaner. “At gøre det samme igen og igen og forvente forskellige resultater er et tegn på sindssyge,” siger det gamle ordsprog. Det er også et tegn på cargo cult-programteknik.

den virkelige debat

i dette magasin og i mange andre publikationer bruger vi vores tid på at diskutere, om processen er god eller individuel bemyndigelse (med andre ord engagementorienteret udvikling) kan være bedre. Dette er en falsk dikotomi. Processen er god, og det samme er individuel bemyndigelse. De to kan eksistere side om side. Procesorienterede organisationer kan bede om et ekstremt engagement i specifikke projekter. Engagement-orienterede organisationer kan bruge programmel teknik praksis dygtigt.

forskellen mellem disse to tilgange kommer virkelig ned på forskelle i stil og personlighed. Jeg har arbejdet på flere projekter af hver stil, og har ønsket forskellige ting om hver stil. Nogle udviklere nyder at arbejde metodisk på en 8 til 5 tidsplan, hvilket er mere almindeligt i procesorienterede virksomheder. Andre udviklere nyde fokus og spænding, der kommer med at gøre en 24 Lotte 7 engagement i et projekt. Engagementorienterede projekter er i gennemsnit mere spændende, men et procesorienteret projekt kan være lige så spændende, når det har en veldefineret og inspirerende mission. Procesorienterede organisationer ser ud til at degenerere til deres patalogiske lookalikes sjældnere end engagementorienterede organisationer gør, men begge stilarter kan fungere godt, hvis den er dygtigt planlagt og udført.

det faktum, at både procesorienterede og engagementorienterede projekter har patologiske lookalikes, har forvirret debatten. Nogle projekter udført i hver stil lykkes, og nogle fejler. Det gør det muligt for en procesadvokat at pege på procesens succes og forpligtelsesfejl og hævde, at processen er nøglen til succes. Det giver forpligtelsesadvokaten mulighed for at gøre det samme.

det problem, der er faldet ved vejen, mens vi har diskuteret proces vs. engagement, er så åbenlyst, at det ligesom Edgar Allen Poe ‘ s purloined brev måske simpelthen har været så indlysende, at vi har overset det. Vi bør ikke diskutere proces vs. engagement; vi bør diskutere kompetence vs. inkompetence. Den virkelige forskel er ikke, hvilken stil der vælges, men hvilken uddannelse, træning og forståelse der bringes til at bære på projektet. I stedet for at diskutere proces vs. engagement, bør vi være på udkig efter måder at hæve det gennemsnitlige niveau af udvikler og manager kompetence. Det vil forbedre vores chancer for succes uanset hvilken udviklingsstil vi vælger.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.