Серебряной пули нет

Серебряной пули нет
Фредерик Брукс, автор статьи «Серебряной пули нет»

«Серебряной пули нет» (англ. «No Silver Bullet») — широко обсуждавшаяся статья Фредерика Брукса об инженерии программного обеспечения, написанная им в 1986 году.[1] Брукс утверждает, что «ни в одной технологии или в управленческой технике не существует универсального метода, увеличивающего на порядок производительность, надёжность и простоту». Он также утверждает, что «мы не можем ожидать увеличения прибыли в два раза каждые два года» при разработке программного обеспечения, как это происходит с разработкой аппаратного обеспечения.

Брукс подчёркивает разницу между возникающими ненужными сложностями (англ. accidental complexity) и имманентными сложностями (англ. essential complexity) и заявляет, что большинство из того, что разработчики программного обеспечения совершают в настоящее время, — относится к последнему, поэтому исключение всех т. н. ненужных сложностей не приведёт к улучшению ситуации. Брукс делает упор на основные части процесса разработки программного обеспечения. Хотя он настаивает на том, что «серебряной пули» не существует, он считает, что ряд инноваций, направленных на исправление имманентных сложностей, может привести к значительным улучшениям (возможно, более чем в десять раз за десять лет).

Статья, в которой Брукс приводит свои собственные размышления, может быть найдена в юбилейном издании книги «Мифический человеко-месяц»[2].


Содержание

Аргументация

Очень важно видеть разницу между ненужными и имманентными сложностями. Ненужные сложности относятся к проблемам, которые мы сами создаём и которые могут быть устранены; это, например, детали написания и оптимизации программ на языке ассемблера или задержки из-за пакетной обработки. Имманентные сложности вызваны проблемой, которую предстоит решить; если пользователю нужна программа с 30 функциями, то эти 30 функций чрезвычайно важны, и программа должна качественно выполнять все эти 30 функций.

Брукс утверждает, что мы избавились от ненужной сложности, и в настоящее время программисты проводят большую часть времени разрешая имманентные сложности. Единственным технологическим улучшением, которое привело к значительным подвижкам в области, касающейся ненужной сложности, было изобретение высокоуровневых языков программирования, например, популярного некогда Фортрана. Продумываются улучшения и для таких языков, как Си, C++, C# и Java, но уже не столь значительные.

Брукс делает упор на «разрастающееся» через поэтапную разработку программное обеспечение (англ. incremental development). Он считает, что разработка и реализация основной программы и подпрограмм должна производиться в самом начале работы над проектом, а доработка составных частей — уже позже. Он считает, что это стимулирует разработчиков и поддерживает работу на каждом из её этапов. (Эта идея может рассматриваться как предвестник гибкой методологии разработки программного обеспечения.)

Брукс отталкивается от утверждения, что существует разница между «посредственными» проектировщиками и «хорошими» проектировщиками. Он постулирует, что программирование — это творческий процесс, и одни проектировщики по своей природе лучше, чем другие. Он полагает, что разница между посредственным проектировщиком и хорошим проектировщиком — весьма существенна. Он также делает упор на стимуляцию хороших проектировщиков (так же, как и хороших менеджеров) не только путём материального поощрения, но и путём предоставления льгот, а также большого кабинета, персонала, оплаты путевых расходов и т. д.

См. также


Ссылки

Внешние ссылки

Wikiquote-logo.svg
В Викицитатнике есть страница по теме
Fred Brooks

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Серебряной пули нет" в других словарях:

  • Кризис программного обеспечения — «Кризис программного обеспечения»  термин, некогда использовавшийся в информатике для описания последствий быстрого роста вычислительной мощности компьютеров и сложности проблем, которые могут быть решены с их помощью. В сущности, это… …   Википедия

  • Мифический человеко-месяц — The Mythical Man Month Автор: Фредерик Брукс Язык оригинала: английский …   Википедия

  • Брукс, Фредерик — Фредерик Филлипс Брукс  младший Frederick Phillips Brooks, Jr …   Википедия

  • Мифический Человеко-месяц — The Mythical Man Month Автор: Фредерик Брукс Язык оригинала: английский Оригинал издан: 1975 Издательство: Addison–Wesley …   Википедия

  • Объектно-ориентированное программирование — Эта статья во многом или полностью опирается на неавторитетные источники. Информация из таких источников не соответствует требованию проверяемости представленной информации, и такие ссылки не показывают значимость темы статьи. Статью можно… …   Википедия

  • ООАП — Объектно ориентированное программирование (ООП) парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием прототипов). Класс это тип, описывающий… …   Википедия

  • Объектно-ориентированный подход — Объектно ориентированное программирование (ООП) парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием прототипов). Класс это тип, описывающий… …   Википедия

  • Рутковская, Йоанна — В Википедии есть статьи о других людях с такой фамилией, см. Рутковская. Йоанна Рутковская Joanna Rutkowska …   Википедия

  • Парадигма — (Paradigm) Определение парадигмы, история возникновения парадигмы Информация об определении парадигмы, история возникновения парадигмы Содержание Содержание История возникновения Частные случаи (лингвистика) Управленческая парадигма Парадигма… …   Энциклопедия инвестора

  • Райс, Кондолизза — Бывший государственный секретарь Соединенных Штатов Америки Американский государственный деятель, занимала пост государственного секретаря США с января 2005 по январь 2009 года, советник президента США по вопросам национальной безопасности (2001… …   Энциклопедия ньюсмейкеров


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»