Какие же цели мы можем перед собой ставить,
изучая жизненный цикл программных систем?
Зачем вообще необходимо исследование,
изучение жизненного цикла,
знакомство с ним
и в чем смысл жизненного цикла,
почему мы должны в деталях знать,
как происходит разработка
программной системы?
Прежде всего, это необходимо для того,
чтобы грамотно произвести
анализ предыдущих проектов,
сделать выводы из того, почему,
возможно, в этих проектах были
какие-то недостатки.
А в ряде случаев происходит и так,
что эти проекты
были просто завершены безуспешно,
были провальными.
И надо сказать, что в IT статистика
провальных проектов достаточно внушительна,
можно сказать, что до половины проектов
могут завершаться с нарушениями
сроков и стоимости.
То есть прежде всего это анализ,
затем организация и управление разработкой,
т. е. понимание того, каким образом,
на каких принципах,
при помощи каких средств и технологий
нам имеет смысл вести разработку
программных продуктов
с тем, чтобы она была надежной, предсказуемой,
чтобы те продукты, которые мы разрабатываем,
были тиражируемыми,
чтобы они могли удовлетворить
большое количество заказчиков,
чтобы мы могли, как мы уже говорили,
перейти от продуктовой разработки
к проектной разработке и к смешанной разработке,
чтобы могли обеспечить
должный уровень качества, безопасности,
надежности, предсказуемости,
эргономичности, расширяемости,
сопровождаемости и т. д.,
в зависимости от того, какие из этих характеристики
и в каком объеме необходимы заказчику.
Кроме того, мы должны иметь возможность
вести предсказуемо разработку с точки зрения
управления и людскими ресурсами,
и финансовыми ресурсами
от части, хотя здесь идет речь больше
о менеджменте проектов, об управлении проектами,
программной инженерии,
все-таки включает и эту компоненту,
менеджериальную компоненту.
И далее мы можем на основе анализа
и предсказуемого планирования
и управления процессом разработки
программного обеспечения
вести более предсказуемое планирование
будущих проектов
и это тоже очень важно,
особенно с учетом существующих сегодня
кризисных явлений
и той антикризисной оптимизации,
которая нам при этом необходима.
В этой связи полезно еще раз напомнить
о том, как мы говорили,
программная инженерия, по сути дела,
представляет собой средства для оптимизации,
многофакторной оптимизации
программных продуктов по тем критериям:
сроки, стоимость, функциональность
и ряду других критериев,
как сопровождаемость, эргономичность,
безопасность и т. д.,
которые должны быть приоретизированы
с учетом характера и масштаба проекта
каждый раз под
каждую конкретную задачу.