Interested Article - Серебряной пули нет
- 2021-11-12
- 1
«Серебряной пули нет» ( англ. «No Silver Bullet» ) — широко обсуждавшаяся статья Фредерика Брукса об инженерии программного обеспечения , написанная им в 1986 году. Брукс утверждает, что «ни в одной технологии или в управленческой технике не существует универсального метода, увеличивающего на порядок производительность, надёжность и простоту» (так называемой «серебряной пули»). Он также утверждает, что «мы не можем ожидать увеличения прибыли в два раза каждые два года» при разработке программного обеспечения, как это происходит с разработкой аппаратного обеспечения.
Брукс подчёркивает разницу между побочными сложностями ( англ. accidental complexity ) и имманентными сложностями ( англ. essential complexity ).
Статья, в которой Брукс приводит свои собственные размышления, может быть найдена в юбилейном издании книги « Мифический человеко-месяц » .
Описание
Очень важно видеть разницу между побочными и имманентными сложностями. Побочные сложности относятся к проблемам, которые могут быть устранены с развитием программных технологий. Имманентные сложности внутренне присущи природе программного обеспечения, из-за чего создание программных систем всегда будет трудным:
Серебряных пуль не только не видно в настоящее время, но в силу самой природы программного обеспечения маловероятно, что они вообще будут найдены — не будет изобретений, способных повлиять на продуктивность создания, надежность и простоту программного обеспечения так, как электроника, транзисторы и интегральные схемы — на аппаратное обеспечение компьютеров.
Брукс утверждает, что наиболее существенные достижения, позволяющие избавится от побочной сложности , уже сделаны. Среди таких достижений он называет высокоуровневые языки программирования , параллельные вычисления и интегрированные среды разработки .
В то же время Брукс полагает, что совокупный эффект множества других полезных улучшений может давать заметный прирост в производительности труда программистов:
Хотя мы не видим ошеломляющих прорывов и действительно считаем их несвойственными природе программирования, происходит много вселяющих надежды нововведений. Дисциплинированные и последовательные усилия, направленные на их развитие, распространение и использование, действительно могут дать рост на порядок величин. Нет царского пути, но всё же путь есть.
Брукс перечисляет самые важные задачи, которые могут дать значительный эффект в борьбе со сложностью разработки:
- использовать массовый рынок, чтобы избежать создания того, что можно купить;
- использовать быстрое прототипирование как часть итерационного процесса для определения требований к программному обеспечению ;
- использовать итеративную и инкрементальную разработку , добавляя к системам все большую функциональность по мере их запуска, использования и тестирования;
- выявлять и растить выдающихся концептуальных проектировщиков .
См. также
Ссылки
Внешние ссылки
- , сокращённая версия (англ.)
- 2021-11-12
- 1