Что входит в жизненный цикл программного обеспечения

Разработка успешного продукта – сложный многоступенчатый процесс. Только в кино начинающие бизнесмены придумывают крутую идею, попивая кофе из Starbucks. По сюжету, они играючи находят инвестиции и выпускают приложение, которое захватывает мир. В реальности всё не так просто.

Создание и развитие любого продукта происходит постепенно, проходя ряд обязательных этапов, часть из которых может идти параллельно. Приложениям, которые вы любите, и на которые охотно тратите время, понадобился не один год, чтобы обрести текущий визуальный облик и наполнение. Едва ли их разработчики остановятся на достигнутом и перестанут добавлять улучшения. 

Жизненный цикл проекта в IT – непрерывный процесс, который заканчивается лишь, когда его решают закрыть. Если вы придумали идею продукта и обратились к команде разработчиков, приготовьтесь, впереди много работы. О Силиконовой долине помечтаем позже. : )

/users_files/AnnaProkopeva/Frame 11.jpg

Как разработчики, мы нередко сталкиваемся с непониманием фаз жизненного цикла продуктов. 

Приходится опровергать представление о том, что после релиза проекта разработка завершена. По опыту знаем, что в первые месяцы жизни продукта может понадобиться допилить или переделать функционал, пофиксить баги.

Чтобы передать наше видение жизненного цикла разработки, мы поговорили с главными разработчиками Azoft и попросили поделиться представлениями об этом. Текст статьи будет полезен и для бизнеса, и для наших коллег. 

Итак, что же входит в жизненный цикл продукта?  

Жизненный цикл программного обеспечения (Software Development Life Cycle, SDLC) – условная схема, включающая фазы создания программного обеспечения. Цикл разработки предлагает шаблон, использование которого облегчает проектирование, создание и выпуск качественного программного обеспечения. На выходе должен получиться экономически выгодный продукт, отвечающий требованиям заказчика.

В структуру цикла разработки входят все этапы жизни программного обеспечения от его рождения в виде идеи до условной “смерти” (этапы до разработки, во время разработки и после неё).

Последовательность фаз, из которых состоит жизненный цикл

/users_files/AnnaProkopeva/Frame 10.jpg

Погружение команды в бизнес-контекст – важная фаза цикла разработки программного обеспечения, с которой начинается рабочий процесс. Клиент должен понимать, что он тратит время и ресурсы на этом этапе не просто так. Ему важно, чтобы команда проекта погрузилась в детали бизнеса и тщательнее разобралась, для какого рынка готовится продукт, как сделать его по-настоящему полезным. Это актуально для любой отрасли.

Сбор и анализ требований – одна из наиболее важных фаз SDLC. Она выполняется при участии клиентов, отдела продаж и отдела аналитики. На этом этапе важно максимально точно и однозначно определить требования к проекту и для команды проекта, и для бизнеса. Аналитики помогают определить конечные цели и задачи работы. Подробнее об этом этапе вы можете прочитать в нашей статье.

Дизайн. К этому этапу переходят, когда есть четкое понимание целей проекта, и достаточно подробно сформулированы его требования. На основании требований обычно предлагается несколько подходов к проектированию архитектуры продукта. Внутренний дизайн всех модулей архитектуры должен быть четко определен и описан в деталях.

/users_files/AnnaProkopeva/Frame 17.jpg

Реализация или кодирование. Это этап непосредственной разработки системы – написание кода на выбранном с учётом стоящих задач языке программирования. 

Тестирование. Система запускается в бой. Этот этап сопровождается проверкой работоспособности системы, выявлением, фиксацией и исправлением багов до тех пор, пока продукт не достигнет требуемых стандартов качества. В этот период обычно возникает много несостыковок, белых пятен, багов. Их нужно оперативно устранить. 

Внедрение. Когда продукт протестирован и готов к развертыванию, его выпускают на рынке. Иногда развертывание продукта происходит последовательно в рамках бизнес-стратегии клиента. Продукт может быть сначала выпущен в ограниченном сегменте и протестирован в реальной бизнес-среде, затем, основываясь на отзывах, он может быть выпущен как есть либо с предлагаемыми улучшениями.

/users_files/AnnaProkopeva/Frame 13.jpg

Сопровождение. На этом этапе жизненного цикла осуществляется периодическая техническая поддержка системы. Это позволяет убедиться, что система не устарела и отвечает современным стандартам и технологиям. Сюда входит постоянная оценка производительности и апдейты компонентов. 

Помимо основных указанных фаз, мы выделяем и фазу маркетингового продвижения. Маркетинговая деятельность является сквозной и проводится на протяжении всего жизненного цикла проекта. Клиенту важно создать осведомленность о продукте среди его целевой аудитории, привлечь потенциальных пользователей. Ни для кого не секрет, что клиентская база нарабатывается постепенно.

Все процессы разработки типовые, но подходы к работе бывают разные. И в зависимости от подхода определяется то, какой длины будут этапы, будут ли они делаться последовательно или итеративно, и как их будут выполнять.

Почему важно правильно воспринимать жизненный цикл продукта

/users_files/AnnaProkopeva/Frame 14.jpg

Мы не раз сталкивались с тем, когда клиенты, прежде всего, стартапы обращаются с предложением разработать продукт, но изначально не планируют его сопровождение. Они не закладывают время и бюджет на его развитие в ходе эксплуатации. В результате бизнес может столкнуться с ситуацией, когда все средства потрачены на разработку, а на поддержку или пиар проекта нет средств, как и договоренностей с командой о дополнительных работах.

Рады отметить, что сейчас такие ситуации возникают реже. Как правило, клиенты знают, что нужно предусматривать и обсуждать с деловыми партнерами будущее проекта. Они понимают, что жизнь продукта начинается с его идеи, а эксплуатация является важной частью жизненного цикла. Продукт – это всегда шире, чем разработка.

Не всегда верные представления о жизненном цикле ПО имеют и разработчики. Некоторые из них думают: ну что ж, я написал код, выложился по максимуму, а что с продуктом будет дальше, уже не должно меня беспокоить. На самом деле, программисты всегда должны быть готовы к постоянному взаимодействию с клиентами –  к поддержке и сопровождению созданных решений.

У Azoft сложился опыт долговременного партнерства со многими крупными компаниями. Например, мы успешно осуществляем поддержку персонального кабинета для программы лояльности «Спасибо от Сбербанка».

Постоянное сотрудничество выгодно и нам, и клиентам Azoft. При таком подходе мы постоянно находимся в контексте проектов, над которыми работаем. Клиенту не нужно погружать в процессы сторонних разработчиков, тратить дополнительные усилия. Мы уверены, что крепкие партнерские отношения важны на всех фазах работы, а не только на старте, и всегда рекомендуем бизнесу сразу думать о том, кто будет поддерживать будущий проект.

Хотите разработать качественный продукт, решающий задачи бизнеса? Почитайте полезные статьи о нашем опыте разработки и обращайтесь за бесплатной консультацией!