1.
Основывайте процесс на подходе с упреждающей разработкой архитектуры, Внимание, уделяемое архитектуре на ранних стадиях, является прочным основанием для 20% работ (требования, компоненты, варианты использования, риски, ошибки), что ведет к общему успеху проекта. Добиваясь того, чтобы важные с точки зрения архитектуры компоненты были хорошо поняты и стабилизировались до детальной проработки рабочих продуктов, можно достигнуть того, что уровень дефектов и переделок на протяжении жизненного цикла будет снижаться или оставаться стабильным.
2.
Постройте итерационный процесс всего жизненного цикла таким образом, чтобы риски выявлялись на ранних стадиях. Более динамичная схема планирования, базирующаяся на итерационном процессе, позволяет лучше справляться с рисками, делает производительность более предсказуемой. Первоочередное решение критичных проблем делает стадию конструирования предсказуемой и лишенной сюрпризов, а также минимально подверженной излишним затратам денег и времени.
3.
Переходите к методам разработки, основанным на компонентах. Сложность работы по созданию ПО является в основном функцией количества рабочих продуктов, производимых человеком. Переходя к более компактным решениям, можно уменьшить сложность управления.
4.
Используйте среду, позволяющую управлять изменениями. Динамика итерационной разработки, которая включает в себя параллельные процессы, выполняемые различными командами над одними и теми же рабочими продуктами, требует полного контроля над базовыми рабочими продуктами.
5.
Упрощайте внесение изменений за счет использования инструментов, которые поддерживают «круговую» разработку. Автоматизация позволяет командам больше времени посвящать разработке и меньше времени тратить на вспомогательные действия.
6.
Содержите рабочие продукты проектирования в строгой, основанной на моделях нотации. Использование инженерной нотации для проектирования способствует контролю за сложностью, объективной оценке и автоматизации анализа.
7.
Обеспечивайте процесс инструментарием для объективного контроля за качеством и оценки прогресса. Показатели прогресса и качества непосредственно получаются из изменяющихся рабочих продуктов, что дает более содержательное понимание тенденций и соответствия требованиям.
8.
Для оценки промежуточных рабочих продуктов используйте подход, основанный на демонстрациях. Интеграция начинается на ранних стадиях и продолжается на протяжении всего жизненного цикла. Промежуточные результаты оказываются объективными и осязаемыми.
9.
Планируйте промежуточные версии для групп сценариев использования с переменным уровнем детализации. Изменяющиеся требования, разработка и планы должны находиться в равновесии. Полезные версии ПО доступны уже на ранних стадиях жизненного цикла.
10. Используйте конфигурируемый процесс, который может быть экономически масштабируемым. Методы, способы, инструменты и опыт могут непосредственно применяться в широкой области, обеспечивая повышенную отдачу от инвестиций.
На протяжении всей книги я уделял большое внимание важности баланса. Со всех точек зрения первостепенной задачей менеджера проекта по созданию ПО является нахождение верного баланса использования 10 самых главных принципов. Рис. 15.4 подводит итог теме баланса в контексте фундаментального уравнения экономики создания ПО.
Рис. 15.4. Взвешенное применение современных принципов для достижения высоких экономических результатов