Рецензия на книгата: Митичният човешки месец: Есета по софтуерно инженерство, юбилейно издание

The Mythical Man-Month (MM-M) на Фредерик П. Брукс, младши е една от най-известните книги в цялата литература за разработка на софтуер и е може би НАЙ-известната книга за управление на разработката на софтуер. Вече има безброй рецензии за този клас, но аз го преглеждам отново в тази публикация за онези разработчици на софтуер, които не са го чели и искат малък преглед на това, което трябва да му хареса. В края на краищата това е заглавието номер 1 на PC World в списъка с десетте най-добри IT книги Никога да не ви призная, че не сте чели. Пълното заглавие на изданието, което преглеждам в тази публикация, е The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition.

„Юбилейно издание“ на The Mythical Man-Month (публикувано през 1995 г.) добавя значително съдържание над и извън това, което е публикувано в оригиналното издание през 1975 г. „Юбилейното издание“ съдържа оригиналната книга в оригиналната си форма (макар и с включването на корекциите, добавени в препечатката от 1982 г.) и добавя четири нови глави. Първите петнадесет глави в юбилейното издание са главите от оригиналната книга. Добавените глави включват отделен, но също толкова известен IFIPS (1986) / IEEE Computer Magazine (1987) хартия No Silver Bullet: Essence and Accidents of Software Engineering и последващо действие, наречено No Silver Bullet ReFired. Глави 18 и 19 от изданието Anniversary се фокусират върху самооценката на Брукс от 1995 г. за написаното от него през 1975 г.Брукс посочва какво е сбъркал и какво е сгрешил (има много повече случаи на последния, отколкото на първия).

Има многобройни рецензии на The Mythical Man-Month, които включват изчерпателно отразяване на темите и цитати от тази книга (статия в Уикипедия, Обобщение на The Mythical Man-Month на Bernard I. Ng, Някои прозрения от The Mythical Man Month, започвайки от глава 11, The Mythical Man-Month - Extracts I, The Mythical Man-Month - Extracts II, The Mythical Man-Month Lection и Преглед / Обобщение на The Mythical Man-Month, например). Вместо да повтарям общ преглед на съдържанието на книгата като цяло, аз се съсредоточавам в тази публикация върху няколко ключови момента и в светлината на някои най-добри практики и идеологии на съвременния софтуер.

Глава 19 („Предложения за митичния човек-месец: Вярно или невярно? ") От" Юбилейно издание "ще се хареса особено на читателя, който е нетърпелив или няма време да прочете цялата книга, но иска да получи цялостен поглед върху твърденията на Брукс. Тъй като Брукс използва тази глава, за да представи „същността на книгата от 1975 г.“ в „контурна форма“, „Твърденията на Брукс („ факти и обобщения от правилата на палеца от опита “) от оригиналната му книга са представени в„ ясна форма “(приблизително 20 страници). присъствието на тази глава в „Юбилейно издание" е друга причина, поради която не разбивам книгата по глави тук. Тази глава не само обобщава твърденията от оригиналната книга; тя включва и някои от Бруксs Коментари от 1995 г., основаващи се на още 20 години наблюдение и ползата от погледа назад.

В публикацията си The Mythical Man Month: Book Review, Марк Нийдъм завършва рецензията си за тази книга с изказването: „Наистина ми беше приятно да прочета тази книга и да видя как много от идеите в по-съвременните методологии вече бяха известни през 80-те години и по същество не са нови идеи. " С цялото си сърце съм съгласен с това твърдение, въпреки че истината за него е може би дори по-зашеметяваща: това бяха наблюдения в книга, публикувана през 1975 г., базирана на опита на Брукс, работещ върху разработката на OS / 360 в средата на 60- те години и върху последващи разговори в от края на 1960с. С други думи, някои от нещата, които бихме могли да си помислим за „нови“ или „модерни“ днес, съществуват и са известни от 45 години или повече! Като странична бележка това ми напомня на презентация на Алън М. Дейвис пред групата потребители на Денвър Java („Какво е новото за новите методи за разработване на софтуер?“) В края на 2006 г., в която той демонстрира колко от „новите“ методологии и днешните тактики имат много сходни предшественици в миналите години и как изглежда, че се движим между тях в продължение на десетилетия.

Следните моменти, направени от Брукс, са особено интересни, когато човек държи в задната част на мисълта си, че тази книга е публикувана през 1975 г. въз основа на опит в средата до края на 60-те години (тези цитати са от обобщение в глава 19, но са базирани на текст в изданието от 1975 г.):

  • „Много добрите професионални програмисти са десет пъти по-продуктивни от бедните ...“ [майсторство]
  • "" Най-добър е малък остър екип - възможно най-малко умове. "[Пъргав]
  • „Поправянето на дефект има значителен (20 до 50 процента) шанс да се въведе друг. След всяко поправяне трябва да се изпълни цялата банка от тестови случаи, които преди са били изпълнявани срещу система, за да се гарантира, че тя не е била повредена по неясен начин.“ [регресионно тестване]
  • „Струва си да се изгради много скеле за отстраняване на грешки и тестов код, може би дори с 50 процента повече от продукта, който се отстранява.“ [единично тестване]
  • „За да се поддържа документацията поддържана, е от решаващо значение тя да бъде включена в програмата източник, вместо да се съхранява като отделен документ ... дори синтаксисът на езика на високо ниво изобщо не предава целта.“ [СУХ принцип]

В The Mythical Man-Month има много повече наблюдения, които показват, че Брукс и други разработчици от онова време са разбирали много от същите основи на разработването на софтуер, които ние разбираме (и понякога „откриваме“ отново) днес. Много от тях са по-известни и са извикани в други рецензии и затова не ги изброявам тук, с изключение на тези задължителни цитати:

  • „Повече софтуерни проекти се объркаха поради липса на календарно време, отколкото поради всички други причини, взети заедно.“
  • Законът на Брук: "Добавянето на работна ръка към закъснял софтуерен проект го прави по-късно."
  • „Следователно човекомесецът като единица за измерване размера на работата е опасен и измамен мит.“

Един от разделите, които намерих за особено навременни (особено за книга от 1975 г. през 2011 г.) беше отразяването на Брукс за това как софтуерен архитект може да повлияе на изпълнението. Това може да бъде особено чувствително, когато визията на архитекта не е изпълнена от разработчика по начина, по който архитектът е желал. Съветите на Брукс изглеждат много практични. Той заявява, че архитектът трябва да се примири с факта, че лицето, прилагащо кодекса, има "творческа отговорност" за това изпълнение. Освен това той съветва, че архитектът винаги трябва да има идея за изпълнение на който и да е от неговите или нейните проекти, но в същото време трябва да бъде готов да приеме също толкова добър алтернативен подход, предложен от лицето, прилагащо кода. Освен това Брукс препоръчва на архитекта да направи всички предложения относно изпълнението "тихо и насаме, „бъдете„ готови да се откажете от кредита “и бъдете готови да изслушате„ предложенията на изпълнителя за подобрения в архитектурата. “Това ми се струва добър съвет, базиран на моя опит от двете страни на тази връзка.

В статията от 2005 г., цитирана често, последвана рядко, Брукс заявява:

Книгата наистина е по-скоро за управление, отколкото за технологии. Технологията се е променила неимоверно, така че някои от старите глави са напълно несинхронизирани. От друга страна, хората не са се променили много. Ето защо Омир и Шекспир и Библията все още са актуални, защото всички те се занимават с човешката природа. Мисля, че това е част от обяснението на тази книга: Проблемите с управлението на хората в екипи не са се променили, въпреки че средата, в която хората проектират, и инструментите, които използват. Някои хора наричат ​​книгата „библията на софтуерното инженерство“. Бих се съгласил с това в едно отношение: тоест, всички го цитират, някои хора го четат и няколко души минават по него.

Понятията, съдържащи се в този цитат, може да са най-важното нещо, което да предадете в рецензия на „Митичният човек-месец“. Привлекателността на книгата е нейното отразяване и фокус върху управлението на хората. Това остава вечно и непроменено през десетилетията. Технологиите определено са се променили значително и това може да е най-големият негатив в тази книга. Примерите на Брукс, базирани на конкретни продукти, инструменти и езици през 1975 г., със сигурност са били по-илюстративни тогава, отколкото днес за типичния читател. Например, неговата книга от 1975 г. нарича PL / I „единственият разумен кандидат за системно програмиране днес“. Понякога някои от четенията могат да бъдат малко по-предизвикателни с липсата на пряк опит с продуктите, за които Брукс споменава. В повечето случаи обаче в крайна сметка това не е голяма пречка, тъй като човешкият елемент е фокусът на книгата и това е най-вече непроменено дори сега. В глава 19 от юбилейното издание,Брукс разсъждава върху продължаващата популярност на книгата си и заявява: „до такава степен, чеMM-M е за хора и екипи, остаряването трябва да е бавно. "

The Mythical Man-Month наистина е свързана с много големи проекти за разработване на корпоративен софтуер. Това е важно да се има предвид, когато четете неща, които може да изглеждат очевидни за някой, който работи по малък проект. Последната част от цитата по-горе е известна: „Някои хора нарекоха книгата„ библията на софтуерното инженерство “. Бих се съгласил с това в едно отношение: тоест, всички го цитират, някои хора го четат и няколко души го следват. " Книгата на Брукс е пълна с библейски препратки и той очевидно е запознат със Свещената Библия. За съжаление, цитатът на Брукс „всички го цитират, някои хора го четат, а няколко хора го следват“ е твърде верен днес. Ще продължим да го четем, но би било хубаво да направим повече, за да променим нещата в мащабните проекти за разработка на софтуер.

Някои хора смятат, че The Mythical Man-Monthе поразителен и дори депресиращ. Не получавам същото чувство от четенето му. По-скоро чувствам, че това ни напомня, че определени поведения са вредни и нефункционални. Също така ни напомня, че не трябва да чакаме „следващото голямо нещо“, а вместо това трябва да продължим да подобряваме занаята си, доколкото можем. Осигурени са много практически съвети и предложения. Брукс очевидно обича да бъде в областта на разработката на софтуер и това е показано отново и отново в неговата книга. Брукс завършва книгата „Епилогът: петдесет години на чудо, вълнение и радост“, разказвайки за това как е бил в състояние да „чете всички списания и сборници на конференции“, но в крайна сметка трябваше да се откаже от конкретни интереси един по един като знанието избухна. Той заключава: „Твърде много интереси, твърде много вълнуващи възможности за учене,изследвания и мисъл. Какво чудно положение! Краят не само не се вижда, темпото не отпуска. Имаме много бъдещи радости. "Определено съм съгласен.

Оригинално публикуване на разположение на //marxsoftware.blogspot.com/ (вдъхновено от действителни събития)

Тази история „Преглед на книгата: Митичният човешки месец: Есета за софтуерно инженерство, юбилейно издание“ първоначално е публикувана от JavaWorld.