Read

Мифический человеко-месяц или как создаются программные системы

Эта книга — юбилейное (дополненное и исправленное) издание своего рода библии для разработчиков программного обеспечения во всем мире, написанное Бруксом еще в 1975 году. Тогда же книга была издана на русском языке и давно уже стала библиографической редкостью. В США полагают, что без прочтения книги Брукса не может состояться ни один крупный руководитель программного проекта.
more
Impression
Add to shelf
Already read
317 printed pages
Научпоп

ImpressionsAll

Aleksandr Shakun
Aleksandr Shakunshared an impressionlast month
👍
🎯Worthwhile

Dmitry Bezuglyy
Dmitry Bezuglyyshared an impression4 months ago
👍
🔮Hidden Depths

QuotesAll

Компонент программного комплекса стоит, по крайней мере, втрое дороже, чем автономная программа с теми же функциями. Стоимость может увеличиться, если в системе много компонентов.
Итак, в основе планирования разработки программ лежит ложное допущение, что все будет хорошо, т.е. каждая задача займет столько времени, сколько «должна» занять.
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
Закон Брукса:
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
Почему заниматься программированием интересно? Какими радостями вознаграждаются те, кто им занимается?
Во-первых, это просто радость, получаемая при создании чего-либо своими руками. Как ребенок радуется, делая куличики из песка, так и взрослый получает удовольствие, создавая какие-либо вещи, особенно если сам их и придумал. Я думаю, что этот восторг — отражение восторга Господа, творящего мир, восторга, проявляющегося в индивидуальности и новизне каждого листочка и каждой снежинки.
Во-вторых, это удовольствие создавать вещи, которые могут быть полезны другим людям. Глубоко в душе мы испытываем потребность в том, чтобы другие использовали результаты нашего труда и считали их полезными. В этом отношении программная система по своей сути — то же, что и изготовленная ребенком подставка для карандашей «папе в подарок».
В-третьих, это очарование создания сложных головоломных объектов, состоящих из взаимодействующих движущихся частей и наблюдения за их работой, круг за кругом демонстрирующей результаты изначально заложенных принципов. Компьютер с работающей на нем программой обладает доведенным до высшего предела очарованием игорного или музыкального автомата.
В-четвертых, это радость, получаемая от неизменного узнавания нового, проистекающего из неповторимой природы задачи. В том или ином отношении задача всегда ставится по-новому, и тот, кто ее решает, получает новые знания — либо практические, либо теоретические, либо те и другие вместе.
Наконец, наслаждение доставляет работа со столь податливым материалом. Программист, подобно поэту, работает почти непосредственно с чистой мыслью. Он строит свои замки в воздухе и из воздуха, творя силой воображения. Трудно найти другой материал, используемый в творчестве, который столь же гибок, прост для шлифовки или переработки и доступен для воплощения грандиозных замыслов.
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
Маленьких задержек не бывает
Кроме того, постановка задач, обеспечение ресурсами и предоставление информации осуществляется другими людьми. Редко удается контролировать условия работы и даже ее цели. На языке администрирования это означает, что полномочия ниже ответственности.
Программному продукту грозит устаревание еще до его завершения.
Вывод прост: если над проектом работают 200 человек, включая менеджеров, являющихся наиболее знающими и опытными программистами, увольте 175 бойцов, и пусть менеджеры снова займутся программированием.
Архитектор всегда должен быть готов показать пример реализации любой описанной им функции, но он не должен пытаться навязывать определенную реализацию.
Крайне упрощая, мы сформулируем закон Брукса:
"Если программистский проект не укладывается в сроки, то добавление рабочей силы только задержит его окончание".
Таким образом, мы развеиваем миф о человеко-месяце. Число месяцев, отводимых на проект, зависит от ограничений на его линейность. Максимальное число людей зависит от числа независимых подзадач. Исходя из г"тпх двух величрга, можно построить график, рассчитанный на меньшее число людей и большее количество месяцев. (Единственная опасность заключается в том, что конечный продукт устареет.) Нельзя, однако, составить работоспособный график, используя больше людей и меньше месяцев. В большинстве программистских проектов дела шли скверно скорее всего из-за нехватки календарного времени, нежели по всем другим причинам, вместе взятым.
Разумно взять метод и испытать его. При неудаче честно признайтесь в этом и попробуйте другой метод. Но главное, делайте что-нибудь.
ФРАНКЛИН Д. РУЗВЕЛЬТ
На практике фактическая (в противоположность формальной) власть приобретается в результате успешного выполнения задач.
Стоимость проекта действительно зависит от числа людей и от числа месяцев, но его успешность - нет.
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
программа превращается в программный продукт. Это программа, которую любой человек может запускать, тестировать, исправлять и развивать. Она может использоваться в различных операционных средах и со многими наборами данных. Чтобы стать общеупотребительным программным продуктом, программа должна быть написана в обобщенном стиле. В частности, диапазон и вид входных данных должны быть настолько обобщенными, насколько это допускается базовым алгоритмом. Затем программу нужно тщательно протестировать, чтобы быть уверенным в ее надежности. Для этого нужно подготовить достаточное количество контрольных примеров для проверки диапазона допустимых значений входных данных и определения его границ, обработать эти примеры и зафиксировать результаты. Наконец, развитие программы в программный продукт требует создания подробной документации, с помощью которой каждый мог бы использовать ее, делать исправления и расширять. Я пользуюсь практическим правилом, согласно которому программный продукт стоит, по меньшей мере, втрое дороже, чем просто отлаженная программа с такой же функциональностью.
Человеку несвойственно совершенство,
Все программисты — оптимисты.
разработка грандиозных идей — это удовольствие, а поиск паршивых маленьких «жучков» — это всего лишь работа.

On the bookshelvesAll

Стратоплан

Школа менеджеров Стратоплан: чтение

Валентина Евтюхина

Полка digital-маркетолога

Antonio

Менеджмент

Tatyana Popova

Управление проектами

Related booksAll

Related booksAll

Дж.Ханк Рейнвотер

Как пасти котов. Наставление для программистов, руководящих другими программистами

Тимоти Листер, Том Демарко

Вальсируя с медведями

Тимоти Листер, Том Демарко

Человеческий фактор: успешные проекты и команды

Дэвид Томас, Эндрю Хант

Программист-прагматик. Путь от подмастерья к мастеру

Хенрик Книберг

Scrum и XP: заметки с передовой

Том Демарко

Deadline. Роман об управлении проектами

Алан Купер

Психбольница в руках пациентов

On the bookshelvesAll

Школа менеджеров Стратоплан: чтение

Полка digital-маркетолога

Менеджмент

Don’t give a book.
Give a library.
fb2epubzip
Drag & drop your files (not more than 5 at once)