Технический долг и методы его оценки
Технический долг - одна из основных проблем, мешающих ритмичному и динамичному развитию проекта. Многие команды не оценивают свой технический долг, и затрудняются ответить на вопрос, что такое технический долг и как его можно измерить. В данном стриме посмотрим на простой бальный способ оценки, который подразумевает набор бинарных оценок (одна оценка - 1 балл).
Под техническим долгом в данном стриме мы будем понимать набор проблем, накопленных в проекте, которые имеют техническую природу (код, инфраструктура, архитектура), либо имеющие влияние на технические решения (менеджмент).
Места возникновения и причины технического долга
Duration: 10
Так как в организации за разные вопросы, связанные с разработкой, отвечают разные люди, то лучше разделить оценку технического долга по зонам ответственности, и устранять проблемы в рамках каждой зоны отдельно.
- Менеджмент (техруки, менеджеры, консультанты и т.д.);
- Проектная инфраструктура (девопсы, архитекторы);
- Кодовая инфраструктура (архитекторы);
- Кодовая база (программисты, архитекторы);
Причины: - неправильная оценка зрелости проекта; - микроменеджмент; - усложненная архитектура; - следование "модным" тенденциям; - пренебрежение технологией разработки; - слабая команда; - отсутствие опыта.
Чеклист "Менеджмента"
Duration: 10
- Стратегическое планирование (цели);
- Тактическое планирование (задачи);
- Приоритеты;
- Оценка трудоемкости и управление ресурсами;
- Оптимизация задач (не пытаться охватить необъятное);
- Контроль сроков;
- Эволюция (растет проект, улучшаются методы управления, развивается система оценок эффективности);
- Технология разработки;
- Обучение (повышение квалификации сотрудников);
- Командные практики (парное программирование, ревью кода и т.д.);
- Справедливое распределение обязанностей и принцип "равенства квалификации";
- Ротация задач внутри группы (отсутствие узкой специализации, там где это возможно. Могут быть исключения.).
Чеклист "Проектной инфраструктруы"
Duration: 10
- Безопасность;
- Резервное копирование;
- Мониторинг;
- Логирование (аудит действий);
- CI/CD;
- Отказоустойчивость;
- Технология разработки;
- Версионная чистота;
- Полнота инфраструктуры для решаемых задач (dev/stage/prod).
Чеклист "Кодовой инфраструктуры"
- Версионная чистота;
- Реализован принцип наименьшей зависимости;
- Архитектурная изоляция (например, собственные обертки или архитектурные границы);
- Патентная, лицензионная чистота;
- Стратегия "замены";
- Исключены "золотые/божественные" сотрудники.
Чеклист "Кодовой базы"
Duration: 10
- документирование;
- проектирование;
- версионирование;
- статический анализ (ручной/автоматизированный);
- тестирование;
- моделирование;
- исследование.