Rambler's Top100 Service калинин.ru / комментарии / книги /  << 05.08.00 >>

Мифический человеко-месяц

    Иллюстрация
    Обложка книги.
    Обложка книги.

В принципе, эта книга для "ветеранов программирования" в комментариях не нуждается --- в свое время ее первое издание было очень популярно. Было это в 1974 году...

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

Это, в общем-то, неправда. В том смысле, что, наверное, если считать слово "программист" как обозначение, к примеру, самой низшей должности в иерархии какой-нибудь фирмы, то, может быть это и верно (т.е. в 30 лет надо быть уже "старшим программистом" ;) ). Но если понимать под "программистом" примерно тоже самое, что и "художник", то неверно в принципе.

Попытаюсь объяснить. Итак, какие новые технологии программирования появились за последние десять лет (точнее, какие технологии стали популярными). Можно вспомнить CORBA, COM, DCOM; но что это, по сравнению с появлением принципов модульности программного обеспечения? Прямо скажем, тот факт, что программу можно разбить на модули, общающиеся между собой посредством заданных интерфейсов, был значительно более революционен, чем конкретная реализация этого свойства. Появление Java? Опять же, если вспомнить, то это никакое не новшество; очень давно была реализация Berkley Pascal, где как раз применялось понятие машинно-независимого байткода, который можно было запускать на машинах с архитектурой отличной от той, на которой была произведена компиляция. И все равно, если считать Java за "новое", то это не идет ни в какое сравнение с появлением языков программирования "высокого уровня". Для этого достаточно вспомнить рост производительности при переходе от программирования в машинных кодах к использованию языков выского уровня и сравнить это с переходом на Java. UML? Тоже нет, потому что UML только лишь стандартизирует подход к проектированию, т.е. формализует то, до чего каждый проектировщик раньше "доходил" самостоятельно. Учитывая то, что проектировщик обычно имеет опыт реального программирования и на собственном примере понимает, почему, что и как надо делать, то UML не особенно большое подспорье по сравнению, например, все с той же модульностью программного обеспечения.

Как следствие, программисту надо очень хорошо знать все те основы, которые были подведены под программирование несколько десятков лет тому назад, а остальное является приложением этих идей. Тот факт, что кто-то этого не понимает, лишь красноречиво говорит о профессиональной компетентности этих людей, причем не в лучшую сторону.

В принципе, второе издание "Мифического человека-месяца" тоже можно привести в качестве примера того, что за последние двадцать-тридцать лет ничего революционного не произошло (в частности, в книге есть статья на эту тему). Потому что ценность "человека-месяца", пожалуй, только возросла вместе с ростом потребности качественного подхода к построению больших программных систем.

Эта книга не о программировании на конкретном языке. В ней очень ясным, живым языком рассказывается о тех выводах, к которым пришел автор в процессе руководства работы над операционной системой OS/360. Некоторые моменты, конечно же, устарели; например, проблема машинного времени уже не стоит в таком остром ракурсе перед программистами (во всяком случае, в большинстве проектов). Тем не менее, общие рекомендации по обеспечению работы большой группы программистов очень сложно переоценить. Например, вы можете сразу же ответить, что лучше: тысяча посредственных программистов, сто хорошиих или десять гениев? Имеется в виду, для реализации очень крупного проекта в разумное время. Я не говорю о том, что в книге есть ответ на этот вопрос ;) в книге есть очень полезные мысли на эту тему, которые пригодятся вам при начале работы и наборе сотрудников

"Мифический человеко-месяц" --- это, судя по тому что это выражение вынесено в название, для Брукса самый важный момент в книге. Брукс пишет о том, что нельзя мерять время выполнения проекта просто линейно считая, что если один человек сделает его за сто лет, то сто человек сделают его за один год. Это очень логично, но я не буду доказывать здесь это утверждение, все равно Брукс это сделал много лучше, чем мог бы написать я.

От первого издания второе отличается тем, что в него добавлена статья "Серебряной пули нет", в которой Брукс двадцать лет назад предупреждал о том, что в течение этих лет в программировании ничего революционного не произойдет и статьей, которая была написана специально для второго издания. Эта статья посвящена актуальным аспектам проектирования и ответу на вопрос о том, почему же "Мифический человеко-месяц" до сих пор остался современным.

Резюме

Пожалуй, одна из самых лучших книг, которую выпустили наши издательства в последние несколько лет. Несомненно, каждый уважающий себя программист должен иметь представление о том, что в ней написано. Мало того, я считаю что это --- достойная книга для книжной полки программиста любого профессионального уровня. Книга читается очень легко; мало того, чтение просто-таки захватывает --- в общем, настоятельно рекомендую.


Версия для печати


  Ссылки по теме:
Э. Дейкстра
   Дисциплина программирования.
Г. Буч
   Объектно-ориентированный анализ и проектирование.
Г. Буч, Д. Рамбо, А. Джекобсон
   UML: руководство пользователя.
  Рядом в разделе:
Алгоритмы: построение и анализ (11.08.00)
   Эту книгу ждали, по-моему, пару лет. При этом ее никто не рекламировал, не предлагал заказать в интернет-магазине до выхода как новое...   >>>>
Основы CORBA (24.07.00)
   Описываемая книга является первой (и, пока что единственной) книгой на русском языке по CORBA. Этот факт придал пущей важности издателям, но,...   >>>>
  Рядом по дате:
Фабрики домашних страниц (06.08.00)
   Я уже не помню, какой из серверов в Рунете стал первым предоставлять свободное место под домашние странички или проекты, возможно, что...   >>>>
Набор простейших документов (04.08.00)
   Сначала поговорим о том, чем является TeX. Сразу же оговорюсь, что произносится это слово не как "текс", а именно как "тех"....   >>>>
  Содержание:
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
   C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Просто так
Студенческое
Туризм
  Байки
Фотографии
Комментарии
   Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Благодарности
Форум
Хронология
 
  В этом разделе:
High Perfomance Computing, second edition. (05.07.01)
   Название книги можно перевести как "Высокопроизводительные вычисления" и эта тематика в русскоязычной литературе не освещена совсем. Традиционно считается, что самой важной...   >>>>
Плагиат (19.06.01)
   В последнее время мне стало казаться, что с моим сайтом что-то не в порядке. Вроде, текст есть, живые люди тоже иногда...   >>>>
TCP/IP Illustrated, volume I. The Protocols (22.04.01)
   И опять, книга, о которой мне хочется рассказать, насколько мне известно, отсутствует в русском переводе. Тем не менее, в разделе сетевого...   >>>>
Decline and Fall of the American Programmer (28.02.01)
   Эдвард Йордон является одним из самых известных специалистов в области создания больших программных систем. Широко известна его нотация, предназначенная для структурного...   >>>>
Unix internals: the new frontiers (03.12.00)
   Хочу сразу же предупредить, что эта книга, насколько мне известно, в переводе на русский язык не существует, поэтому прошу прощения, если...   >>>>
Операционная система Unix (31.10.00)
   Unix получил очень широкое распространение в современном компьютерном мире. При этом, даже если большая часть домашних компьютеров работает под управлением операционной...   >>>>
Язык UML, рукводство пользователя (29.09.00)
   UML (Unified Modeling Language, унифицированный язык моделирования) является еще одной популярной аббревиатурой, которой очень часто пользуются, не понимая того, что за...   >>>>
Содержание раздела полностью...
   Примерно в тоже время
Фабрики домашних страниц (06.08.00)
   Я уже не помню, какой из серверов в Рунете стал первым предоставлять свободное место под домашние странички или проекты, возможно, что...   >>>>
Набор простейших документов (04.08.00)
   Сначала поговорим о том, чем является TeX. Сразу же оговорюсь, что произносится это слово не как "текс", а именно как "тех"....   >>>>
Хронология полностью...
   Содержание
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
  C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Туризм
  Байки
Фотографии
Комментарии
  Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Студенческое
Просто так
Благодарности
Форум
Хронология
© 2000-2008, Andrey L. Kalinin
mailto:andrey@kalinin.ru
Rambler's Top100