К основному контенту

Как мы выстроили процесс разработки. Часть 1

Известно, что наш проект развивается уже не первый год. Несмотря на то что всё равно всё только начинается, оценить то, чего мы за эти годы достигли, можно, поработав в Renga 2.7.
Годы разработки идут, и нам есть чем поделиться не только с нашими пользователями, но и с коллегами-разработчиками. Методом проб и ошибок мы выстроили на данный момент довольно слаженный процесс. Как раз о нём расскажет наш процессный гуру - Даниил Мусиенко.
Каждая вторая компания, которая разрабатывает программное обеспечение, говорит, что работает по Agile. При этом Agile в каждой из них разный. Мы не исключение.
Мы работаем по Agile. Ниже я расскажу, что под этим подразумеваю. Сразу оговорюсь, я буду описывать идеальную картину. Это то, к чему мы стремимся, то, что мы считаем за эталон. Но получается так работать не всегда. В первой статье я расскажу, как идет разработка наших продуктов во времени.
Весь наш процесс разработки состоит из повторяющихся циклов. Есть большие циклы, в каждом из которых циклы поменьше.

Год

Самый большой цикл - год. На каждый год у нас запланировано по 4 новые версии приложений - Renga Architecture, Renga Structure.

Релиз

Следующим циклом за годом идет цикл релиза - разработка новой версии приложений.

Каждый релиз начинается с планирования. На нём собираются программисты, аналитики, тестировщики, тех.писатели, тех.поддержка, дизайнеры - все, кто причастен к разработке. Целью планирования является:
  • получить общее представление о том, что появится в следующей версии приложения;
  • понять почему выбрана эта функциональность;
  • распределить разработку новых функций по командам.
Планирование
После планирования начинается разработка, она состоит из 6-7 итераций (об итерациях расскажу ниже). После разработки идет неделя предрелизного тестирования. В этот период проводится финальное тестирование и отладка приложений. Затем происходит выпуск Renga Architecture и Renga Structure. По сути, мы просто выкладываем инсталляторы в открытый доступ. Последним этапом в цикле релиза идет ретроспектива. На ней, также как и на планировании, собираются все, кто причастен к разработке. Мы вспоминаем как прошел релиз, "хвастаемся" кто что сделал, анализируем с какими проблемами столкнулись, решаем как не допустить появления этих проблем в следующих релизах.

Ретроспектива релиза. Команда вспоминает, что они делали в релиз.

Итерация

Итерация - еще более короткий цикл чем цикл релиза. Итерация длится 12 рабочих дней.

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

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

День

Самым коротким циклом является день.

Каждый день у каждой команды есть свой daily stand up. Это, короткая встреча команды, которая проводится стоя, чтобы не затягивать. На ней участники команды рассказывают друг другу, что они делали, что будут делать, с какими проблемами столкнулись.
Такая короткая встреча:
  • помогает быстро решить проблемы. Например, за счет того, что кто-то уже сталкивался с такой проблемой и знает решение;
  • координирует действия членов команды;
  • дает представление о том, успевает ли команда сделать запланированные задачи за итерацию или нет;
В этой статье я рассказал о том, как мы разрабатываем Renga во времени. В следующей статье я расскажу о том, как мы работаем в командах.

Комментарии

Sabrus написал(а)…
за месяц ни одного коммента...) и просмотров без моего наверно тоже...) У меня глобальный вопрос - на чем зиждется сие чудо Ренга? С3D? RGK?
Ro-man написал(а)…
делаете очень нужное дело! удачи!! не переживайте - скоро будет много просмотров ;)
Разработчики Renga написал(а)…
Спасибо большое, Роман! Работаем :)

Популярные сообщения из этого блога

Версионирование Renga

Хотим поговорить о версиях Renga. Кто-то говорит, что работает на версии 5, а кто-то на версии 7. Иногда встречаются и те, кто работает на версии 4. Давайте разбираться, как версионируется Renga, и можно ли “работать на версии 5”.

III Renga-хакатон

В конце 2023 года среди разработчиков Renga и Pilot прошёл III Renga-хакатон, чтобы немного встряхнуться, продумать и воплотить собственные идеи, связанные с развитием систем. Такие мероприятия уже проводились в 2018 и 2020 годах. Как и в предыдущие разы, по условиям Хакатона можно было предложить что-то полезное для пользователей или решать внутренние задачи, упрощающие и ускоряющие разработку. На реализацию идей выделялось два дня. На третий день результаты работы были представлены командам. Вот темы, которые затронули разработчики в этот раз. Умы разработчиков не перестаёт волновать тестирование Renga и покрытие кода тестами, на данный момент работоспособность выпущенной функциональности Renga проверяют 14,5 тыс. тестов, много это или мало? На Хакатоне Антон Соколов и Сергей Никифоров проводили исследование возможности измерения покрытия кода тестами, а Георгий Басси придумал и реализовал новый способ фильтрации тестов в специальной утилите. Производи...

Фильтры в Renga

Фильтры в Renga — необходимый инструмент для работы с моделью и получения чертежей. Фильтры позволяют отобрать из всех объектов только те, которые вам нужны в любом виде модели, в спецификации или при оформлении чертежа, а также при работе во вкладках инженерных систем. Анализируя проекты, выполненные в Renga, мы заметили, что в них либо злоупотребляют фильтрами, либо пренебрегают ими. Если в ваших проектах много фильтров, то вам пригодится функциональность, которую мы готовим к выходу и совсем скоро выпустим. О новинках ниже, а сейчас рассмотрим, как работают фильтры в Renga. Каждый фильтр может состоять из одной или нескольких групп фильтрации, каждая из которых, в свою очередь, может работать только с одним типом объекта. С помощью операторов вы можете задать любое условие выбора на основе числовых, булевых, строковых данных, а также уникального идентификатора объекта. Одна группа всегда отбирает объекты, которые соответствуют всем правилам. А две ...