Міфічний людино-місяць: двадцять п'ять років по тому

"Міфічний людино-місяць": двадцять п'ять років по тому

Брукс Фредерік. Міфічний людино-місяць, або Як створюються програмні комплекси. Пер. з англ. СПб., Символ-Плюс, 1999. - 304 с.

Мабуть, одна з проблем розвитку світової комп'ютерної індустрії полягає в "розпаді зв'язку часів", коли нове покоління фахівців не може в повній мірі використовувати раніше накопичений досвід. Пояснюється це небаченими в історії людства темпами зміни технологій і лавиноподібним зростанням чисельності персоналу, зайнятого в галузі. У нашій країні цей процес носить ще більш яскраво виражений характер через різкі перетворень на рубежі 90-х років, коли в силу обставин на зміну фахівцям радянських часів практично раптово прийшло нове покоління комп'ютерних професіоналів.

У нашій країні цей процес носить ще більш яскраво виражений характер через різкі перетворень на рубежі 90-х років, коли в силу обставин на зміну фахівцям радянських часів практично раптово прийшло нове покоління комп'ютерних професіоналів

Мабуть, саме тому в середовищі російських розробників ПЗ побутує ілюзія, ніби сучасна комп'ютерна історія почалася з десяток років тому (в тому плані, що накопичений тільки за цей період досвід має значення для сьогоднішньої практичної роботи.) Найбільш негативним чином таке уявлення проявляється, наприклад, коли приходить розуміння, що реалізація складних проектів не вирішується чисто технологічними прийомами, а вимагає відповідного теоретико-методологічного осмислення.

Ось тут-то і корисно згадати, що такі дослідження ведуться вже давно і їх фундамент був закладений ще років тридцять тому, коли світова комп'ютерна індустрія вийшла на рівень справді великих робіт *. Найцікавіше, що в тих "старовинних" публікаціях сьогодні можна знайти не тільки важливі методологічні положення, але також і актуальні з сьогоднішньої точки зору чисто практичні рекомендації, "як створювати програмні комплекси правильним чином".

_____

* Поряд з книгою Ф. Брукса хотілося б обов'язково згадати про інших класичних виданнях 70-х років, в яких обговорювалася методологія розробки програм. Зокрема, це "Структурний програмування" (автори В. Дав, Е. Дейкстри, К. Хоор) і "Структурний проектування і конструювання програм" (Е. Йодан), які також були опубліковані російською мовою.

У зв'язку з цим поява другого російського видання знаменитої книги "Міфічний людино-місяць" Фредерика Брукса представляється дуже своєчасним і безумовно корисним.

Трохи історії: як з'явилася книга

Зараз вже якось призабули, що одним з найбільших програмних проектів за всю комп'ютерну історію і до сьогоднішніх днів є створення операційної системи IBM OS / 360, перший варіант якої розроблявся в 1963 - 1966 р. У ньому брали участь сотні програмістів, а загальна трудомісткість становила 5000 людино-років. Серед керівників цього проекту був Фредерік Брукс: в 1985 році разом з Бобом Евансом і Еріком Блохом він був нагороджений Національною медаллю США в галузі технології за роботу над OS / 360.

В середині 60-х Ф. Брукс зайнявся викладацькою і консультаційну діяльність і в 1975 р опублікував книгу під назвою "Міфічний людино-місяць", визнану своєрідною біблією для розробників ПЗ усього світу. Практично одночасно в нашій країні з'явився російський переклад книги, давно вже стала бібліографічною рідкістю. Сьогоднішня книга, випущена видавництвом "Символ-Плюс", є оригінальним перекладом ювілейного, двадцятого (!), Видання, яке вийшло в 1995 р, - до того моменту загальний тираж американського варіанту перевищив 250 тис. Примірників.

Спогади минулих днів

Перший російський переклад книги Ф. Брукса (під редакцією і з передмовою самого А. П. Єршова!) Був офіційно опублікований в 1979 р видавництвом "Світ". Однак насправді він з'явився трьома роками раніше у вигляді ротапринтні копії ДСП (для службового користування), яка досить швидко поширилася серед програмістів. Мабуть, в той момент були якісь проблеми з придбанням авторських прав на офіційне видання книги, проте ті, хто ще пам'ятає "старі" часи, можуть підтвердити, що публікація ротапринта тоді була пов'язана з ще бо / більшим проблемами.

Зараз важко передати, яке сильне враження справила особисто на мене книга Брукса. По-перше, в ту пору просто не існувало жодної методології розробки програмних систем (по крайней мере, опублікованих). По-друге, ніхто з нас навіть не міг уявити, що професійне обговорення серйозних питань може бути таким же захоплюючим, як розповідь про пригоди Монте-Крісто.

У вузах нас вчили, як вирішувати математичні завдання, складати алгоритми і писати програми. Але як робити закінчені програмні продукти, планувати роботи, керувати групами розробників? Шукати відповіді на ці запитання доводилося тоді самостійно, в основному методом проб і помилок.

В останньому виданні книги Брукс призводить резюме одного з читачів: "Тут немає нічого, чого я не знав би раніше!". Дійсно, до деяких з його висновків ми вже самі прийшли в ході практичної роботи *. Але одна справа "твоя особиста думка" (піддавалося численних сумнівів) і зовсім інша - підтвердження своїх ідей, отримане в чітко сформульованому і аргументовано вигляді в працях визнаного авторитету. Не кажучи вже про те, що багато положень цих ідей були досконалими одкровеннями для нас.

_____

* Чи можу повністю під цим підписатися. Прочитавши в 1976 р ксерокопію цієї книги, я знайшов назви тим поняттям, якими користувався в роботі. Едуард Пройдаков

Есе на тему програмної інженерії

Фактично книга Ф. Брукса являє собою збірник нарисів, в яких послідовно обговорюються вузлові проблеми розробки великих програмних проектів (а їх актуальність протягом останніх 30 років тільки зростає): підвищення продуктивності праці програмістів, організація колективної роботи, планування та виконання графіка реалізації.

При цьому розглядаються найрізноманітніші аспекти даної теми: естетичні засади програмування, організація роботи на різних рівнях, сутність керівництва, розподіл функцій в групі розробників, методи налагодження, способи документування і т. П.

Одним з відправних тез книги є твердження, що реалізація великого проекту Програми радикальним чином відрізняється, з одного боку, від створення відносно невеликих програмних систем, а з іншого - від виконання великих "традиційних" робіт в матеріальній сфері. Але найголовніше, автор не обмежується простою констатацією цього факту, а аргументовано доводить його і дає практичні рекомендації, що допомагають ці особливості врахувати *.

_____

* Чому "людино-місяць" є міфічним? Докладний відповідь на це питання ви знайдете в книзі. Коротенько ж він формулюється у вигляді закону Брукса: "Якщо програмістський проект не вкладається в терміни, то додавання робочої сили тільки затримає його закінчення". Трудомісткість проектів, як відомо, оцінюється в "людино-місяцях". "Міфічних".

Слід нагадати, що в 70-х роках обговорення теми розробки ПО йшло в основному в руслі дискусії: "Програмування - це наука або мистецтво?". Брукс одним з перших дав правильну відповідь на це питання: це досить специфічна, високоінтелектуальна, але все ж - технологія.

Сьогодні така теза здається очевидним, але насправді до його практичного втілення ще дуже далеко. Наприклад, якщо подивитися на підготовку сучасних ІТ-фахівців, то легко можна побачити, що зараз (як і 25 років тому) наша вітчизняна вища школа націлена на випуск вчених-дослідників, але ніяк не технологів. А в результаті цього відмінна індивідуальна підготовка (як багато хто вважає) чомусь не хоче виливатися в успішну реалізацію проектів на практиці.

Особливий інтерес до ювілейного видання книги пояснюється тим, що вона доповнена ще кількома главами. Зокрема, в неї включений гострий полемічний нарис "Срібної кулі немає" (1986 рік), детально обгрунтовує тезу, що "протягом десятиліття жодна розробка в області техніки програмного забезпечення не дозволить підвищити продуктивність праці в програмуванні на порядок". Звичайно, тут є про що посперечатися, але в будь-якому випадку корисно задуматися над питанням, а в чому ж вимірюється ця сама продуктивність праці програміста. Адже сьогодні в цілому вже зрозуміло, що кінцевий результат досить слабо корелює з числом написаних рядків і вже тим більше з об'ємом необхідної оперативної пам'яті.

І звичайно, читачам буде дуже цікаво вивчити заключні глави, написані в 1995 р, в яких вони зможуть познайомитися з поглядами Брукса на всі ключові тези оригінального видання через ціле покоління розробників і кілька поколінь комп'ютерних технологій.

Читати чи не читати

На закінчення хотілося б відзначити один досить тривожний момент. Книги таких авторитетів, як Брукс, Дейкстрой, Йодан і ін., Видавалися в 70-х роках тиражами в 20 - 30 тис. Примірників і на прилавках не залежується. Тираж ж нинішнього видання "Міфічного людино-місяці" дорівнює всього двом тисячам. І це практично при повній відсутності публікацій подібного концептуального рівня (як в друкованому, так і в електронному вигляді).

Найдивніше, що падіння попиту на технічну літературу багато сучасних ІТ-фахівці пояснюють не наявністю альтернативних джерел інформації, а браком часу. Все це нагадує відомий анекдот: "Що там думати, товариш майор? Трясти треба! ".

Так може бути, перш ніж приступати до нового програмного проекту, все-таки має сенс почитати Фредеріка Брукса?

Версія для друку

Але як робити закінчені програмні продукти, планувати роботи, керувати групами розробників?
Чому "людино-місяць" є міфічним?
Слід нагадати, що в 70-х роках обговорення теми розробки ПО йшло в основному в руслі дискусії: "Програмування - це наука або мистецтво?
Все це нагадує відомий анекдот: "Що там думати, товариш майор?
Так може бути, перш ніж приступати до нового програмного проекту, все-таки має сенс почитати Фредеріка Брукса?
Новости
Слова жизни
Фотогалерея