72 лучших цитаты и высказывания Фреда Брукса

Изучите популярные цитаты и высказывания американского ученого Фреда Брукса.
Последнее обновление: 25 декабря 2024 г.
Фред Брукс

Фредерик Филлипс « Фред » Брукс-младший — американский компьютерный архитектор, инженер-программист и ученый-компьютерщик, наиболее известный тем, что руководил разработкой семейства компьютеров IBM System/360 и пакета поддержки программного обеспечения OS/360. в своей основополагающей книге «Мифический человеко-месяц» .

Добавление рабочей силы к позднему программному проекту делает его более поздним.
Как проект опаздывает на год? День за днем.
Хорошее суждение приходит из опыта, а опыт приходит из плохого суждения. — © Фред Брукс
Хорошее суждение приходит из опыта, а опыт приходит из плохого суждения.
Не существует ни одной разработки ни в технологии, ни в методах управления, которая сама по себе обещает хотя бы на один порядок улучшения в течение десятилетия в производительности, надежности, простоте.
Систематически идентифицируйте лучших дизайнеров как можно раньше. Лучшие часто не самые опытные.
Как проект может отставать от графика на год? День за днем.
Фундаментальная проблема сопровождения программы заключается в том, что исправление дефекта может привести к возникновению другого.
Важный момент в процессе проектирования — определить самый дефицитный ресурс. Несмотря на то, что вы можете подумать, это очень часто не деньги. Например, при съемке Луны НАСА денег много, а легкости мало; каждая унция веса требует тонн материала внизу. В дизайне дома для отдыха на пляже ограничением могут быть кадры с видом на океан. Вы должны убедиться, что вся ваша команда понимает, какой ограниченный ресурс вы оптимизируете.
Сложность программного обеспечения является существенным, а не случайным свойством. Следовательно, описания программного объекта, которые абстрагируются от его сложности, часто абстрагируются от его сущности.
Самая трудная часть задачи по программному обеспечению — получить полную и непротиворечивую спецификацию, и большая часть сути создания программы на самом деле заключается в отладке спецификации.
Таким образом, вопрос управления заключается не в том, построить ли пилотную систему и выбросить ее. Вы сделаете это. Следовательно, планируйте выбросить один; вы будете, во всяком случае.
Сущность программного объекта — это конструкция взаимосвязанных концепций. Я считаю, что трудной частью создания программного обеспечения является спецификация, проектирование и тестирование этой концептуальной конструкции, а не работа по ее представлению и проверке точности представления.
Ученый строит, чтобы учиться; инженер учится, чтобы строить.
Термин «архитектура» используется здесь для описания атрибутов системы с точки зрения программиста, т. е. концептуальной структуры и функционального поведения, в отличие от организации потока данных и элементов управления, логического дизайна и физической реализации. я. Дополнительные сведения об архитектуре
Даже самое лучшее планирование не настолько всезнающе, чтобы сделать все правильно с первого раза.
Процедура продукта ... должна надежно защищать драгоценности короны, но, что не менее важно, она должна избегать возведения высоких заборов вокруг мусорных баков. — © Фред Брукс
Процедура продукта ... должна надежно защищать драгоценности короны, но, что не менее важно, она должна избегать возведения высоких заборов вокруг мусорных баков.
Предсказуемость и отличный дизайн — не друзья.
Отладка системы всегда была занятием в ночную смену, как и астрономия.
Подарите, чтобы сообщить, а не произвести впечатление. Если вы сообщите, вы произведете впечатление.
Оригинальность не освобождает от невежества.
Эйнштейн неоднократно утверждал, что должны быть упрощенные объяснения природы, потому что Бог не капризен и не произволен. Никакая такая вера не утешит инженера-программиста.
Люди и месяцы являются взаимозаменяемыми товарами только тогда, когда задача может быть разделена между многими работниками без связи между ними.
Успешное программное обеспечение всегда меняется.
Очень трудно энергично, правдоподобно и рискованно защищать оценку, полученную без количественного метода, подкрепленную небольшим количеством данных и подтвержденную главным образом догадками менеджеров.
Проектирование программного и аппаратного обеспечения меньше, чем думают разработчики программного обеспечения, но больше, чем думают разработчики аппаратного обеспечения.
Древняя пословица предупреждает: «Никогда не ходите в море с двумя хронометрами, возьмите один или три».
Все программисты оптимисты. Пожалуй, это современное колдовство особенно привлекает тех, кто верит в счастливый конец и в феи-крестные. Возможно, сотни мелких разочарований отпугивают всех, кроме тех, кто обычно фокусируется на конечной цели. Возможно, дело просто в том, что компьютеры молоды, программисты моложе, а молодые всегда оптимисты.
Самая сложная часть создания программной системы — решить, какую именно задачу построить. Самая важная функция, которую разработчики программного обеспечения выполняют для своих клиентов, — итеративное извлечение и уточнение требований к продукту. По правде говоря, клиенты не знают, чего они хотят. Обычно они не знают, на какие вопросы нужно ответить, и почти никогда не задумывались о проблеме в деталях, которые должны быть указаны.
Отладка системы, как и астрономия, всегда производилась в основном ночью.
Работа над программным обеспечением — самая сложная, за которую человечество когда-либо взялось.
Девять человек не могут родить ребенка за месяц.
Посредственный дизайн доказуемо растрачивает мировые ресурсы, портит окружающую среду, влияет на международную конкурентоспособность. Дизайн важен.
Я думаю, что самая трудная часть обучения программированию — это приспособиться к требованию совершенства.
Проектная работа не просто удовлетворяет потребности, она их выявляет.
Улучшение вашего процесса не переместит вас от хорошего дизайна к отличному. Это переместит вас от плохого к среднему.
Основное оружие программиста в нескончаемой битве с медленной системой — изменение внутримодульной структуры. Нашей первой реакцией должна быть реорганизация структур данных модулей.
Первым шагом к лечению болезней была замена теорий демонов и теорий юмора теорией микробов. Этот самый шаг, начало надежды, сам по себе перечеркнул все надежды на магические решения. Она говорила рабочим, что прогресс будет происходить постепенно, с большими усилиями, и что необходимо постоянно и неустанно заботиться о дисциплине чистоты. Так и с программной инженерией сегодня.
Программист, как и поэт, работает лишь немного вдали от чистой мыслительной материи. Он строит свои замки в воздухе, из воздуха, творя напряжением воображения. Немногие средства творчества настолько гибки, так легко полируются и переделываются, так легко способны реализовать грандиозные концептуальные структуры.
Обратите внимание, что для программиста, как и для шеф-повара, срочность посетителя может определять запланированное выполнение задачи, но не может влиять на фактическое завершение. Омлет, обещанный через две минуты, кажется, готовится неплохо. Но когда он не затвердел за две минуты, у покупателя есть два варианта — подождать или съесть его сырым. У клиентов программного обеспечения был такой же выбор.
Более половины времени, которое вы тратите на работу над проектом (порядка 70 процентов), тратится на размышления, и ни один инструмент, каким бы продвинутым он ни был, не может думать за вас. Следовательно, даже если инструмент делал за вас все, кроме мышления, — если он написал 100 % кода, написал 100 % документации, выполнил 100 % тестирования, прожег компакт-диски, упаковал их в коробки и отправил по почте. их вашим клиентам — лучшее, на что вы можете надеяться, — это 30-процентное повышение производительности. Чтобы добиться большего, вы должны изменить свое мышление.
Я никогда не видел опытного программиста, который обычно делал подробные блок-схемы перед тем, как начать писать программы. — © Фред Брукс
Я никогда не видел опытного программиста, который обычно делал подробные блок-схемы перед тем, как начать писать программы.
Начальник должен сначала различать информацию о действии и информацию о состоянии. Он должен дисциплинировать себя, чтобы не решать проблемы, которые могут решить его менеджеры, и никогда не действовать по проблемам, когда он явно пересматривает статус.
Концептуальная целостность является наиболее важным фактором при проектировании системы.
Вы можете большему научиться на неудачах, чем на успехах. В случае неудачи вы вынуждены выяснять, какая часть не сработала. Но в случае успеха вы можете поверить, что все, что вы сделали, было великолепно, хотя на самом деле некоторые части могли вообще не работать. Неудача заставляет вас столкнуться с реальностью.
Самая сложная часть создания программной системы — решить, что именно создавать.
Вынашивание ребенка занимает девять месяцев, сколько бы женщин ни назначили.
Небольшое ретроспективное исследование показывает, что, хотя многие прекрасные и полезные программные системы были разработаны комитетами и созданы как часть многокомпонентных проектов, те программные системы, которые вызвали восторг у страстных поклонников, являются продуктами одного или нескольких дизайнерских умов, великих дизайнеров.
Диссертации не закончены; они заброшены.
Один только мозг сложен, не поддается отображению, мощен, не поддается подражанию, богат разнообразием, самозащищается и самообновляется. Секрет в том, что он вырастает, а не строится.
Основной принцип обработки данных учит тому, насколько глупо пытаться синхронизировать независимые файлы.
Стиль дизайна определяется набором микрорешений. Четкий стиль отражает последовательный набор. Четкий стиль не может быть хорошим стилем; запутанный никогда не бывает. — © Фред Брукс
Стиль дизайна определяется набором микрорешений. Четкий стиль отражает последовательный набор. Четкий стиль не может быть хорошим стилем; запутанный никогда не бывает.
Из-за нехватки календарного времени провалилось больше программных проектов, чем по всем другим причинам вместе взятым.
Когда задачу нельзя разделить из-за последовательных ограничений, приложение дополнительных усилий не влияет на расписание. Вынашивание ребенка занимает девять месяцев, сколько бы женщин ни назначили.
Фундаментальная проблема сопровождения программы заключается в том, что исправление дефекта имеет существенную (20-50%) вероятность появления другого. Таким образом, весь процесс состоит из двух шагов вперед и одного шага назад.
Лишь небольшой части человечества Бог дает привилегию зарабатывать себе на хлеб тем, чем он с радостью занимался бы бесплатно, ради страсти.
Добавление рабочей силы к позднему программному проекту делает его более поздним
Покажите мне свои блок-схемы и спрячьте свои таблицы, и я продолжу пребывать в замешательстве. Покажите мне свои таблицы, и обычно мне не понадобятся ваши блок-схемы; они будут очевидны.
Магия мифов и легенд воплотилась в наше время. Набираешь правильное заклинание на клавиатуре, и экран оживает, показывая вещи, которых никогда не было и не могло быть... Компьютер и в этом отношении напоминает магию легенды. Если один символ, одна пауза заклинания не совсем в надлежащей форме, магия не работает. Люди не привыкли быть совершенными, и немногие области человеческой деятельности требуют этого. Я думаю, что самая трудная часть обучения программированию — это приспособиться к требованию совершенства.
Я убежден больше, чем когда-либо. Концептуальная целостность играет центральную роль в обеспечении качества продукции.
Построение системных программ — это процесс с убывающей энтропией, поэтому он по своей природе метастабилен. Сопровождение программы — это процесс, увеличивающий энтропию, и даже самое умелое его выполнение только отсрочивает падение системы до неустранимого устаревания.
Этот сайт использует файлы cookie, чтобы обеспечить вам максимальное удобство. Больше информации...
Понятно!