+1 455 290 14 74

Технократичные процессы разработки

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

Сегодня разговор пойдет о том, как «Технократия» стала такой, какая она есть, и как протекает рабочий процесс в компании на данный момент.

Основой всей деятельности стал один из Agile подходов – Disciplined Agile Delivery (DAD). Причиной выбора именно этой методологии среди всего множества гибких подходов стало наличие ряда внешних и уже существующих внутренних аспектов работы компании. В число таких ограничений вошли:

  • Виды проектов. Большинство проектов выполняется на основе технического задания или заранее фиксированного набора функциональных требований. В то же время, некоторые проекты используют гибкий итеративно-инкрементальный подход;
  • Наличие внутренних и внешних вех в процессе реализации проектов;
  • Автоматизация процесса доставки продукта.

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

%d0%b2%d1%81%d0%b5-%d1%8d%d1%82%d0%b8-%d0%b4%d0%b5%d0%b9%d1%81%d1%82%d0%b2%d0%b8%d1%8f-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d1%8e%d1%82%d1%81%d1%8f-%d0%b2-%d1%80%d0%b0%d0%bc%d0%ba%d0%b0%d1%85

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

  • Формирование требований — один из важнейших этапов в процессе создания продукта. Очень важно с самого начала разделять видение продукта с заказчиком. Для этого мы используем Customer development (принцип развития клиента). В данном подходе прежде всего требуется выявить потребность клиента, а после работать над тем, что решает поставленную задачу и в дальнейшем итеративно развивать продукт, опираясь на общее видение команды и клиента.
  • На основе базовых требований появляется понятие о тогда м, какие направления разработки будут задействованы и происходит определение команды разработки.
  • Когда команда «укомплектована», все участники собираются и проводят детальная оценку проекта. Это необходимо для того, чтобы сориентировать клиента со сроками реализации, а также для оценки стоимости проекта.
  • На основе оценки и проектной документации производится оценка рисков. Она содержит вероятности рисков, их влияние на проект и методы избегания/устранения. Оценка рисков необходима, поскольку они могут влиять на конечную стоимость проекта и длительность его реализации.
  • Поскольку большинство клиентов предпочитают получать промежуточные результаты, формируется календарный план проекта для отслеживания ожидаемых результатов, а также для учета ресурсов самой компании.

Требования и команда разработки сформированы — пора приступать к разработке. Фазой разработки является вторая фаза DAD. Особенностью данной фазы является то, что она не имеет жесткого регламента проведения работ и может использовать любой из более мелких Agile-подходов, например Scrum или eXtreme Programming. Это позволяет нам сделать процесс разработки более гибким как для заказчика, так и для команды.

%d0%b2-%d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%ba%d1%80%d0%b0%d1%82%d0%b8%d0%b8-%d0%b2-%d1%80%d0%b0%d0%bc%d0%ba%d0%b0%d1%85-%d0%b2%d1%82%d0%be%d1%80%d0%be%d0%b9-%d1%84%d0%b0%d0%b7%d1%8b-dad-%d0%bc%d1%8b

В Технократии, в рамках второй фазы DAD, мы используем Scrum. В начале этапа разработки в команде происходит распределение ролей, тем самым разграничивая зоны ответственности участников команды. Это необходимо для того, чтобы точно понимать кто несет ответственность за каждый аспект создания продукта. Далее, основываясь на уже сформированном календарном плане, происходит разбиение разработки на итерации (спринты). В нашей компании мы приняли номинальную длину итерации равную одной неделе, но это значение может меняться в зависимости от нужд команды или особенностей проекта.

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

Фаза передачи. Это обязательный этап, поскольку необходимо убедиться, что работа выполнена правильно и самое главное — качественно. Особенностью этого этапа также является большая степень автоматизации, то есть использование систем CI\CD для ускорения процесса тестирования и доставки конечного продукта. При идеальном раскладе данная фаза должна проходить без вовлечения разработчиков или devops-инженера, либо с их минимальной вовлеченностью. Помимо этого в рамках фазы передачи команда проекта совместно готовит документацию, включающую инструкцию по развертке, настройке проекта, а также краткое описание реализованного функционала.

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


Contact us

Приложить файл

Server is not available at the moment. Please try again later.

Check the fields and try again.

Your message was successfully sent. We will contact you shortly!