# Процессы работы команд

TIP

В этом разделе описаны процессы работы команд в Smart Education Lab ИТИС КФУ.

# Глоссарий

  • Teamlead - участник команды разработки проекта. Отвечает за распределение и выполнение задач командой в целом, а также за качество реализации проекта. Общается с заказчиком и заинтересованными лицами. Teamlead также принимает участие в разработке проекта.
  • Участники команды разработки - занимаются непосредственно разработкой и развитием проекта. Могут выполнять определенную роль (бекенд-разработчик, фронтенд-разработчик, дизайнер...) [на втором курсе все участники команды должны быть в первую очередь разработчиками]
  • Менеджер – помогает команде по организационным вопросам, отвечает за качество реализации проекта. Периодически проводит встречи с командой, чтобы узнать текущий статус развития проекта.
  • Руководители лаборатории - курируют развитие всех проектов в целом.

# Команда

  • В команде работают до 5 человек
  • В команде должен быть один Teamlead
  • У каждой команды будет менеджер, который будет контролировать процесс разработки и с которым можно будет обсуждать детали реализации проекта.
  • За качество (а значит и за тестирование проекта) отвечает Teamlead

# Процесс разработки

  1. В столбце Todo находятся задачи для выполнения в рамках данного спринта
  2. Исполнитель переносит задачу в Doing, когда начинает выполнение этой задачи
  3. Создается ветка для выполнения этой задачи (feature/TASK_NUMBER)
  4. После завершения выполнения задачи создается merge request
    1. в названии merge request пишется краткое описание изменений
    2. в конце добавляется номер задачи в формате #N (вместо N - номер задачи)
  5. Исполнитель ставит другого члена команды в качестве reviewer, другой член команды проверяет код
  6. После того, как код проверен (нажата кнопка "Approve"), исполнитель сливает мержреквест в основную ветку и проверяет, что проект после вливания задачи, успешно задеплоился на сервер
  7. Карточка задачи переносится в Test
  8. Функционал проверяется тимлидом. Карточка переносится в 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) или в любом другом похожем сервисе

# Презентации

# Документы