Programavimas

Knygų apžvalga: mitinis žmogaus mėnuo: programinės įrangos inžinerijos esė, jubiliejinis leidimas

Frederickas P. Brooksas, jaunesnysis „Mitinis žmogaus mėnuo“ (MM-M) yra viena garsiausių knygų visoje programinės įrangos kūrimo literatūroje ir, be abejo, yra Garsiausia knyga apie programinės įrangos kūrimo valdymą. Jau yra nesuskaičiuojama daugybė šios klasės apžvalgų, tačiau aš dar kartą peržiūriu šiame įraše tiems programinės įrangos kūrėjams, kurie jos neskaitė ir nori nedidelės apžvalgos apie tai, kas joje patinka. Galų gale, tai yra „PC World“ numeris vienas iš geriausių IT knygų sąrašo, kurio niekada neprisipažinote neskaitęs. Visas leidinio, kurį apžvelgiu šiame įraše, pavadinimas yra „Mitinis žmogaus mėnuo: esė apie programinės įrangos inžineriją“, „Anniversary Edition“.

„Mitinio žmogaus mėnesio“ (išleista 1995 m.) „Jubiliejinis leidimas“ prideda reikšmingą turinį, be to, kas buvo paskelbta originaliame leidime 1975 m. „Jubiliejiniame leidime“ yra originali knyga originalia forma (nors su pataisų, pridėtų 1982 m. pakartotiniame leidime) ir pridedami keturi nauji skyriai. Pirmieji penkiolika „Anniversary Edition“ skyrių yra originalios knygos skyriai. Pridėtuose skyriuose yra atskiras, bet ne mažiau garsus Brookso IFIPS (1986) / IEEE Computer Magazine (1987) dokumentas „No Silver Bullet: Software Engineering Essence and Accidents of Software Engineering“ ir tolesni veiksmai, pavadinti „No Silver Bullet ReFired“. Jubiliejinio leidimo 18 ir 19 skyriuose daugiausia dėmesio skiriama 1995 m. Brookso savęs perspektyvai apie tai, ką jis parašė 1975 m. Brooksas nurodo, ką suklydo ir ką padarė (pastarųjų atvejų yra kur kas daugiau nei pirmųjų).

Yra daugybė apžvalgų apie Mitinis žmogaus mėnuo tai apima išsamų šios knygos temų ir citatų aptarimą („Wikipedia“ straipsnis, Bernardo I. Ng „Mitinio žmogaus mėnesio“ santrauka, Kai kurios „Mitinio žmogaus mėnesio“ įžvalgos pradedant nuo 11 skyriaus „Mitinis žmogaus mėnuo - I ištraukos“, „Mitinis“ Žmogaus mėnuo - II ištraukos, mitinio žmogaus mėnesio paskaita ir, pavyzdžiui, mitinio žmogaus mėnesio apžvalga / santrauka). Užuot pakartojęs visos knygos turinio apžvalgą, šiame įraše aš sutelkiu dėmesį į kelis pagrindinius dalykus ir atsižvelgdamas į kai kurias šiuolaikinės programinės įrangos geriausios praktikos ir ideologijas.

19 skyrius ("JK pasiūlymai Mitinis žmogaus mėnuo„Tiesa ar melas?“) „Jubiliejinis leidimas“ ypač patiks skaitytojui, kuris yra nekantrus ar trūksta laiko perskaityti visą knygą, tačiau nori gauti bendrą Brooks teiginių vaizdą. Kadangi Brooks pateikia šį skyrių pristatydamas „1975 m. knygos esmė“ „apybraižos forma“, „Brooks“ teiginiai („faktai ir„ nykščio taisyklės tipo apibendrinimai iš patirties “) iš jo originalios knygos pateikiami„ griežta forma “(maždaug 20 puslapių). šio skyriaus buvimas „Jubiliejiniame leidime“ yra dar viena priežastis, kodėl aš čia neskirstau knygos po skyrių. Šiame skyriuje yra daugiau nei tik apibendrinami teiginiai iš originalios knygos; jame taip pat yra keletas Brookso 1995 m. komentarų. pagrįstas dar 20 metų stebėjimu ir įžvalgos nauda.

Savo įraše „Mitinis žmogaus mėnuo: knygų apžvalga“ Markas Needhamas baigia šios knygos apžvalgą teiginiu: „Man labai patiko skaityti šią knygą ir pamatyti, kaip apie daugybę šiuolaikiškesnių metodikų idėjų jau buvo žinoma 1980-aisiais ir iš esmės nėra naujos idėjos “. Aš nuoširdžiai sutinku su šiuo teiginiu, nors jo tiesa galbūt dar stulbinamesnė: tai buvo pastebėjimai knygoje paskelbta 1975 remiantis Brookso patirtimi dirbant OS / 360 programoje 1960-ųjų viduryss ir apie tolesnius pokalbius 1960 metų pabaigas. Kitaip tariant, kai kurie dalykai, kurie, mūsų manymu, yra „nauji“ ar „madingi“, yra žinomi jau 45 metus ar daugiau! Pažymėtina, kad tai man primena Alano M. Daviso pristatymą Denverio „Java“ vartotojų grupei („Kas naujo apie naujus programinės įrangos kūrimo metodus?“) 2006 m. Pabaigoje, kuriame jis parodė, kiek „naujų“ metodikų ir šiandienos taktika yra labai panaši į ankstesnių metų pirmtakus ir tai, kaip mes, atrodo, važiuojame tarp jų per dešimtmečius.

Šie Brookso teiginiai ypač domina, kai galvoje sukasi mintis, kad ši knyga buvo išleista 1975 m., Remiantis 1960-ųjų vidurio ir pabaigos patirtimi (šios citatos yra iš 19 skyriaus santraukos, tačiau remiasi 1975 m. leidimo tekstu):

  • „Labai geri profesionalūs programuotojai yra dešimt kartų tokie pat produktyvūs kaip vargšai ... "[meistriškumas]
  • "" Geriausia yra maža, aštri komanda - kuo mažiau protų. "[Judrus]
  • "Defekto pašalinimas turi didelę galimybę (nuo 20 iki 50 proc.) Įvesti kitą. Po kiekvieno taisymo reikia paleisti visą anksčiau išbandytų bandymų atvejų banką, kad įsitikintumėte, jog jis nebuvo sugadintas neaiškiai." [regresijos testavimas]
  • "Verta sukurti daug derinimo pastolių ir bandymo kodą, galbūt net 50 procentų tiek, kiek derinamas produktas." [vieneto testavimas]
  • "Norint išlaikyti dokumentaciją, labai svarbu, kad ji būtų įtraukta į šaltinio programą, o ne laikoma kaip atskiras dokumentas ... net aukšto lygio kalbos sintaksė visiškai nepateikia tikslo." [DRY principas]

„The Mythical Man-Month“ yra daug daugiau pastebėjimų, kurie rodo, kad Brooksas ir kiti to meto kūrėjai suprato daugelį tų pačių programinės įrangos kūrimo pagrindų, kuriuos šiandien suprantame (o kartais ir vėl „atrandame“). Daugelis jų yra labiau žinomi ir yra iškviečiami kitose apžvalgose, todėl jų čia neišvardinu, išskyrus šias privalomų sąrašų citatas:

  • "Dėl programinės įrangos laiko stokos pasitaikė daugiau programinės įrangos projektų nei dėl visų kitų priežasčių".
  • Brooke'o įstatymas: „Pridėjus darbo jėgos prie vėlyvo programinės įrangos projekto, tai bus vėliau“.
  • - Vadinasi, žmogaus mėnesiai kaip darbo dydžio matavimo vienetas yra pavojingas ir apgaulingas mitas.

Vienas iš skyrių, kurį radau ypač laiku (ypač apie 1975 m. Knygą 2011 m.), Buvo Brooksas apie tai, kaip programinės įrangos architektas gali paveikti įgyvendinimą. Tai gali būti ypač opu, kai kūrėjas neįgyvendina architekto vizijos taip, kaip norėjo architektas. Brookso patarimai atrodo labai praktiški. Jis teigia, kad architektas turi susitaikyti su tuo, kad kodeksą įgyvendinantis asmuo turi „kūrybinę atsakomybę“ už tą įgyvendinimą. Jis taip pat pataria, kad architektui visada turėtų kilti idėja įgyvendinti bet kurį savo projektą, tačiau jis tuo pačiu metu turi būti pasirengęs priimti tokį pat gerą alternatyvų metodą, kurį pasiūlė kodeksą įgyvendinantis asmuo. Brooksas taip pat rekomenduoja, kad architektas pateiktų visus pasiūlymus dėl įgyvendinimo „tyliai ir privačiai“, būtų „pasirengęs atsisakyti kreditų“ ir noriai išklausytų įgyvendintojo „pasiūlymų dėl architektūros patobulinimų“. Tai man atrodo pagrįstas patarimas, pagrįstas mano patirtimi abiejose šių santykių pusėse.

2005 m. Dažnai cituojamame straipsnyje, kurio laikomasi retai, Brooks teigia:

Knyga iš tikrųjų yra daugiau apie valdymą, o ne apie technologijas. Technologija nepaprastai pasikeitė, todėl kai kurie senieji skyriai visiškai nesinchronizuoti. Kita vertus, žmonės nelabai pasikeitė. Štai kodėl Homeras, Šekspyras ir Biblija vis dar aktualūs, nes visi jie susiję su žmogaus prigimtimi. Manau, kad tai yra šios knygos paaiškinimo dalis: Žmonių valdymo komandose problemos nepasikeitė, nors ir terpė, kurioje žmonės kuria, ir įrankiai, kuriuos jie naudoja. Kai kurie žmonės knygą pavadino „programinės įrangos inžinerija“. Aš sutikčiau su tuo vienu požiūriu: tai yra, visi jį cituoja, kai kurie žmonės skaito ir keli žmonės eina pro jį.

Šioje citatoje esančios sąvokos gali būti svarbiausia perteikti Mitinis žmogaus mėnuo. Knyga yra patraukli žmonių valdymui. Per dešimtmečius tai išliko nesenstanti ir nepakitusi. Technologijos neabejotinai smarkiai pasikeitė ir tai gali būti didžiausias neigiamas dalykas šioje knygoje. Brookso pavyzdžiai, pagrįsti konkrečiais produktais, įrankiais ir kalbomis 1975 m., Tikrai buvo iliustratyvesni nei šiandien tipiniam skaitytojui. Pavyzdžiui, jo 1975 m. Knygoje PL / I vadinama „vieninteliu pagrįstu kandidatu į sistemos programavimą šiandien“. Kartais kai kurie skaitiniai gali būti šiek tiek sunkesni, nes trūksta tiesioginės patirties su produktais, kuriuos paminėja Brooksas. Tačiau daugeliu atvejų tai nėra daug trukdžių, nes knygoje daugiausia dėmesio skiriama žmogiškam elementui ir tai dažniausiai nepakinta ir dabar. Jubiliejinio leidimo 19 skyriuje Brooksas apmąsto nuolatinį savo knygos populiarumą ir teigia: „tiek, kiek MM-M kalba apie žmones ir komandas, senėjimas turėtų būti lėtas “.

Mitinis žmogaus mėnuo iš tikrųjų yra apie labai didelius įmonės programinės įrangos kūrimo projektus. Tai svarbu nepamiršti skaitant dalykus, kurie gali pasirodyti akivaizdūs žmogui, dirbančiam prie mažo projekto. Paskutinė citatos dalis yra garsi: „Kai kurie žmonės knygą pavadino„ programinės įrangos inžinerija “. Aš sutikčiau su tuo vienu požiūriu: tai yra, visi jį cituoja, kai kurie žmonės skaito ir keli žmonės eina pro jį “. Brookso knyga užpildyta Biblijos nuorodomis ir jis akivaizdžiai yra susipažinęs su Šventąja Biblija. Deja, Brookso citata „visi ją cituoja, kai kurie žmonės ją skaito, o keli žmonės ja eina“ šiandien yra pernelyg teisinga. Mes jį nuolat skaitysime, bet būtų malonu padaryti daugiau, kad pakeistume dalykus įgyvendinant didelio masto programinės įrangos kūrimo projektus.

Kai kurie žmonės tai jaučia Mitinis žmogaus mėnuo yra defeatistas ir netgi slegiantis. Skaitydamas nesijaučiu tas pats. Atvirkščiai, jaučiu, kad tai mums primena, kad tam tikras elgesys yra žalingas ir neveikiantis. Tai taip pat mums primena, kad neturėtume laukti „kito didelio dalyko“, o verčiau tęsti savo amato tobulinimą. Pateikiama daug praktinių patarimų ir pasiūlymų. Brooksui akivaizdžiai patinka būti programinės įrangos kūrimo srityje ir tai dar kartą parodyta jo knygoje. Brooksas baigia knygos „Epilogas: penkiasdešimt metų stebuklo, jaudulio ir džiaugsmo“, pasakodamas apie tai, kaip jis anksčiau galėjo „perskaityti visus žurnalus ir konferencijų medžiagas“, bet galiausiai turėjo atsisakyti konkrečių interesų po vieną. žinios sprogo. Jis daro išvadą: "Per daug interesų, per daug įdomių galimybių mokytis, tyrinėti ir galvoti. Koks nuostabus keblumas! Galo ne tik nematyti, bet ir tempas nemažėja. Mes turime daug būsimų džiaugsmų." Aš tikrai sutinku.

Originalų skelbimą galima rasti adresu //marxsoftware.blogspot.com/ (įkvėpta faktinių įvykių)

Šią istoriją „Knygų apžvalga: mitinis žmogaus mėnuo: esė apie programinės įrangos inžineriją, jubiliejinis leidimas“ iš pradžių išleido „JavaWorld“.