Какой процесс разработки (SDLC) использовался на вашем предыдущем проекте?

«Какой процесс разработки (SDLC) использовался на вашем предыдущем проекте?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Мы применяли гибридную методологию на основе Scrum с элементами Kanban.

Ключевые практики и этапы:

  1. Планирование:
    • Двухнедельные спринты.
    • Регулярный backlog refinement и оценка задач в story points.
  2. Разработка:
    • Ветвление по модели Git Flow (feature branches).
    • Обязательное code review через Pull Requests (GitHub/GitLab).
    • Принцип "ветка в день — пул-реквест в день".
  3. Интеграция и доставка (CI/CD):
    • Сборка и прогон тестов на каждое изменение (Jenkins/GitLab CI).
    • Автоматическое развертывание на staging-окружение.
  4. Тестирование:
    • Разработчики: модульные (JUnit) и интеграционные тесты.
    • QA-инженеры: ручное и автоматизированное тестирование (Selenium).
  5. Релиз:
    • Релизная ветка создавалась в конце спринта.
    • Развертывание на production выполнялось по расписанию.

Пример рабочего процесса для задачи:

# 1. Создание ветки для новой функциональности
git checkout -b feature/JIRA-123-add-payment

# 2. Разработка с тестами (TDD подход)
// PaymentService.java
public class PaymentService {
    public boolean process(PaymentRequest request) { ... }
}
// PaymentServiceTest.java
@Test
public void process_ValidRequest_ReturnsTrue() { ... }

# 3. Пуш, создание Pull Request, прохождение ревью и CI-проверок.
# 4. Мердж в ветку `develop` после аппрува.

Дополнительные активности: Ежедневные стендапы, планирование спринта, ретроспектива, парное программирование для сложных задач.