logo search
АСУ ТП / ИДЗ №1 / Анализ сложных систем

14.4. Постановка задачи

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

Постановка задачи обычно настолько переплетена с программированием, что их часто рассматривают как единое целое. Объем необходимой для этого работы постоянно недооценивают, и недооценивают очень существенно даже тогда, когда задача, в сущности, проста. Для того есть много причин. С одной стороны, если программированием занимаются люди, знакомые с задачей, то они должны уметь программировать. Но обучение требует много времени, и возможно, что они так никогда и не станут квалифицированными программистами. Если же, с другой стороны, программисты займутся постановкой задачи в целом, то им придется изучить задачу, что опять-таки требует времени, и вполне возможно, что они никогда не изучат ее как следует. Если над задачей работает смешанная группа, то возникает проблема общения между ее членами; каждый из специалистов в своей области должен научиться понимать язык другого, а на это требуется еще больше времени.

Метод, при котором программирование выполняют люди, знакомые с задачей, успешно применялся при проведении коммерческих расчетов. Метод, при котором постановка задачи выполняется программистом, совершенно не изучен. Использование смешанных групп весьма широко распространено, и, по-видимому, это наилучший метод. Однако в связи с таким подходом следует сделать одно важное замечание. Если речь идет о больших системах, то очень важно, чтобы человек, знакомый с задачей, научился понимать язык программиста и получил представление о программировании и ограничениях, присущих машинам. Если в руках такого человека находится большая и сложная задача, то он не может просто передать ее программисту для решения.

Другая причина недооценки размеров работы, необходимой для использования вычислительной машины в решении новой задачи, заключается в том, что решение задач на вычислительных машинах происходит совершенно иначе, чем при применении старого привычного метода. Консерватизм отдельных лиц и инертность организаций часто затрудняют введение перемен, а иногда делают их невозможными .

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

Для уяснения причин большой длительности подгото­вительного периода приведем несколько примеров.

Самым ярким примером трудностей при использовании машин для бухгалтерского учета, по-видимому, является пример с промышленной фирмой, решившей автоматизировать составление платежных ведомостей. Заработная плата в этой фирме рассчитывалась по прогрессивной системе, с учетом работы, как отдельных работников, так и целых групп, так что платежные ведомости были исключительно сложными. У фирмы были свои собственные специалисты, ряд опытных специалистов был предоставлен в ее распоряжение фирмой-поставщиком вычислительных машин. Для большей надежности прибегли к консультациям специалистов по коммерческим расчетам. Состояние проблемы опасения не вызывало. Однако примерно через два года, после того как было написано несколько сот тысяч команд, все участники работ признали, что она им не под силу. Следует учесть, правда, что данная группа решала эту проблему одной из первых и ей пришлось многому учиться. В наши дни машины хорошо справляются с проверкой инвентарных списков и составлением платежных ведомостей. К сожалению, организации и отдельные лица, работающие в этой области, не особенно склонны учиться на ошибках других, и подобные случаи неоднократно повторяются.

Второй пример относится к компании городского энергоснабжения. Она избрала более разумный и намеренно медленный подход к проблеме, но масштабы работы были также недооценены. Изучение проблемы началось в 1953 г. Через год компания решила, что приобретение вычислительной машины было бы экономически оправдано, и заказала машину определенного типа. Специалисты немедленно принялись за постановку задачи и программирование. Еще через два с половиной года компания получила машину и начала передавать на машину работу, производившуюся до того людьми. Длительность переходного периода вместо запланированных девяти месяцев составила четырнадцать месяцев. Первоначально предполагалось, что потребуется программа из 30 000 команд. Когда работа была завершена, объем программы составил 42 000 команд, так как были недооценены размеры работы, необходимой для учета в программе отдельных, не часто встречающихся операций; в ходе этого была также установлена необходимость включения в программу различных проверок (упомянутые выше аварийные сигналы). Помимо того, для обеспечения нужд переходного периода пришлось написать еще 20 000 команд. В течение переходного периода были наняты дополнительно новые сотрудники, так как в это время действовали три системы: старая, новая и промежуточная. Чтобы установить вычислительную машину, которая обычно способствует сокращению рабочей силы на предприятии, компании пришлось временно увеличить число сотрудников на 60 человек. В ходе установки машины были произведены изменения в структуре бухгалтерских групп и в характере деятельности компании во многих областях. Таким образом, этот переход привел к существенной реорганизации.

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