Программное обеспечение обычно разбивают на три категории:
- управляющие программы (например, операционные системы — ОС);
- системные программы (например, компиляторы);
- прикладные программы (обработка данных, счетная программа и др.).
Статистика показывает, что программист в течение года способен написать и отладить управляющую программу длиной примерно 600 строк, системную программу длиной 2000 строк и прикладную длиной 6000 строк.
Естественно, что к этим цифрам нужно относиться очень осторожно, т.к. неясно, что понимать под строкой кода. Включаются ли сюда комментарии и объявления данных? Или это генерируемая транслятором машинная команда? Как учесть программы, хранящиеся в библиотеке? Следует ли исходить из строк или операторов начального текста? В зависимости от ответов на эти вопросы количество строк кода может меняться в 2–4 раза.
Эффективность действия отдельного программиста в значительной мере зависит от типа задачи. Организация работы программиста также влияет на результаты труда. Например, в условиях дефицита времени очень мало внимания уделяется документации. Однако т.к. » 70 % общих затрат идет на сопровождение, экономия времени на разработку документации может оказаться пагубной.
Один из методов решения поставленных проблем может состоять в учреждении должности библиотекаря, осуществляющего функции интерфейса между программистом и ЭВМ. Программы кодируются и передаются библиотекарю для включения их в оперативную системную библиотеку. Отладка модулей осуществляется программистом, однако изменение официальной копии программы в библиотеке осуществляется только библиотекарем. Использование библиотеки еще более расширяется при наличии оперативной системы управления данными. Введение должности библиотекаря имеет еще один положительный эффект: все изменения в программных модулях системной библиотеки производит один человек, поэтому этим процессом легко управлять. Подобный подход позволяет предотвратить неоправданные изменения и побуждает программиста тщательно обдумывать каждое из них. При этом руководитель получает возможность осуществлять систематический контроль за ходом проектирования и облегчается проверка состояния работ.
При крупномасштабных проектах для написания документации привлекаются технические исполнители, что позволяет освободить программистов для более квалифицированных работ.
В крупных организациях (фирма IBM) создается бригада главного программиста. При создании бригады исходят из того, что программисты имеют различные уровни квалификации. Организация бригады главного программиста является одним из путей уменьшения количества коммуникаций (рис. 3.3).
Рис. 3.3 — Снижение количества взаимосвязей при использовании бригады главного программиста