Какого размера была ваша команда разработки на предыдущем месте работы?

Ответ

На последнем проекте я работал в кросс-функциональной команде по методологии Scrum. Общий размер команды составлял 8 человек.

Состав и роли:

  1. Product Owner (PO) — 1 человек.
  2. Scrum Master (SM) — 1 человек (часто совмещал роль одного из разработчиков).
  3. Backend-разработчики (Java) — 3 человека.
  4. Frontend-разработчики (React) — 2 человека.
  5. QA Automation Engineer — 1 человек.

Организация работы:

  • Спринты: Длительность 2 недели.
  • Церемонии: Ежедневные стендапы, планирование спринта, ревью, ретроспектива.
  • Инструменты: Jira (таски), GitLab (CI/CD, код-ревью), Confluence (документация).

Пример процесса код-ревью, характерного для такой команды:

// Коллега оставляет комментарий в Merge Request (GitLab/GitHub):
// "Рассмотри возможность использовать @Transactional(readOnly = true) для методов только для чтения."
@Service
public class UserService {
    private final UserRepository userRepository;

    // После ревью метод был улучшен
    @Transactional(readOnly = true) // Добавлено по совету коллеги
    public UserDto getUserProfile(Long userId) {
        return userRepository.findDetailedProfileById(userId)
                .map(this::mapToDto)
                .orElseThrow(() -> new UserNotFoundException(userId));
    }
}

Такой размер команды (5-9 человек) считается оптимальным для Scrum, позволяя поддерживать эффективную коммуникацию и скорость разработки.

Ответ 18+ 🔞

Да ты посмотри, какие у нас тут коллективы собираются, просто ебать мои старые костыли! На прошлом проекте, значит, вкалывали мы по этой вашей Scrum-методологии, в кросс-функциональной команде. Всего народу — 8 человек, как раз по канону, не перебор и не недобор.

Кто был кто, и кто что делал:

  1. Product Owner (PO) — один чувак, главный по хотелкам. От него все фичи и приоритеты летели.
  2. Scrum Master (SM) — тоже один. Хотя частенько он был полупидором, совмещал свою роль с разработкой, потому что «экономия, блядь».
  3. Бэкендеры на Java — три самурая, которые всё на сервере крутили.
  4. Фронтендеры на React — два художника, которые кнопочки красиво рисовали.
  5. QA Automation — один человек, который писал скрипты, чтобы всё само падало и ломалось, пока мы спим.

Как мы работали, а точнее, выживали:

  • Спринты: По две недели, ровно столько, чтобы успеть накосячить и частично исправить.
  • Церемонии: Ежедневные стендапы, где все говорили «вчера работал, сегодня буду работать, проблем нет», а потом после созвона выяснялось, что всё горит. Плюс планирование, ревью и ретро — без этого никуда.
  • Инструменты: Jira, чтобы задачи терять, GitLab для священных войн в мердж-реквестах, и Confluence, где документация благополучно устаревала через день после написания.

Вот, например, как выглядело наше «культурное» общение в код-ревью, характерное для такой команды:

// Коллега оставляет комментарий в Merge Request (GitLab/GitHub):
// "Рассмотри возможность использовать @Transactional(readOnly = true) для методов только для чтения."
@Service
public class UserService {
    private final UserRepository userRepository;

    // После ревью метод был улучшен
    @Transactional(readOnly = true) // Добавлено по совету коллеги
    public UserDto getUserProfile(Long userId) {
        return userRepository.findDetailedProfileById(userId)
                .map(this::mapToDto)
                .orElseThrow(() -> new UserNotFoundException(userId));
    }
}

Вот так, с подсказки, код и становился чуть менее говённым. А размер команды в 5-9 человек, он и правда оптимальный, ёпта. Больше — уже сборище, где все друг другу мозги выносят на стендапах, меньше — не потянуть объём. В общем, золотая середина, хоть и с причудами.