Cargo Cult Software Engineering

Etelämerellä on rahtikultti ihmisiä. Sodan aikana he näkivät lentokoneita, joissa oli paljon hyvää materiaalia, ja he haluavat saman tapahtuvan nyt. Joten he ovat järjestäneet asioita, kuten kiitoratoja, laittaneet nuotioita pitkin kiitoratojen reunoja, rakentaneet puisen majan, jossa mies voi istua, kaksi puupalaa päässään kuulokkeita varten ja bambutangot sojottamassa kuin antennit-hän on ohjain-ja he odottavat lentokoneiden laskeutumista. He tekevät kaiken oikein. Muoto on täydellinen. Se näyttää samalta kuin ennen. Mutta se ei toimi. Lentokoneet eivät laskeudu. Kutsun näitä asioita rahtikulttitiedeiksi, koska ne noudattavat tieteellisen tutkimuksen näennäisiä sääntöjä ja muotoja, mutta niistä puuttuu jotain olennaista, koska koneet eivät laskeudu.
— Richard Feynman

minusta on hyödyllistä tehdä kontrasti kahden eri organisaatiokehitystyylin välille: “prosessikeskeinen” ja “sitoutumiskeskeinen” kehitys. Prosessikeskeinen kehitys saavuttaa tehokkuutensa taitavalla suunnittelulla, tarkoin määriteltyjen prosessien käytöllä, käytettävissä olevan ajan tehokkaalla käytöllä ja ohjelmistotekniikan parhaiden käytäntöjen taitavalla soveltamisella. Tämä kehitystyyli onnistuu, koska sitä käyttävä organisaatio paranee jatkuvasti. Vaikka sen varhaiset yritykset ovat tehottomia, Tasainen huomio prosessiin tarkoittaa, että jokainen peräkkäinen yritys toimii paremmin kuin edellinen yritys.

Sitoutumiskeskeinen kehitys kulkee useilla nimillä, kuten “sankarillinen kehitys” ja ” yksilöllinen voimaantuminen.”Sitoutumisorientoituneille organisaatioille on ominaista palkata parhaat mahdolliset ihmiset, pyytää heiltä täydellistä sitoutumista projekteihinsa, voimaannuttaa heidät lähes täydellisellä autonomialla, motivoida heitä äärimmäisessä määrin ja sitten nähdä, että he työskentelevät 60, 80 tai 100 tuntia viikossa, kunnes projekti on valmis. Sitoutumiskeskeinen kehitys saa voimansa sen valtavasta motivointikyvystä-tutkimus toisensa jälkeen on todennut, että yksilöllinen motivaatio on ylivoimaisesti suurin yksittäinen tuottavuuden tekijä. Kehittäjät tekevät vapaaehtoisia, henkilökohtaisia sitoumuksia hankkeisiin, joiden parissa he työskentelevät, ja he näkevät usein poikkeuksellisen paljon vaivaa saadakseen projektinsa onnistumaan.

organisatoriset huijarit

tietoteknisesti käytettynä kummalla tahansa kehitystyylillä voidaan tuottaa korkealaatuisia ohjelmistoja taloudellisesti ja nopeasti. Mutta molemmissa kehitystyyleissä on patologisia lookkeja, jotka eivät toimi läheskään yhtä hyvin, ja joita voi olla vaikea erottaa aidoista artikkeleista.

prosessi-huijari-järjestö perustaa käytäntönsä orjalliseen omistautumiseen prosessille prosessin vuoksi. Nämä organisaatiot tarkastelevat prosessikeskeisiä organisaatioita, kuten Nasan Software Engineering Laboratorya ja IBM: n entistä Federal Systems Divisionia. He panevat merkille, että nämä järjestöt laativat paljon asiakirjoja ja pitävät usein kokouksia. He päättelevät, että jos he laativat vastaavan määrän asiakirjoja ja pitävät vastaavan määrän kokouksia, he menestyvät samoin. Jos ne tuottavat enemmän dokumentaatiota ja pitävät enemmän kokouksia, ne ovat vieläkin menestyksekkäämpiä! Mutta he eivät ymmärrä, että dokumentointi ja kokoukset eivät ole vastuussa menestyksestä.; ne ovat muutaman erityisen tehokkaan prosessin sivuvaikutuksia. Kutsumme näitä organisaatioita byrokraattisiksi, koska ne asettavat ohjelmistoprosessit sisällön yläpuolelle. Niiden väärinkäyttö prosessi on demotivating, mikä vahingoittaa tuottavuutta. Eikä heille ole kovin nautinnollista tehdä töitä.

sitoutumishuijarit-järjestö keskittyy ensisijaisesti motivoimaan ihmisiä pitkiin työpäiviin. Nämä organisaatiot tarkastelevat menestyviä yrityksiä, kuten Microsoftia; toteavat, että ne tuottavat hyvin vähän dokumentaatiota; tarjoavat osakeoptioita työntekijöilleen; ja sitten vaatia heitä tekemään vuoroittain ylitöitä. He päättelevät, että jos nekin vähättelevät dokumentointia, tarjoavat osakeoptioita ja vaativat runsaasti ylitöitä, ne menestyvät. Mitä vähemmän dokumentaatiota ja enemmän ylitöitä, sen parempi! Mutta nämä organisaatiot kaipaavat sitä, että Microsoft ja muut menestyvät sitoutumisorientoituneet yritykset eivät vaadi ylitöitä. He palkkaavat ihmisiä, jotka rakastavat luoda ohjelmistoja. He parittavat näitä ihmisiä muiden ihmisten kanssa, jotka rakastavat luoda ohjelmistoja yhtä paljon kuin he. Ne tarjoavat ylenpalttista organisaatiotukea ja palkintoja ohjelmistojen luomiseen. Sitten he päästävät heidät vapaaksi. Luonnollinen lopputulos on, että ohjelmistokehittäjät ja-johtajat päättävät tehdä pitkiä työpäiviä vapaaehtoisesti. Huijariorganisaatiot sekoittavat vaikutuksen (Pitkät työpäivät) syyhyn (korkea motivaatio). Kutsumme huijarijärjestöjä hikipajoiksi, koska ne korostavat kovaa työntekoa fiksun tekemisen sijaan, Ja ne ovat yleensä kaoottisia ja tehottomia. Heillekään ei ole kovin nautinnollista tehdä töitä.

Cargo Cult Software Engineering

ensisilmäyksellä nämä kahdenlaiset huijariorganisaatiot näyttävät olevan täsmällisiä vastakohtia. Toinen on uskomattoman byrokraattinen ja toinen uskomattoman kaoottinen. Mutta yksi keskeinen samankaltaisuus on itse asiassa tärkeämpi kuin niiden pinnalliset erot. Kumpikaan ei ole kovin tehokas, ja syy on se, että kumpikaan ei ymmärrä, mikä todella saa sen hankkeet onnistumaan tai epäonnistumaan. He näyttävät tehokkailta organisaatioilta, jotka ovat tyylillisesti samanlaisia. Mutta ilman todellista ymmärrystä siitä, miksi käytännöt toimivat, he lähinnä vain tunkevat bambunpalasia korviinsa ja toivovat hankkeidensa laskeutuvan turvallisesti. Monet heidän hankkeistaan päätyvät kaatuu, koska nämä ovat vain kaksi erilaista cargo cult software engineering, samanlainen niiden ymmärtämättömyys, mikä saa ohjelmistoprojektit toimimaan.

Cargo cult software engineering on helppo tunnistaa. Cargo Cultin ohjelmistoinsinöörit perustelevat käytäntöjään sanomalla: “Olemme aina tehneet näin menneisyydessä” tai “yhtiömme standardit edellyttävät, että teemme sen näin”—silloinkin, kun näillä tavoilla ei ole mitään järkeä. Ne kieltäytyvät tunnustamasta kauppasuhteita, jotka liittyvät prosesseihin tai sitoumuksiin perustuvaan kehitykseen. Molemmilla on vahvuuksia ja heikkouksia. Kun cargo Cultin ohjelmistoinsinöörit saavat käyttöönsä tehokkaampia, uusia käytäntöjä, he pysyvät mieluummin tuttujen, mukavien ja-ei-välttämättä-tehokkaiden työtapojen puisissa majoissaan. “Saman asian tekeminen uudelleen ja uudelleen ja erilaisten tulosten odottaminen on merkki hulluudesta”, vanha sanonta kuuluu. Se on myös merkki cargo cult software Engineeringistä.

todellinen keskustelu

tässä lehdessä ja monissa muissa julkaisuissa käytämme aikaamme keskustellen siitä, onko prosessi hyvä vai yksilöllinen voimaantuminen (toisin sanoen sitoutumiskeskeinen kehitys) voisi olla parempi. Tämä on väärä kahtiajako. Prosessi on hyvä, samoin yksilön voimaantuminen. Nämä kaksi voivat olla rinnakkain. Prosessikeskeiset organisaatiot voivat vaatia äärimmäistä sitoutumista tiettyihin hankkeisiin. Sitoutumisorientoituneet organisaatiot osaavat hyödyntää ohjelmistotekniikan käytäntöjä taitavasti.

ero näiden kahden lähestymistavan välillä johtuu oikeastaan tyyli-ja persoonallisuuseroista. Olen työskennellyt useiden eri tyylisten projektien parissa ja pitänyt eri asioista jokaisessa tyylissä. Jotkut kehittäjät nauttivat työskentelystä metodisesti 8-5-aikataululla, mikä on yleisempää prosessipainotteisissa yrityksissä. Muut kehittäjät nauttivat keskittymisestä ja jännityksestä, joka tulee tehdessään 24×7 sitoutumista projektiin. Sitoutumiskeskeiset projektit ovat keskimäärin jännittävämpiä, mutta prosessikeskeinen projekti voi olla yhtä jännittävä, kun sillä on hyvin määritelty ja inspiroiva tehtävä. Prosessikeskeiset organisaatiot näyttävät rappeutuvan patalogisiksi lookalikeikseen harvemmin kuin sitoutumiskeskeiset organisaatiot, mutta kumpikin tyyli voi toimia hyvin, jos se on taitavasti suunniteltu ja toteutettu.

keskustelua on sekoittanut se, että sekä prosessi-että sitoutumiskeskeiset hankkeet ovat patologisen näköisiä. Osa kullakin tyylillä toteutetuista projekteista onnistuu, osa epäonnistuu. Näin prosessin puolestapuhuja voi osoittaa prosessin onnistumisen ja sitoutumisen epäonnistumiset ja väittää, että prosessi on avain menestykseen. Se antaa sitoutumisen puolestapuhujalle mahdollisuuden toimia samoin.

kysymys, joka on pudonnut syrjään, kun olemme keskustelleet prosessi vastaan sitoutuminen on niin räikeä, että, kuten Edgar Allen Poe ‘ s purloined kirje, se on yksinkertaisesti ollut niin ilmeinen, että olemme unohtaneet sen. Meidän ei pitäisi keskustella prosessi vastaan sitoutuminen; meidän pitäisi keskustella pätevyys vastaan epäpätevyys. Todellinen ero ei ole siinä, mikä tyyli valitaan, vaan siinä, millainen kasvatus, valmennus ja ymmärrys hankkeessa saadaan aikaan. Sen sijaan, että keskustelisimme prosessi vs. sitoutuminen, meidän pitäisi etsiä keinoja nostaa keskimääräinen taso kehittäjä ja johtaja osaaminen. Tämä parantaa mahdollisuuksiamme menestyä riippumatta siitä, minkä kehitystyylin valitsemme.

Vastaa

Sähköpostiosoitettasi ei julkaista.