По данным Standish Group, вероятность того, что программный проект стоимостью 10 млн. долл. и выше уложится в сроки и бюджет, близка к нулю. Чтобы повысить эту вероятность, главный акцент при создании больших систем надо делать на ясности и целостности ее архитектуры и использовании единой методологической концепции проектирования и разработки. На основании данного анализа МО США приняло решение о том, что все электронные компоненты военной техники и оборудования будут строиться по модульному принципу в открытой архитектуре. Для каждого модуля определяются его функция, интерфейс, способ взаимосвязи и стандартные характеристики работы.
***
По данным компании Software Engineering (www.seisage.com), проанализировавшей эффективность создания ПО в МО США, прирост производительности труда программистов на протяжении последних 30 лет имеет линейный характер и составляет примерно одну дополнительную строку кода на программиста в месяц. Но на этот регулярный прирост оказывали влияние самые разные информационные технологии. На середину 60-х пришлось активное развитие языков третьего поколения, на начало 70-х - структурное программирование, на конец 70-х и начало 80-х - структурное проектирование и анализ, ближе к 90-м годам начались первые работы над моделями зрелости процессов производства ПО. В середине прошедшего десятилетия стало популярным объектно-ориентированное программирование. Последнее влияние на прирост производительности оказало принятие стандарта Ада 95. Вместе с тем с 70-х годов главной проблемой, на 64% определяющей эффектность и успешность работы, остается качество менеджмента программного проекта.
***
По данным Quantitative Software Management (www.qsm.com), с ростом объема проекта трудозатраты программистов в расчете на одну строчку кода (СК) растут нелинейно: чем больше и сложнее проект, тем быстрее эти трудозатраты увеличиваются. Более того, возникает существенный разброс в оценках - например, по конкретному проекту (военная система реального времени) объемом 100 тыс. СК оценка трудозатрат колебалась в диапазоне от 10 до 2500 человеко-месяцев.
Аналогична ситуация и со сроками. Время разработки одной СК и разброс во временных оценках с ростом проекта растут экспоненциально. Для реального проекта (программа объемом 10 тыс. СК) предварительная оценка составляла от двух до 80 месяцев.
Существует также минимально необходимое время создания системы, которое невозможно понизить, используя стандартные методологии или механически увеличивая штат разработчиков. Тысяча программистов не сделает определенное задание быстрее, чем сотня, - прежде всего из-за организационной сложности согласования взаимосвязей в коллективе. Согласно результатам анализа 491 проекта среднего размера, команды из двух - пяти разработчиков завершали проекты схожей сложности и объема примерно на 30% быстрее или с меньшим расходом бюджета, нежели группы из 7-14 человек.