# Процессы работы команд
TIP
В этом разделе описаны процессы работы команд в Smart Education Lab ИТИС КФУ.
# Глоссарий
- Teamlead - участник команды разработки проекта. Отвечает за распределение и выполнение задач командой в целом, а также за качество реализации проекта. Общается с заказчиком и заинтересованными лицами. Teamlead также принимает участие в разработке проекта.
- Участники команды разработки - занимаются непосредственно разработкой и развитием проекта. Могут выполнять определенную роль (бекенд-разработчик, фронтенд-разработчик, дизайнер...) [на втором курсе все участники команды должны быть в первую очередь разработчиками]
- Менеджер – помогает команде по организационным вопросам, отвечает за качество реализации проекта. Периодически проводит встречи с командой, чтобы узнать текущий статус развития проекта.
- Руководители лаборатории - курируют развитие всех проектов в целом.
# Команда
- В команде работают до 5 человек
- В команде должен быть один Teamlead
- У каждой команды будет менеджер, который будет контролировать процесс разработки и с которым можно будет обсуждать детали реализации проекта.
- За качество (а значит и за тестирование проекта) отвечает Teamlead
# Процесс разработки
- В столбце Todo находятся задачи для выполнения в рамках данного спринта
- Исполнитель переносит задачу в Doing, когда начинает выполнение этой задачи
- Создается ветка для выполнения этой задачи (feature/TASK_NUMBER)
- После завершения выполнения задачи создается merge request
- в названии merge request пишется краткое описание изменений
- в конце добавляется номер задачи в формате
#N
(вместоN
- номер задачи)
- Исполнитель ставит другого члена команды в качестве reviewer, другой член команды проверяет код
- После того, как код проверен (нажата кнопка "Approve"), исполнитель сливает мержреквест в основную ветку и проверяет, что проект после вливания задачи, успешно задеплоился на сервер
- Карточка задачи переносится в Test
- Функционал проверяется тимлидом. Карточка переносится в Done, если все работает, или в Todo с комментарием о проблемах.
# Задачи - Gitlab Issues (opens new window)
# Статусы
соответствуют столбцам на доске
- Backlog (Open) - планируется когда-либо (карточки должны стоять в порядке приоритетов выполнения: самое срочное и важное - сверху)
- Todo - планируется сделать на этой неделе (цвет
#6699cc
) - Doing - делается в данный момент (цвет
#009966
) - Test - тестируются (цвет
#eee600
) - Done (Closed) - готовы
Должна быть красная метка Bug (цвет #dc143c
) для учета багов в проекте.
Если метки не созданы в проекте, их нужно создать с цветами, указанными выше.
# Спринты
Работаем по спринтам длиной в неделю, т. е. каждую неделю вы должны показывать небольшое приращение вашего проекта.
Задачи, запланированные на спринт, ставятся в столбец Todo. В конце спринта все задачи по спринту должны быть в столбце Done.
# 1 человек - 1 неделя - (минимум) 1 задача
Задачи должны планироваться и выполняться по принципу: 1 человек - 1 неделя - (минимум) 1 задача. То есть каждый человек должен выполнить минимум одну задачу в течение недели.
Если возникают какие-то проблемы (не получается что-то сделать, не успеваете реализовать задачу в срок...), то об этом нужно сразу же сообщать в общий чат команды.
Объем этой задачи должен быть достаточным, чтобы эту задачу действительно можно было выполнять в течение недели (переименование поля, исправление опечатки и подобные простые вещи не считаются достаточным объемом работ).
Если все хорошо организовать, то работа в проекте не будет перегружать вас.
# Код - Gitlab (opens new window)
# Ветки
- develop - основная ветка разработки
- feature/(номер задачи) - ветка для разработки задачи
- master - production ветка (появится позже, когда будем разворачивать продакшн версии проектов, которыми будут пользоваться настоящие пользователи).
# Code style
Для проверки стиля кода в проекте нужно установить линтер. Конфигурация и инструкции по установке находятся в репозитории https://gitlab.com/kpfu-itis/tools (opens new window)
# CI/CD
Тестовая версия проекта должна быть развернута на платформе UniEnv c подключением автоматического деплоя с помощью Gitlab CI. Для начала вам нужно войти на платформу и заполнить заявку по вашему проекту. После одобрения заявки там появится информация о дальнейших шагах.
# Обсуждения – Telegram (opens new window)
У проектной команды должен быть чат в телеграм, в котором будет ментор и куратор проекта. С заказчиками может быть отдельный чат, если в этом есть необходимость.
Все вопросы, связанные с проектом, должны обсуждаться в общем чате, чтобы вся команда была в курсе происходящего. Если кто-то начинает обсуждать проектные вопросы в ЛС, нужно пересылать сообщения в общий чат и продолжать разговор там.
# Файлы - Google Drive (opens new window)
У проекта должна быть общая папка с файлами проекта.
Минимальный список необходимых документов по проекту:
- [ ] Требования - документ с описанием того, что нужно реализовать в проекте
- [ ] План реализации - список крупных задач для реализации с примерными датами
- [ ] Структура базы данных - схема БД, сделанная в draw.io (opens new window) или в любом другом похожем сервисе