- PVSM.RU - https://www.pvsm.ru -
Это последняя статья из моего цикла. В ней будет много о менеджерской и организационной сторонах разработки.
Рынок и игроки очень требовательны к частоте обновлений. Поэтому мы релизимся раз в 3 недели. Конечно, чем чаще – тем лучше, но у вас должны быть отлажены все процессы разработки. Кроме того, нужно накопить достаточно функциональности для релиза. Такой темп мы выстроили благодаря feature-командам.
Когда мы начинали разработку проекта, стремились к тому, чтобы клиентский разработчик мог взять на себя любую задачу. Потом мы поняли, что каждый сотрудник одни задачи выполняет лучше, а другие хуже. Лид-разработчик начал назначать задачи по специализации. Такой подход взяла себе и QA-команда.
Через полтора года такой работы команда стала выглядеть так:
15 программистов;
9 тестировщиков;
3 Technical Artists.
Мы стали замечать, что и в таком подходе есть свои минусы. Разработчики перестали ощущать влияние на проект, потому что выполняли однообразные задачи. Профессиональное развитие тоже замедлилось – редко приходилось делать нетипичные задачи. Появились какие-то участки «своего» кода и боязнь вносить изменения в код, который поддерживает другой разработчик. Лиды команд тратили много времени на распределение задач, ревью и консультации.
Мы решили кардинально изменить подход к разработке. Создали подкоманды, способные решать задачи любой сложности. Это обеспечило замкнутый цикл разработки.
Проанализировав специализации разработчиков, мы выделили такие направления:
После этого мы равномерно поделили команду разработчиков на 3 feature-команды. Добавили по равному количеству QA, по одному Technical Artist, изменили рабочий процесс в Jira и описали правила работы с таким подходом.
Менеджер проектов распределяет между feature-командами задачи, которые уже проанализировали и описали project-координаторы. Они уже соответствуют требованиям разработчиков. После этого менеджеру нужно отметить задачи, которые необходимы для следующего релиза. Потом – уточнить требования по срокам, организовать по приоритетности и следить, чтобы каждой команде было чем заняться.
Команды сами определяют, кого выделять для реализации задачи. Они сами решают необходимость командных активностей, проводят тестирование и code review, отдавая на выходе уже готовые и протестированные задачи.
Плюсы подхода:
Недостатки:
Раньше мы использовали SVN. Он не доставлял никаких проблем и всех устраивал, если не нарушался привычный вокрфлоу и все придерживались здравого смысла. Периодически возникали проблемы при мёрджах, связанные с потерянными ревизиям. Для их решения требовалось довольно много времени.
Параллельно с созданием feature-команд мы перешли на git и ввели GitFlow. Суть нововведений заключается в строгих правилах работы с ветками:
Подробнее о таком подходе можно почитать здесь. [1]
У Unity есть проблема со слиянием сериализованных ресурсов. У нас она усугубляется повсеместным использованием PrefabEvolution. К сожалению, хорошего решения нам найти не удалось. Стараемся не работать над ресурсами, которые могут конфликтовать. Например, атласы NGUI сразу коммитим в стабильную ветку разработки, и она расходится по всем бранчам. Из-за этого в билде может быть неиспользуемая графика, пока не будут замёрджены feature-бранчи.
Мои предыдущие статьи можно найти здесь:
Часть 1 [2]
Часть 2 [3]
Часть 3 [4]
Часть 4 [5]
Часть 5 [6]
Автор: Plarium
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/262645
Ссылки в тексте:
[1] можно почитать здесь.: http://nvie.com/posts/a-successful-git-branching-model/
[2] Часть 1: https://habrahabr.ru/company/plarium/blog/317976/
[3] Часть 2: https://habrahabr.ru/company/plarium/blog/318966/
[4] Часть 3: https://habrahabr.ru/company/plarium/blog/320814/
[5] Часть 4: https://habrahabr.ru/company/plarium/blog/323448/
[6] Часть 5: https://habrahabr.ru/company/plarium/blog/327406/
[7] Источник: https://habrahabr.ru/post/336254/
Нажмите здесь для печати.