В этой статье мы рассказываем о том, что входит в жизненный цикл проекта в IT, будь то приложение или система. Чтобы передать наше видение, мы поговорили с главными разработчиками Azoft.
Разработка успешного продукта — сложный многоступенчатый процесс. Только в кино начинающие бизнесмены придумывают крутую идею, попивая кофе из Starbucks. По сюжету, они играючи находят инвестиции и выпускают приложение, которое захватывает мир. В реальности всё не так просто.
Создание и развитие любого продукта происходит постепенно, проходя ряд обязательных этапов, часть из которых может идти параллельно. Приложениям, которые вы любите, и на которые охотно тратите время, понадобился не один год, чтобы обрести текущий визуальный облик и наполнение. Едва ли их разработчики остановятся на достигнутом и перестанут добавлять улучшения.
Жизненный цикл проекта в IT — непрерывный процесс, который заканчивается лишь, когда его решают закрыть. Если вы придумали идею продукта и обратились к команде разработчиков, приготовьтесь, впереди много работы. О Силиконовой долине помечтаем позже. : )
Урок 3 — Жизненный цикл проекта. Этапы проекта
Как разработчики, мы нередко сталкиваемся с непониманием фаз жизненного цикла продуктов.
Приходится опровергать представление о том, что после релиза проекта разработка завершена. По опыту знаем, что в первые месяцы жизни продукта может понадобиться допилить или переделать функционал, пофиксить баги.
Чтобы передать наше видение жизненного цикла разработки, мы поговорили с главными разработчиками Azoft и попросили поделиться представлениями об этом. Текст статьи будет полезен и для бизнеса, и для наших коллег.
Итак, что же входит в жизненный цикл продукта?
Жизненный цикл программного обеспечения (Software Development Life Cycle, SDLC) — условная схема, включающая фазы создания программного обеспечения. Цикл разработки предлагает шаблон, использование которого облегчает проектирование, создание и выпуск качественного программного обеспечения. На выходе должен получиться экономически выгодный продукт, отвечающий требованиям заказчика.
В структуру цикла разработки входят все этапы жизни программного обеспечения от его рождения в виде идеи до условной «смерти» (этапы до разработки, во время разработки и после неё).
Последовательность фаз, из которых состоит жизненный цикл
Погружение команды в бизнес-контекст — важная фаза цикла разработки программного обеспечения, с которой начинается рабочий процесс. Клиент должен понимать, что он тратит время и ресурсы на этом этапе не просто так. Ему важно, чтобы команда проекта погрузилась в детали бизнеса и тщательнее разобралась, для какого рынка готовится продукт, как сделать его по-настоящему полезным. Это актуально для любой отрасли.
Сбор и анализ требований — одна из наиболее важных фаз SDLC. Она выполняется при участии клиентов, отдела продаж и отдела аналитики. На этом этапе важно максимально точно и однозначно определить требования к проекту и для команды проекта, и для бизнеса. Аналитики помогают определить конечные цели и задачи работы. Подробнее об этом этапе вы можете прочитать в нашей статье.
Жизненный цикл проекта
Дизайн. К этому этапу переходят, когда есть четкое понимание целей проекта, и достаточно подробно сформулированы его требования. На основании требований обычно предлагается несколько подходов к проектированию архитектуры продукта. Внутренний дизайн всех модулей архитектуры должен быть четко определен и описан в деталях.
Реализация или кодирование. Это этап непосредственной разработки системы — написание кода на выбранном с учётом стоящих задач языке программирования.
Тестирование. Система запускается в бой. Этот этап сопровождается проверкой работоспособности системы, выявлением, фиксацией и исправлением багов до тех пор, пока продукт не достигнет требуемых стандартов качества. В этот период обычно возникает много несостыковок, белых пятен, багов. Их нужно оперативно устранить.
Внедрение. Когда продукт протестирован и готов к развертыванию, его выпускают на рынке. Иногда развертывание продукта происходит последовательно в рамках бизнес-стратегии клиента. Продукт может быть сначала выпущен в ограниченном сегменте и протестирован в реальной бизнес-среде, затем, основываясь на отзывах, он может быть выпущен как есть либо с предлагаемыми улучшениями.
Сопровождение. На этом этапе жизненного цикла осуществляется периодическая техническая поддержка системы. Это позволяет убедиться, что система не устарела и отвечает современным стандартам и технологиям. Сюда входит постоянная оценка производительности и апдейты компонентов.
Помимо основных указанных фаз, мы выделяем и фазу маркетингового продвижения. Маркетинговая деятельность является сквозной и проводится на протяжении всего жизненного цикла проекта. Клиенту важно создать осведомленность о продукте среди его целевой аудитории, привлечь потенциальных пользователей. Ни для кого не секрет, что клиентская база нарабатывается постепенно.
Все процессы разработки типовые, но подходы к работе бывают разные. И в зависимости от подхода определяется то, какой длины будут этапы, будут ли они делаться последовательно или итеративно, и как их будут выполнять.
Почему важно правильно воспринимать жизненный цикл продукта
1.4. Жизненный цикл и этапы разработки программного обеспечения
Жизненным циклом программного обеспечения называют период от момента появления идеи создания некоторого программного обеспечения до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение.
Состав процессов жизненного цикла регламентируется международным стандартом ISO/IEC 12207: 1995 «Information Technologe — Software Life Cycle Processes» («Информационные технологии — Процессы жизненного цикла программного обеспечения»). ISO — International Organization for Standardization — Международная организация по стандартизации. IEC -International Electrotechnical Commission — Международная комиссия по электротехнике.
Этот стандарт описывает структуру жизненного цикла программного обеспечения и его процессы. Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. На рис. 1.9 представлены процессы жизненного цикла по указанному стандарту. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами.
Процесс разработки (development process) в соответствии со стандартом предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию программного обеспечения и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, а также подготовку материалов, необходи-
Рис. 1.9. Структура процессов жизненного цикла программного
Что такое SDLC? Этапы, методология и процессы жизненного цикла программного обеспечения
Цитируя автора книги Managing Information Technology Projects Джеймса Тейлора, «жизненный цикл проекта охватывает всю деятельность проекта». Задачей же разработки ПО является выполнение требований продукта. Если вы хотите научиться создавать и выпускать высококачественное ПО, вам придется следовать плану. Со слов Тейлора, вашей целью должен стать всесторонний анализ деятельности проекта и контроля каждого этапа его разработки. Вот только с чего именно начать?
Ответить можно так: направить ваш рабочий процесс в верном направлении поможет подходящий фреймворк. В наши дни довольно сильным и популярным фреймворком является SDLC – жизненный цикл программного обеспечения.
Принципы работы SDLC и почему им пользуются
На диаграмме ниже можно ознакомиться с шестью основными этапами SDLC.
В целом, SDLC это такой замкнутый цикл, в котором каждый этап влияет на действия в последующих и дает перспективные указания на будущее. Для получения ответов на конкретные вопросы и обеспечения согласованности вашего процесса разработки все шесть этапов стараются эффективно и последовательно друг на друга влиять.
Я постараюсь абстрагироваться от тонкостей и предоставить общие примеры, подходящие для студентов и разработчиков ПО. Например, если вы по аналогии с Zoomshift пробуете создать приложение, рассчитанное на работников с почасовой оплатой, или приложение для учета времени, начать вам нужно будет с этапа анализа требований.
На этом самом основном уровне вы сможете понять каковы должны быть требования к работникам в вопросах учета времени и труда, для чего полезно будет опросить как самих работников, так и их руководящих менеджеров. Так же для большего понимания проблем текущих приложений в области вы можете протестировать ваши решения на рынке, а создание диаграмм, графиков и в целом ведение записей поможет вам более глубоко понимать количественную и качественную обратную связь. Только после осознания этих критических особенностей вы будете готовы перейти к следующему этапу SDLC – планированию.
Фаза анализа требований может оказаться очень утомительной, но проходя через эти шаги, вы добиваетесь множества результатов: снижаете время выхода продукта на рынок, обеспечиваете большую его производительность, экономите бюджет и повышаете вероятность вхождения продукта на рынок.