Programmēšana

Grāmatu apskats: Mītiskais cilvēks mēnesis: Esejas par programmatūras inženieriju, Anniversary Edition

Frederika P. Brūksa, jaunākā, mītiskais cilvēka mēnesis (MM-M) ir viena no slavenākajām grāmatām visā programmatūras izstrādes literatūrā un, iespējams, ir visslavenākā grāmata par programmatūras izstrādes pārvaldību. Par šo klasi jau ir neskaitāmas atsauksmes, taču es to vēlreiz pārskatīju šajā ierakstā tiem programmatūras izstrādātājiem, kuri to nav lasījuši un vēlas nelielu pārskatu par to, kas tajā patīk. Galu galā, tas ir PC World pirmais numurs desmit labāko IT grāmatu sarakstā, kas nekad neatzīs, ka jūs neesat lasījis. Pilnais izdevuma, kuru es pārskatīju šajā ierakstā, nosaukums ir The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition.

The Mythical Man-Month "Anniversary Edition" (publicēts 1995. gadā) pievieno ievērojamu saturu papildus tam, kas tika publicēts sākotnējā izdevumā 1975. gadā. "Anniversary Edition" oriģinālā grāmata ir iekļauta tās sākotnējā formā (lai arī ar labojumu, kas pievienoti 1982. gada atkārtotajā izdrukā) un pievieno četras jaunas nodaļas. Pirmās piecpadsmit nodaļas Anniversary Edition ir nodaļas no oriģinālās grāmatas. Pievienotās nodaļas ietver Brooksa atsevišķo, bet tikpat slaveno IFIPS (1986) / IEEE Computer Magazine (1987) rakstu No Silver Bullet: programmatūras inženierijas būtība un negadījumi un turpinājumu ar nosaukumu No Silver Bullet ReFired. Anniversary Edition 18. un 19. nodaļā galvenā uzmanība tiek pievērsta Brūksa 1995. gada pašapziņai par to, ko viņš uzrakstīja 1975. gadā. Brūkss norāda, ko viņš ir kļūdījies un ko pareizi izdarījis (pēdējo gadījumu ir daudz vairāk nekā pirmo).

Ir daudz atsauksmju par Mītiskais cilvēka mēnesis kas ietver izsmeļošu tēmu atspoguļojumu un citātus no šīs grāmatas (Vikipēdijas raksts, Bernarda I. Ng Mītiskā cilvēka mēneša kopsavilkums, Daži ieskati no Mītiskā cilvēka mēneša, sākot ar 11. nodaļu, Mītiskais cilvēka mēnesis - I izraksti, Mītiskais Cilvēka mēnesis - II izvilkums, Mītiskā cilvēka mēneša lekcija un piemēram, Mītiskā cilvēka mēneša pārskats / kopsavilkums). Tā vietā, lai atkārtotu pārskatu par grāmatas saturu kopumā, es šajā ziņojumā koncentrējos uz dažiem galvenajiem punktiem un ņemot vērā dažas mūsdienu programmatūras labākās prakses un ideoloģijas.

19. Nodaļa ( Mītiskais cilvēka mēnesis: Patiesība vai maldība? ") Jubilejas izdevumā īpaši pievērsīsies lasītājam, kurš ir nepacietīgs vai kuram trūkst laika, lai izlasītu visu grāmatu, bet vēlas iegūt vispārēju priekšstatu par Brūksa apgalvojumiem. Tā kā Brūkss izmanto šo nodaļu "1975. gada grāmatas būtība" "izklāsta formā", Bruksa apgalvojumi ("fakti un īkšķa veida vispārinājumi no pieredzes") no viņa oriģinālās grāmatas ir izklāstīti "stingrā formā" (aptuveni 20 lappuses). šīs nodaļas klātbūtne "Jubilejas izdevumā" ir vēl viens iemesls, kāpēc es šeit nedalīju grāmatu pa sadaļām. Šajā nodaļā ir vairāk nekā vienkārši apkopoti sākotnējās grāmatas apgalvojumi; tajā ir iekļauti arī daži Brooks 1995. gada komentāri. pamatojoties uz vēl 20 gadu novērojumiem un pārredzamības priekšrocībām.

Savā ierakstā The Mythical Man Month: Book Review Marks Needhems pabeidz šīs grāmatas recenziju ar paziņojumu: "Man ļoti patika lasīt šo grāmatu un redzēt, kā daudzas idejas modernākās metodikās bija zināmas jau 1980. gados un būtībā nav jaunas idejas. " Es no visas sirds piekrītu šim apgalvojumam, lai gan patiesība, iespējams, ir vēl satriecošāka: tie bija novērojumi grāmatā publicēts 1975 pamatojoties uz Brūksa pieredzi darbā ar OS / 360 1960. gada viduss un par turpmākajām sarunām 1960. gadu beigass. Citiem vārdiem sakot, dažas lietas, kuras, mūsuprāt, mūsdienās var uzskatīt par “jaunām” vai “modernām”, ir zināmas jau 45 gadus vai ilgāk! Kā blakus piezīmi, tas man atgādina Alana M. Deivisa prezentāciju Denver Java lietotāju grupai ("Kas jauns par programmatūras izstrādes jaunajām metodēm?") 2006. gada beigās, kurā viņš parādīja, cik daudz "jauno" metodiku un mūsdienu taktikai ir ļoti līdzīgi priekšteči iepriekšējos gados un kā mēs, šķiet, pārvietojamies starp viņiem gadu desmitiem.

Turpmāk Brūkss izteicis īpašu interesi, ja domājat, ka šī grāmata tika publicēta 1975. gadā, balstoties uz pieredzi 1960. gadu vidū vai beigās (šie citāti ir no 19. nodaļas kopsavilkuma, bet pamatā ir 1975. gada izdevuma teksts):

  • "Ļoti labi profesionāli programmētāji ir desmit reizes tikpat produktīvi kā nabadzīgie ... "[meistarība]
  • "" Vislabāk ir maza asa komanda - pēc iespējas mazāk prātu. "[Veikls]
  • "Defekta novēršanai ir būtiska (no 20 līdz 50 procentiem) iespēja ieviest citu. Pēc katra labojuma ir jāpalaiž visa testa gadījumu banka, kas iepriekš bijusi pret sistēmu, lai pārliecinātos, ka tā nav bojāta neskaidrā veidā." [regresijas pārbaude]
  • "Ir vērts izveidot daudz atkļūdošanas sastatņu un testa kodu, varbūt pat par 50 procentiem vairāk nekā atkļūdotais produkts." [vienības pārbaude]
  • "Lai saglabātu dokumentācijas uzturēšanu, ir ļoti svarīgi, lai tā tiktu iekļauta avota programmā, nevis tiktu saglabāta kā atsevišķs dokuments ... pat augsta līmeņa valodas sintakse nemaz nenodod mērķi." [DRY princips]

The Mythical Man-Month ir daudz vairāk novērojumu, kas pierāda, ka Brūkss un citi tā laika izstrādātāji ir sapratuši daudz tos pašus programmatūras izstrādes pamatus, kurus mēs šodien saprotam (un dažreiz atkal "atklājam"). Daudzi no tiem ir vairāk pazīstami, un tos izsauc citās atsauksmēs, tāpēc es tos šeit neuzskaita, izņemot šos obligāto sarakstu citātus:

  • "Kalendāra laika trūkuma dēļ ir izgāzies vairāk programmatūras projektu nekā visu citu iemeslu dēļ kopā."
  • Brūkas likums: "Darbaspēka pievienošana novēlotam programmatūras projektam to padara vēlāk."
  • "Tādējādi cilvēka mēnesis kā darba lieluma mērvienība ir bīstams un maldinošs mīts."

Viena no sadaļām, kuru es uzskatīju par īpaši savlaicīgu (īpaši attiecībā uz 1975. gada grāmatu 2011. gadā), bija Brūka izklāsts par to, kā programmatūras arhitekts var ietekmēt ieviešanu. Tas var būt īpaši jutīgi, ja attīstītājs neīsteno arhitekta redzējumu tā, kā arhitekts vēlējās. Brūksa padomi šķiet ļoti praktiski. Viņš norāda, ka arhitektam jāsamierinās ar faktu, ka personai, kas ievieš kodeksu, ir "radoša atbildība" par šo ieviešanu. Viņš arī iesaka, ka arhitektam vienmēr vajadzētu būt idejai par jebkura viņa vai viņas projekta īstenošanu, bet tajā pašā laikā viņam ir jābūt gatavam pieņemt tikpat labu alternatīvu pieeju, ko piedāvā persona, kas ievieš kodu. Brooks arī iesaka arhitektam visus priekšlikumus attiecībā uz ieviešanu izteikt "klusi un privāti", būt "gatavs atteikties no kredīta" un būt gatavs uzklausīt īstenotāja "ieteikumus par arhitektūras uzlabojumiem". Tas man šķiet pamatots padoms, kas balstīts uz manu pieredzi abās šo attiecību pusēs.

2005. gada rakstā, kuru bieži citē un kuram seko reti, Brūkss saka:

Grāmata patiešām ir vairāk par vadību, nevis par tehnoloģiju. Tehnoloģija ir ārkārtīgi mainījusies, tāpēc dažas no vecajām nodaļām pilnībā nav sinhronizētas. No otras puses, cilvēki nav daudz mainījušies. Tāpēc Homērs, Šekspīrs un Bībele joprojām ir aktuāli, jo viņi visi nodarbojas ar cilvēka dabu. Es domāju, ka tā ir daļa no šīs grāmatas izskaidrojuma: Problēmas ar cilvēku vadīšanu komandās nav mainījušās, lai gan vidē, kurā cilvēki izstrādā dizainu, un rīkiem, kurus viņi izmanto, ir. Daži cilvēki grāmatu ir saukuši par “programmatūras inženierijas Bībeli”. Es tam piekristu vienā ziņā: tas ir, visi to citē, daži cilvēki to lasa un daži cilvēki iet tam garām.

Šajā citātā ietvertie jēdzieni var būt vissvarīgākais, ko nodot, pārskatot Mītiskais cilvēka mēnesis. Grāmatas pievilcība ir tās atspoguļošana un koncentrēšanās uz cilvēku pārvaldību. Tas gadu desmitiem ir palicis mūžīgs un nemainīgs. Tehnoloģijas noteikti ir būtiski mainījušās, un tas var būt vislielākais negatīvs šajā grāmatā. Brūksa piemēri, kas balstīti uz konkrētiem produktiem, rīkiem un valodām 1975. gadā, noteikti bija ilustratīvāki nekā mūsdienās tipiskajam lasītājam. Piemēram, viņa 1975. gada grāmata PL / I sauc par "vienīgo saprātīgo kandidātu sistēmas programmēšanai šodien". Dažreiz daži lasījumi var būt nedaudz sarežģītāki, jo trūkst tiešas pieredzes ar produktiem, par kuriem Brooks piemin. Tomēr vairumā gadījumu tas galu galā nav daudz kavēklis, jo grāmatas uzmanības centrā ir cilvēciskais elements, un tas lielākoties nemainās arī tagad. Jubilejas izdevuma 19. nodaļā Brūkss atspoguļo savas grāmatas nepārtraukto popularitāti un paziņo: "tiktāl, ciktāl MM-M ir par cilvēkiem un komandām, novecošanai vajadzētu būt lēnai. "

The Mītiskais cilvēka mēnesis patiesībā ir par ļoti lieliem uzņēmuma programmatūras izstrādes projektiem. Tas ir svarīgi paturēt prātā, lasot lietas, kas kādam, kas strādā pie neliela projekta, var šķist acīmredzamas. Iepriekšējā citāta pēdējā daļa ir slavena: "Daži cilvēki grāmatu ir saukuši par" programmatūras inženierijas Bībeli ". Es tam piekristu vienā ziņā: tas ir, visi to citē, daži cilvēki to lasa un daži cilvēki iet tam garām. " Brūksa grāmata ir piepildīta ar Bībeles atsaucēm, un viņš acīmredzami ir iepazinies ar Svēto Bībeli. Diemžēl Bruksa citāts "visi to citē, daži cilvēki to lasa un daži cilvēki iet garām" šodien ir pārāk taisnība. Mēs to turpināsim lasīt, taču būtu patīkami darīt vairāk, lai mainītu lietas liela mēroga programmatūras izstrādes projektos.

Daži cilvēki to jūt Mītiskais cilvēka mēnesis ir defeatists un pat nomācošs. Man nav tādas pašas sajūtas, to lasot. Drīzāk es uzskatu, ka tas mums atgādina, ka noteikta uzvedība ir kaitīga un disfunkcionāla. Tas arī atgādina mums, ka mums nevajadzētu gaidīt "nākamo lielo lietu", bet tā vietā jāturpina pilnveidot savu amatniecību pēc iespējas labāk. Tiek sniegti daudzi praktiski padomi un ieteikumi. Brūkam acīmredzami patīk atrasties programmatūras izstrādes jomā, un tas atkal un atkal tiek parādīts viņa grāmatā. Brooks noslēdz grāmatas "Epilogs: piecdesmit gadi brīnuma, uztraukuma un prieka", runājot par to, kā viņš agrāk varēja "lasīt visus žurnālus un konferenču materiālus", bet galu galā nācās atteikties no īpašām interesēm pa vienam kā zināšanas eksplodēja. Viņš secina: "Pārāk daudz interešu, pārāk daudz aizraujošu iespēju mācīties, pētīt un domāt. Cik brīnišķīga grūtība! Galu ne tikai neredz, temps arī nemazinās. Mums ir daudz nākotnes prieku." Es noteikti piekrītu.

Sākotnējā izlikšana pieejama vietnē //marxsoftware.blogspot.com/ (iedvesmojoties no faktiskajiem notikumiem)

Šo stāstu “Book Review: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition” sākotnēji publicēja JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found