🕺
Team Playbook
  • 📄Team Playbook
  • 👯Команда
    • Найм
      • Формат интервью
      • DevOps-инженер
    • Онбординг
      • Дата выхода – Сотрудник
    • Отпуск
    • Оффбординг
      • Дата увольнения – Сотрудник
    • Ментальное здоровье
  • ☯️Принципы
    • 🎴Асинхронная работа
  • 🤝Коммуникация
    • 🫠Встречи и звонки
    • 📃RFCs
  • 🏗️Инженерные практики
    • 🚤Скорость разработки
Powered by GitBook
On this page
  1. Инженерные практики

Скорость разработки

Developer velocity – это скорость и эффективность, с которой команда разработки может создавать, изменять и развертывать качественный код.

Last updated 1 year ago

Velocity – это не всегда про измеримые метрики и включает в себя внедрение инженерных практик, автоматизацию рутины, коммуникацию в командах и непрерывное обучение.

Скорость разработки напрямую влияет на производственный цикл разработки программного обеспечения – Software Development Lifecycle (SDLC).

Чеклист

  • Технический стек представляет собой ограниченное кол-во core-языков и технологий → нет .

  • В разработке используется ограниченное кол-во сторонних сервисов, что позволяет митигировать риски, связанные с вендорами; предпочтение отдается решениям с открытым исходным кодом (self-hosted) и сервисам с хорошей документаций, поддержкой и возможностью тестирования.

  • Реализовано быстрое развертывание локальных окружений для разработчиков через Docker Compose и др. инструменты.

  • Разработчики могут собирать и тестировать сборки (или большую часть сервисов) локально.

  • Интеграционные тесты могут быть запущены локально.

  • Разработчики пишут тесты, которые , а не на проценте его покрытия.

  • Инженеры (включая QA) могут легко развернуть необходимую инфраструктуру для разработки и тестирования изменений.

  • Быстрый цикл разработки

    • Фронтенд: hot-reload

    • Бэкенд: инкрементальные быстрый билды

    • Для маленьких команд: оптимизированный BuildKit Dockerfile

    • Для больших команд: настроеная система воспроизводимых (reproducible) сборок

  • Отсутствие сабмодулей при работе с Git – .

  • Воспроизводимая сборка пакетов и/или Docker-образов.

  • Стандартизированные подходы к именованию веток, сообщению коммитов и merge-реквестам, которые позволяют поддерживать либо линейную историю, либо держать контекст в feature-ветках и оперативно откатывать изменения.

  • Стандартизированный и быстрый процесс ревью кода.

  • Автоматизация посредством CI/CD пайплайнов, возможность смотреть логи задач.

  • Возможность развертывания окружений для merge-реквестов.

  • main (master) ветка всегда готова к релизу.

  • Автоматизированные сборки и релизы.

  • Адекватное время развертывания изменений и сервисов на продакшене: для небольших сервисов – до 5 минут, для небольших монолитов – до 15 минут; для средних и больших проектов и команд – до часа.

  • Доступные всей команде инструменты мониторинга и уведомлений.

  • Инфраструктура как код (IaC), которая позволяет быстро развертывать новые окружения и версионировать изменения.

🏗️
🚤
проблемы «зоопарка» технологий
фокусируются на качестве кода и его поддержке
баланс монорепозиториев и микросервисов