Выбрать главу

Глава 8

Перспективы

В заключение я попытаюсь дать несколько обобщающих комментариев, стараясь при этом не особенно повторяться. Но перед этим я рискну высказать несколько принципов и предсказаний.

Использование промышленных методов при разработке программного обеспечения

Разработка программного обеспечения становится все более управляемым процессом. Некоторые из наиболее мощных приемов, нашедших свое применение в последние несколько лет, многие десятилетия использовались в промышленности и вполне себя там оправдали. Вот примеры этих методов:

Работа на основе ветвящейся структуры

Руководство и управление конфигурацией

Возможность слежения

Инспекторские проверки (сквозной контроль)

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

Верификация

Тестирование

Выборочные прослушивания

Руководство проектом

Программное обеспечение медленно теряет свое прежнее состояние невидимости, чему способствует введение (болезненное) стандартов, правил, практических методов, стандартных частей (системное программное обеспечение) и других хороших приемов руководства. Введение этих приемов приводит к первоначальному увеличению затрат, но столь значительно улучшает результаты на протяжении всего жизненного цикла, что каждый, считающий себя серьезным человеком разработчик программного обеспечения должен пользоваться ими везде, где это возможно. Я уверен, что по мере того как программное обеспечение будет становиться все более управляемым, мы будем применять еще более индустриальные методы.

Начальник исследовательского отдела корпорации Fortune — 100, занимающейся обработкой информации, недавно провел очень интересную аналогию между состоянием дел в программном обеспечении и промышленной революцией. Рассмотрим подробнее эту аналогию, из нее можно извлечь некоторые полезные уроки. Эти процессы произвели подлинную революцию в производстве.

Период разобщенности Работа на дому. Все гончары выполняли весь цикл работ в своей мастерской.
Объединения мастеров Достигается экономия при выполнении вспомогательных работ. Основной производственный процесс не меняется. Но теперь централизованная группа сборщиков глины поставляет материал всем гончарам. Централизованная группа торговцев заведует всей торговлей. Кувшины, однако, изготовляются по старой технологии. Этот шаг не зависит от последующих шагов.
Разделение труда Отдельные функции передаются тем людям, которые особенно хорошо выполняют именно их. Отделка всех кувшинов выполняется специальной группой художников. В книге «Здоровье нации» Адам Смит написал, что 10 неквалифицированных работников, работая независимо друг от друга, с трудом могут изготовить за день всего по одному гвоздю, но при разделении труда те же 10 человек в состоянии изготовить более 48 000 штук. Это начало понятия о сборочной линии.
Автоматизация Значительная экономия средств позволяет выделить фонды на внесение исправлений в основной процесс, проходящий в мастерской. Горны и печи для обжига начинают использоваться с невероятной интенсивностью. Штамповка автоматизируется с помощью использования ветряных мельниц и паровых двигателей.
Сборочная линия Разделение всего процесса на ряд отдельных операций, выполняемых над каждым изделием в установленное время.
Взаимозаменяемые части В конце 1790-х гг. Эли Уитни предпринял попытку изготовить за 2 года 10 000 мушкетов. «Абсурд», — сказали ему. К 1807 г. он делал по 2000 штук в год, в шесть раз больше, чем государственный завод в Спрингфилде, шт. Массачусетс. Секрет заключался во взаимозаменяемости частей, достигнутой благодаря прогрессу в металлургии и металлообработке. Взаимозаменяемость частей стала одной из фундаментальных основ сборочных линий.

Разработка программного обеспечения все еще находится на ранних стадиях своей промышленной революции. Уже пройден этап объединения, возникли некоторые формы разделения труда, началась автоматизация, но вот взаимозаменяемости частей пока еще не достигли. (См. рис. 8.1.)

Да До некоторой степени Началась Начались Еще нет
Коллективный труд Специализация работ Автоматизация Сборочные линии Взаимозаменяемые части