Спасибо! Мы свяжемся с Вами в ближайшее время.
Начать проект
Процесс разработки
Процесс первичного проектирования, разработки, и внедрения it-решений в нашей компании
6 минут на чтение
Для первичной разработки мы используем адаптированный вариант методологии Rational Unified Process. Методология использует итеративную модель разработки. Длительность итерации зависит от фазы и специфики проекта и может длиться от 2 до 6 недель. По результатам итерации должны быть достигнуты промежуточные цели, созданы проектные артефакты, на фазе разработки — промежуточные функционирующие релизы. Итерации не рассматриваются сами по себе (как, например «спринты» при поддержке проекта) и являются внутренней вехой проекта по разработке.
Работа над проектом осуществляется в рамках нескольких основных и поддерживающих процессов, за каждый из которых отвечает свой сотрудник.
У процессов нет жестких ограничений, т.к. в кастомных проектах в процессе производства может возникнуть необходимость доработки требований, дополнительного анализа или других работ. Интенсивность процессов производства зависит от фазы проекта и изображена на графике ниже.
Фазы разработки
Первичная разработка включает в себя весь цикл работ для реализации проекта от высокоуровневых требований до ввода в эксплуатацию.
В рамках первичной разработки прорабатывается концептуальная часть проекта, а также проектируется и разрабатывается техническая часть, позволяющая в дальнейшем поддерживать и развивать проект с минимальными издержками на покрытие технического долга.
- Основные процессы
- Управление требованиями
- Техническое проектирование
- Интерфейс (UI/UX)
- Программирование
- Стабилизация и тестирование
- Развертывание и внедрение
- Инфраструктура
- Поддерживающие процессы
- Управление проектом
- Управление продуктом
№1
№2
№N
№N+1
№N+2
№M
№M+1
Начальная стадия
Начальная стадия зачастую осуществляется еще до подписания основного договора и заключается в первичном погружении в проект, формировании видения проекта.
На этом этапе собираются общие требования к проекту, формируется перечень основных функциональных (начальная версия модели прецедентов) и нефункциональных требований, оцениваются риски и объем работ для реализации проекта.
По итогам начальной стадии принимается решение о варианте сотрудничества (фиксированная оценка, отдельный договор на проектирование или аренда команды).
Результатом начальной стадии является предварительное техническое задание (видение и границы проекта), на основе которого заключается договор на полную разработку или проектирование системы.
Проектирование
Проектирование – один из ключевых этапов работ над проектом, т.к. на этом этапе формируется детальное понимание конечного продукта.
На этом этапе осуществляется подробная проработка и документирование изначальных требований, включая детальное описание для большинства функциональных требований (прецедентов использования), а также прототипирование пользовательских интерфейсов. Если в проекте это предусмотрено, параллельно разрабатывается дизайн-концепция пользовательского интерфейса.
Разработка
На фазе разработки осуществляется основная работа по программированию и тестированию продукта. В эти работы входят:
- Техническое проектирование (при комплексной разработке начинается на этапе проектирование);
- Написание программного кода для систем, задействованных в проекте;
- Промежуточное тестирование внутренних релизов;
- Подготовка серверной инфраструктуры для тестовой и эксплуатационной площадок;
- Разработка комплекта дизайн-макетов пользовательского интерфейса и их верстка;
Ближе к завершению параллельно начинается работа QA-специалистов и тестировщиков, которые готовят необходимую тестовую документацию и осуществляют тестирование по мере готовности элементов системы. Работа по стабилизации продолжается далее и в процессе внедрения.
Результатом фазы разработки является альфа-версия продукта.
Внедрение (ввод в эксплуатацию)
Внедрение – это завершающий этап работ в рамках первичной разработки проекта.
Внедрение включает сразу несколько как технических, так и организационных процессов:
- Финальная подготовка эксплуатационной площадки, ввод в эксплуатацию;
- Если в проекте есть мобильные приложения – публикация приложений в маркетах;
- Подготовка пользовательских инструкций;
На этапе внедрения также продолжаются работы по стабилизации и тестированию, в том числе эксплуатационной (production) версии.
Результатам этапа внедрения является начало эксплуатации продукта.
Процессы производства
Работы, необходимые для постановки задачи, оценки объема и формирования подробного видения продукта при первом релизе и на ближайшее будущее.
Задачи
- Сбор и анализ требований
- Формулирование функциональных требований и критериев приемки
- Формулирование нефункциональных требований
- Формулирование интеграционных требований
- Формирование модели данных
- Прототипирование пользовательских интерфейсов
Артефакты
- Спецификация требований к ПО (wiki-сайт)
- Функциональные требования
- Модель данных
- Интеграционные требования
- Нефункциональные требования
- Прототипы пользовательских интерфейсов
Формирование технического проекта, включающего описание программной логики, элементов и компонентов (сервисы, репозитории, модели, контроллеры и т.д.), принципов межсистемного взаимодействия, серверной архитектуры (инфраструктуры) и т.д.
Основная задача технического проектирования — сформировать модель системы на уровне программных единиц и формализовать их взаимодействия. Для удобства дальнейшей поддержки и обслуживания модель должна позволять отслеживать связь требований с программными элементами, задействованными в ее реализации.
Артефакты
- Технический проект
- Структура базы данных
Разработка дизайн-концепции пользовательского интерфейса и разработка полного комплекта макетов для экранов в соответствии с прототипами.
Артефакты
- Дизайн-концепция
- Комплект дизайн-макетов
Процесс разработки кода включает широкий спектр работ, результатом которых является работающее ПО. Разработка кода осуществляется на основе следующих артефактов:
- Спецификация требований к ПО
- Прототипы пользовательского интерфейса
- Технический проект
- Комплект дизайн-макетов (процессы верстки и front-end разработки)
При разработке внутри команды осуществляется интенсивная коммуникация, что позволяет сэкономить время.
В зависимости от типа проекта, разработка может вестись параллельно для разных систем разными по специализации разработчиками.
Этап стабилизации и тестирования, фактически является продолжением этапа разработки, но с введением в работе QA-специалистов. Обычно этап стабилизации начинается за 1-2 месяца до завершения проекта, когда есть готовность порядка 80% работ по разработке кода.
На этапе тестирования и стабилизации осуществляется ручное и автоматизированное функциональное тестирование, тестирование API и другие процессы проверки результатов. Также готовятся инструменты для формализации тестирования: тест-кейсы, чек-листы и т.д.
QA-специалисты и далее продолжают работать с проектом.
На этапе развертывания и внедрения осуществляется работа публикации и финальной подготовке эксплуатационной и тестовых версий. Если в проекте есть мобильные приложения, на этом этапе осуществляется их публикация в маркетах.
В зависимости от масштабов и сложности проекта, работы по обеспечению серверной инфраструктуры могут занимать от нескольких человеко-дней до нескольких человеко-месяцев.
Для MVP версии эти работы обычно минимальны, т.к. нет требований по обеспечению высоких нагрузок и отказоустойчивости. После релиза, по мере роста проекта эти требования могут появиться и это повлечет рост объема работ по серверной инфраструктуре.
Административное управление проектом:
- Подготовка проектной среды
- Формирование команды
- Планирование и контроль задач
- Административные задачи (выставление счетов, актов и т.д.)
Управление и контроль концептуальной и смысловой части разрабатываемого продукта, поддержка требований и модели разрабатываемого ПО. Это множество различных задач, у которых есть две ключевые цели:
- Сохранить фокус на бизнес-задачах клиента в процессе всей разработки от старта до внедрения
- Внести дополнительную ценность в продукт за счет опыта компании, современных решений и т.д.