Скорость написания кода никогда не была проблемой
Мираж оптимизации
Как сказал создатель теории ограничений - Элияху Голдратт
“Час, сэкономленный не на «бутылочном горлышке» — это мираж”
- оптимизация вне узких мест: улучшения работы инструментов, процессов и людей которые не являются ограничениями приводит к увеличению незавершенной работы и росту затрат;
- фокус на ограничениях: эффективность системы определяется производительностью самого слабого звена;
- использование ограничения: вместо оптимизаций нужно сначала определить и устранить бутылочное горлышко. Реальная экономия возникает только тогда, когда оптимизируется работа бутылочного горлышка.
Другими словами - когда вы оптимизируете этап, который не является узким местом, вы не получите более быструю систему. Вы получите более неэффективную систему.
Сколько времени инженеры тратят на код?
Различные исследования по анализу работы инженеров приводят показатели затрат времени на написание кода относительно других стадий работы: от ~10-16% до ~50-65% в небольших проектах на ранних стадиях. В исследовании Microsoft Research — “Time Warp: The Gap Between Developers’ Ideal vs Actual Workweeks in an AI-Driven Era” инженеры делятся оценкой в 11%. При этом в “идеальной неделе” они хотели бы тратить на написание кода - 20% и на технический дизайн - 15%.
Отчет Global Code Time Report от 2022 приводит медианную цифру - 52 минуты в день.
Проблемы по серьезнее
Мы несомненно получим значительный прирост производимого кода при внедрении ИИ агентов в процесс разработки, и как следствие приумножаем все узкие места, если не занимаемся вовремя их оптимизацией.
Теперь мы пишем больше кода, но создаем меньше качественного функционала.
Реальное узкое место
Качество гипотез и идей в наших беклогах! Вот то, что должно быть максимально оптимизировано - то что лежит далеко до начала процесса разработки. Часто мы слишком уверенны в целесообразности реализации этих задач.
Что делать?
Измеряем созданную ценность для ваших клиентов, а не количественные метрики. Частота релизов и количество фичей в них часто не коррелируют с ценностью которую получил или не получил ваш клиент.
Планирование - главный этап конвейера - мы должны получать ответы на вопросы:
- что мы делаем;
- зачем мы это делаем;
- что мы считаем успешным результатом;
- как мы это делаем;
до того как начнем реализацию.