Книга: Программное обеспечение и его разработка
Склонность к фантазированию
Склонность к фантазированию
Наша отрасль еще столь молода, что все новейшие фантазии воспринимаются в качестве новых великолепнейших методов, способных решить множество проблем. Возможно, этому способствуют средства массовой информации, стремящиеся повысить тиражи журналов и поднимающие шумиху вокруг нового метода. Возможно, на это влияет и желание практиков — или исследователей — увидеть свою фамилию напечатанной под статьей, говорящей, что то-то и то-то можно считать пробным критерием успеха.
Вероятно, действуют все эти причины. Но мудрый руководитель помнит, какая участь ожидает первопроходцев, и ждет, пока очередное новшество не будет опробовано кем-то другим и зарекомендует себя, и только потом начинает применять новинку на практике.
Репутацию фирмы-производителя нельзя считать мерой надежности. Сколько пользователей пострадало, когда фирма IBM испортила первую версию системы ОС/360? Системы реального времени для модели 67? Программное обеспечение для Series 1?
Сети вычислительных машин, универсальные компиляторы и распределенная обработка данных — вот лишь немногое из списка фантастических замыслов, прорвавшихся в промышленное производство.
Часто самое высшее руководство бывает склонно к самым диким фантазиям. А представители другой крайности — технический персонал, программисты, отказываются применять новые методы на практике. Но программистов надо ограничивать именно в их собственной области деятельности! В противном случае, они, подобно детям, играющим в кубики, начнут с увлечением строить очаровательные, запутанные, закрученные и неразборчивые конструкции. Они будут писать вложенные циклы на трех страницах!
Цикл, размером в три страницы, это логический кошмар. Это еще более сложное образование, чем Литота — двойное или множественное отрицание, как в предложении Гарольда Ласки: «Я до конца не уверен в том, будет ли правдой утверждение, что Мильтон, который прежде не казался не похожим на Шелли семнадцатого века, не стал, в противовес опыту даже более горьких лет, более близким основателю иезуитской секты, которая вряд ли способствовала развитию в нем терпимости»[43].
Разумеется, циклы размером в три страницы могут прекрасно работать. И, если речь идет о программах типов «зубочистки» или «молотка», проблемы не возникнет. Программиста можно за это похвалить. Но если нам придется несколько раз возвращаться к этой программе и модифицировать ее, лучше сразу покончить с программистом. Прежде, чем мы сможем модифицировать и расширить эту программу, нам придется распутать невероятный логический клубок.
- Системы, подсистемы и программное обеспечение
- Общесистемная незамкнутость
- Взгляд сверху вниз
- Различные подсистемы обработки данных в одной системе
- Отделение программного обеспечения от аппаратуры
- Перегрузка аппаратной подсистемы, которую можно принять за неполадку с программным обеспечением
- Стоимость и график разработки предсказать невозможно
- «Эффект заброшенных функций» при разработке больших программ
- Планирование развития
- Занятость
- Эволюционный подход к разработке больших систем
- Задачи руководства программным обеспечением проекта
- Результаты процесса разработки
- План разработки или проекта
- Производительность труда и оценки
- Производительность труда при разработке программного обеспечения
- База данных по производительности труда
- Определения терминов «строка программы» и «человеко-месяц»
- Два значения термина «строка программы»
- Категории программного обеспечения
- Определение человеко-месяца
- Изменчивость
- Вопросник по производительности труда
- Ошибки при подсчете СТП
- Форма отчетности по строкам программ
- Некоторые результаты сбора статистики
- Оценка
- Оценка размеров программы
- Факторы, определяющие трудность разработки
- Функциональные факторы
- Как проводить оценки
- Предположения при проведении оценок
- Организация усилий по разработке программного обеспечения
- Ключевые моменты больших проектов
- Надзор над разработкой
- Управление
- Экономия усилий
- Управление конфигурацией
- Автоматизированная матрица модулей/функций
- Ключ к успеху — руководитель разработки
- Выбор руководителя разработкой программного обеспечения
- Технический опыт
- Карьера разработчика программного обеспечения
- Пять стадий развития всех новых проектов
- Печальная участь первопроходцев
- Будет ли удовлетворен настоящий пользователь?
- Прослушивания
- Прослушивания очень важны
- Что необходимо выносить на прослушивания — и когда?
- Что такое «прослушивание»?
- Кто должен участвовать в прослушиваниях?
- В чем вред прослушивании?
- Отчеты на прослушиваниях — делайте их устно
- Первый выход на прослушивание или в группу инвентаризации
- Кадры и инструментарий
- Купить или сделать
- Разрабатывать самим или заказывать на стороне
- Как заказывать разработку программного обеспечения
- Вид заключаемого контракта
- Что делать, когда все идет прахом
- Поиски замены для руководителя
- Неуправляемый гигант
- Стандарты программного обеспечения
- Ничто не дается бесплатно — средства на стандартизацию тратятся с первых же шагов
- Склонность к фантазированию
- Сопротивление нововведениям
- Изменения дорого обходятся с самого начала
- Разработка или продолжающаяся разработка как наиболее дорогостоящая фаза
- Одна причина оптимистических оценок
- Научные исследования в программном обеспечении
- Отсутствие методов представления программ
- Разрабатывать программы так же, как и аппаратуру?
- Сходство между аппаратурой и программным обеспечением