В статье исследуется жизненный цикл разработки программных продуктов в ИТ-организациях, рассматриваются пути и способы, за счёт которых можно улучшить данный процесс.
Ключевые слова: программный продукт, эффективность разработки, жизненный цикл проекта.
В современном мире с каждым годом становится всё больше компаний, занимающихся разработкой программных продуктов. Данный процесс является основным для организаций, занятых в ИТ-сфере. Несмотря на то, что спектр услуг может быть различным, в конечном итоге это приводит к производству блага, приносящего определенную ценность и формирующего имидж компании. Для того, чтобы этот результат был положительным, компаниям необходимо анализировать процесс оказания услуги и выявлять узкие места, для повышения эффективности деятельности.
В жизненном цикле разработки программных продуктов выделяют следующие стадии:
– начальную;
– уточнения;
– конструирования;
– ввода в действие.
На начальной стадии определяется область разработки, оценивается стоимость проекта и сроки его осуществления. По её результатам формируются цели проекта.
Стадия уточнения включает определение общей концепции, архитектуры и плана производства. В результате определения архитектуры информационной системы должны быть разработаны детализированные модели того, что было подготовлено на этапе разработки бизнес-требований.
На стадии конструирования происходит процесс разработки и тестирования программного продукта. Тестирование сопровождается проверкой исходного кода, поиском ошибок по их проявлениям в процессе выполнения программы. Формируется основа продукта для передачи её пользователям.
Стадия ввода в действие заключается в релизе рабочей версии продукта, удовлетворяющей заказчика [1].
Этап внедрения включает следующее:
1) получение разрешения на установку информационной системы в местах ее функционирования;
2) подготовка инфраструктуры пользователя и оборудования помещений, в которых будет осуществляться функционирование информационной системы;
3) проверка работоспособности информационной системы в реальных условиях эксплуатации.
Каждая рассмотренная стадия должна заканчиваться качественным результатом и не вызывать дополнительных расходов в будущем.
Эффективность разработки оценивается таким показателем, как ROI (return on investment). Чем он выше, тем более эффективно предприятие осуществляет свою деятельность. К основным факторам, способствующим высокому ROI относится широта использования. Чем больше людей, использующих систему, тем потенциально выше ROI. Аналогично, чем чаще используется приложение, тем выше данный показатель. Кроме того, чем выше существующие затраты на выполнение автоматизируемых операций, тем выше возврат от автоматизации и внедрения ИТ. [2]
В процессе производства выделяют следующие показатели, влияющие на эффективность разработки:
Планируемость — поддержание плана разработки программного продукта;
Укомплектованность — наличие достаточного количества людей для выполнения заказа;
Руководимость — создание и поддержание интересов и стимулов к разрабатываемой системе. Сотрудники ИТ-сферы в большей степени должны быть замотивированы на осуществление деятельности, они должны видеть свою роль в данном процессе.
Организованность — наличие определенной структуры для осуществления процесса разработки, разделение труда между исполнителями.
Осуществимость разработки — определение реализуемости проекта с учётом жизненного цикла и его преимуществ по сравнению с альтернативными вариантами.
Обеспеченность информационными ресурсами — наличие у команды, участвующей в разработке, необходимого технического оснащения.
Полнота и непротиворечивость требований — разработка спецификации функций, интерфейсов и технических характеристик ПО таким образом, чтобы описание было достаточным для разработки и не содержало противоречий между своими частями [3].
Проекты могут становиться неэффективными и вызывать увеличение стоимости в следствии следующих причин. Риски увеличения стоимости проектов представлены в таблице 1.
Таблица 1
Риски увеличения стоимости проектов
Виды рисков |
Оценка причин рисков |
|
Уменьшает риск |
Увеличивает риск |
|
Формирование портфеля заказов |
Обдуманный подход к формированию портфеля заказов, с осуществлением анализа существующих проектов и сроков их реализации |
Отсутствие опыта в данной области, невозможность оценки принятия решения на среднесрочные и перспективные заказы |
Планирование |
Составление детализированного плана с полным описанием требований для каждой стадии |
Включение в план спорных, непроверенных решений. Планирование происходит без участия всех заинтересованных сторон. |
Проектирование |
Процесс разработки спроектирован с учётом всех аспектов функциональности. Архитектура системы разбита на модули |
Системная и программная архитектура с неясным описанием основ функционального разделения аппаратного и программного обеспечения |
Кадровое обеспечение |
Низкая текучесть кадров; своевременный набор персонала для разработки ПО; сохранение ключевых людей до окончания разработки |
Высокая текучесть кадров; плохо укомплектованный штат сотрудников; потеря ключевых людей перед стадиями тестирования и запуска в эксплуатацию |
Опыт команды |
Опыт участия в разработке ПО; опыт планирования и опыт принятия решений |
Отсутствие опыта в разработке ПО; отсутствие опыта в планировании |
Информационная система |
Система управления соответствует средствам тестирования и требованиям проекта; испытанные средства проектирования |
Отсутствующая либо ограниченная совместимость системы управления и инструментальных средств анализа тестирования; неподходящие средства проектирования |
Опыт команды в ИТ-секторе влияет как на формируемую корзину заказов, так и на конечную стоимость разрабатываемого продукта. Так привлечение дополнительных людей на этапе разработки может вызывать непредвиденные до этого расходы. Поэтому для поддержания своей конкурентоспособности компаниям необходимо активизировать корпоративное обучение и развитие сотрудников.
Получение сертификатов в области информационных технологий способствует улучшению профессиональных знаний и навыков сотрудников. В конечном итоге это приводит к более успешной деятельности компании: увеличению количества и степени доверия клиентов, снижению текучести кадров и увеличению числа подготовленных специалистов.
Одним из вариантов для достижения этого являются автоматизированные системы контроля и обучения сотрудников, которые позволяют в кратчайшие сроки максимально охватить персонал необходимыми учебными программами, обеспечить индивидуальность и непрерывность его обучения без существенного отрыва от основного вида деятельности. Также можно организовывать менторинги в рамках проекта, на которых будут делаться задания с использованием современных технологий.
Таким образом, компаниям, занятым в ИТ-сфере, следует анализировать эффективность процесса разработки для того, чтобы привлекать новых клиентов, а также поддерживать хорошие отношения с существующими. Ведь потеря постоянных клиентов в следствии плохого исполнения заказа, приводит к дополнительным затратам для поиска новых клиентов. Установлено, что издержки по привлечению нового покупателя в пять раз превышают затраты по сохранению отношений с уже имеющимися клиентами.
Литература:
- Гладких М., Кужева С. Организационные аспекты разработки программного обеспечения // Вестник Омского университета. — 2010. — № 2.
- Как оценивать эффективность ИТ. [Электронный ресурс] // URL — https://www.osp.ru/os/2004/07/184997/
- Определение стоимости разработки и внедрения автоматизированных информационных систем. [Электронный ресурс] // URL — http://mognovse.ru/jyg-tehnicheskij-reglament-opredelenie-stoimosti-razrabotki-i.html