Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации. Спиральная модель позволяет пользователям увидеть систему уже на ранних этапах, при этом обеспечивается определение непреодолимых рисков без особых дополнительных затрат.
При всех многочисленных достоинствах спиральной модели существует и ряд недостатков. Например, если проект имеет низкую степень риска или небольшие размеры, модель может оказаться слишком дорогостоящей и сложной для использования. В ряде случаев использование модели может оказаться дорогостоящим, по сравнению с другими моделями жизненного цикла (каскадной, итерационной), за счет новых витков спирали, на которых учитываются ответная реакция и пожелания заказчика, а также необходимости привлечения высокопрофессиональных кадров для оценки рисков.
Рис. 6. Спиральная модель
Независимо от выбора модели жизненного цикла желательно уделять внимание рискам на каждом этапе, начиная с выработки концепции и заканчивая эксплуатацией системы. На ранних этапах, как правило, доминируют риски, связанные с бизнесом, рамками проекта, требованиями к конечному продукту и проектированием этого продукта. С течением времени начинают играть важную роль технологические риски, связанные с реализацией проекта. Затем внимание переходит к рискам поддержки и сопровождения.
Глава 3
Улучшение качества ПО и снижение рисков
3.1. Понятие качества и его многомерность
Качество – наиболее важная характеристика программных продуктов. Зачастую качество является основным критерием выбора поставщика, программного обеспечения, информационных технологий. В ходе ИТ-проекта существует много возможностей для потери первоначально задуманного качества решения. Каждый этап жизненного цикла – инициация, внедрение, обновление, обслуживание – представляет особые риски для качества, которые необходимо учитывать. Специалистами отмечено, что вклад в качество, осуществленный на ранних стадиях, имеет более сильное влияние на конечный продукт, чем на поздних стадиях. При этом тестирование и измерение качества должны происходить на всех стадиях жизненного цикла, так же как и постоянное отслеживание и сравнение промежуточных этапов с первоначальным планом. Контроль качества ИТ-приложений на протяжении всего жизненного цикла позволяет ИТ-организациям соотнести процессы обеспечения качества с коммерческими результатами.
Согласно определению качества, сформулированному ISO, качество представляет собой совокупность потребительских свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям.
Проекты в области информационных технологий, а также информационные системы имеют ряд особенностей в разрезе управления качеством. Во-первых, ИТ-проекты отличают гибкость и практически не ограниченные возможности («запрограммировать можно все, что возможно описать словами»). Во-вторых, для ИТ-проектов характерна высокая сложность получающихся систем и, как следствие, большое количество ошибок в них. Поэтому, говоря о качестве ИТ-проектов, следует учитывать многомерность понятия качества. Для создания высококачественного проекта в области информационных технологий следует уделить внимание качеству организации, качеству используемых данных, сервисов и инфраструктуры, качеству информации и программного обеспечения. Так, например, наличие процесса разработки программного обеспечения, удовлетворяющего высокому уровню качества, не гарантирует выпуска программного обеспечения высокого качества. Управление качеством будет успешным, если под контролем находятся все измерения качества – продукта, процессов, организации и прочего.
Для расстановки приоритетов качества на каждом этапе жизненного цикла внедрения ИТ необходимо учитывать следующие вопросы:
1. Готова ли компания запустить приложение в эксплуатацию и все ли бизнес-процессы работают так, как было запланировано?
2. Обеспечены ли прозрачность и контроль над изменениями в приложении?
3. При возникновении проблем в эксплуатации можно ли их быстро выявить и устранить?
Данные вопросы качества связаны с процессом управления рисками, так как они позволяют понимать бизнес-процессы и обеспечивать получение желаемых результатов, проводить изменения и их тестирование в порядке очередности, основываясь на влиянии изменений на бизнес-процессы, своевременно определять проблемы производительности и быстро их решать.
Говоря о качестве ИТ-проекта, следует отметить, что не существует единой метрики качества. Это объясняется тем, что не всегда можно однозначно ответить на вопрос, какие характеристики важнее – применение ПО, его производительность, результаты использования, стоимость и время разработки или же удовлетворение коммерческим требованиям.
При выборе метрик главными показателями являются адекватность метрик целям качества, прозрачность и четкость интерпретации, экономическая эффективность получения (рис. 7).
Рис. 7. Пример метрик качества ПО
К наиболее используемым метрикам качества информационных систем, важным для пользователей информационных технологий, можно отнести следующие:
• надежность (Reliability) – вероятность работы системы без сбоев в течение определенного периода времени. Надежность ПО включает такие элементы, как отказоустойчивость, то есть возможность восстановления программы и данных в случае сбоев в работе, безопасность и защищенность от случайных или преднамеренных внешних воздействий (защита от вирусов, спама);
• устойчивость к сбоям (Robustness) – уровень, до которого система продолжает корректно выполнять свои функции, несмотря на неверный ввод данных, недостатки подключенных программных компонентов или компонентов оборудования;
• производительность (Performance) – характеристика того, насколько быстро и качественно система должна выполнять определенные операции;
• взаимодействие (Interoperability) – каким образом система, приложение или сервис обменивается данными с другими системами, приложениями, сервисами;
• эффективность (Efficiency) – объем вычислительных ресурсов, необходимых для выполнения функций. ПО не должно впустую тратить системные ресурсы, такие как память, процессорное время, каналы связи. Поэтому эффективность ПО оценивается следующими показателями: время выполнения кода, загруженность процессора, объем требуемой памяти, время отклика и т. п.;