Ответ
- Нечеткие или постоянно меняющиеся требования (Scope Creep). Работа по уточнению «что нужно сделать» начинает занимать больше времени, чем сама разработка.
- Медленные или бюрократизированные процессы. Долгое ожидание code review, сборки (build), развертывания или согласований.
- Накопленный технический долг без возможности его рефакторинга. Приходится постоянно «костылять» и обходить проблемы в legacy-коде.
- Микроменеджмент. Отсутствие доверия и автономии, излишний контроль над каждым шагом.
-
Нарушение договоренностей в команде. Например, коллега меняет публичный API библиотеки, не уведомив об этом и не обновив версию.
// Было: стабильный контракт public void ProcessOrder(Order order) { ... } // Стало: ломающее изменение без коммуникации public void ProcessOrder(Order order, bool isPriority) { ... } - Перегруженный график встреч (meeting hell). Когда митинги не оставляют непрерывного времени для глубокой работы над кодом.
- Игнорирование лучших практик и стандартов. Отсутствие unit-тестов, проверки кода (code review), неправильное использование асинхронности (
async/await).
Как смягчить:
- Внедрять и соблюдать соглашения команды (conventions).
- Автоматизировать рутину: CI/CD, линтеры, форматтеры кода.
- Регулярно проводить ретроспективы, чтобы открыто обсуждать боли и находить решения.