Ответ
В большинстве команд использовался гибридный подход на основе Agile (Scrum/Kanban) с двухнедельными спринтами. Вот типичный цикл:
1. Планирование и отслеживание:
- Инструменты: Jira, Azure DevOps или Linear.
- Процесс: Бэклог продукта, планирование спринта с оценкой в story points, ежедневные стендапы.
2. Разработка и контроль качества:
- Git-стратегия: Упрощённый GitFlow или Trunk-Based Development с короткоживущими feature-ветками.
- Code Review: Обязательный процесс через Pull/Merge Requests в GitHub/GitLab. Акцент на читаемость, архитектуру и покрытие тестами.
- Тестирование: Многоуровневая пирамида: юнит-тесты (xUnit/NUnit), интеграционные тесты, сквозные (E2E) тесты для критических сценариев.
3. Интеграция и поставка (CI/CD):
- CI (Непрерывная интеграция): Автоматический запуск сборки и тестов при каждом пуше в ветку. Использовались GitHub Actions или Azure Pipelines.
# Пример шага CI в GitHub Actions для .NET - name: Run tests
run: dotnet test --configuration Release --verbosity normal
- CD (Непрерывная поставка): Автоматический деплой успешных сборок на staging-окружение. Продакшен-деплой часто был ручным с одобрением (approval).
- Стратегии деплоя: Blue-Green или Canary-деплой для минимизации даунтайма и рисков.
4. Мониторинг и обратная связь:
- Инструменты: Application Insights, Datadog или ELK-стек для логирования и метрик.
- Процесс: Пост-релизный мониторинг, сбор фидбека и ретроспективы спринта для постоянного улучшения процесса.
Ключевой тренд — автоматизация рутинных задач (тесты, сборка, деплой) и смещение ответственности разработчиков в сторону операционной надёжности (DevOps-культура).