The Infinite Software Crisis (Рубрика AI)
Посмотрел на выходных интересный доклад Джейка Нэйшнса (Jake Nations), staff engineer из Netflix. Джейк занимается встраиванием AI инструментов в процессы разработки в Netflix, а в этом докладе он делится трезвым взглядом инженера о том, как генеративный код ломает архитектуру. Если говорить про ключевые тезисы, то они такие
1️⃣ Бесконечный кризис софта Исторически (от Дейкстры в 60-х до Cloud Native) каждый новый инструмент обещал решить проблему сложности, но лишь позволял нам строить еще более запутанные системы. AI просто разогнал этот процесс до предела. 2️⃣ Vibe Coding => Tech Debt Разработка через чат-интерфейс (conversational interface) - это ловушка. Архитектура начинает зеркалить вашу беседу: каждое уточнение "а поправь еще это" наслаивается поверх предыдущего, создавая спагетти-код с мертвыми ветками логики. Интересно, что я сейчас пробую разрабатывать в Lovable и вижу как мои запросы приводят к появлению архитектуры (правда, я еще и в привязанном GitHub вижу как и какой код появляется) 3️⃣ Simple vs Easy Джейк цитирует Рича Хики:
- Easy - это то, что под рукой: скопировать со StackOverflow или попросить AI сгенерить портянку кода
- Simple - это отсутствие переплетений (entanglement) AI делает часть про "easy" почти бесплатным, но убивает "simple", так как агенты не умеют отличать "существенную" сложность задачи от "случайной" (наследия костылей) 4️⃣ Решение что предлагает Джейк Использовать трёхфазный метод, чтобы не утонуть в хаосе, нужно вернуть инженерную строгость и разделить процесс: - Research. Скормить агенту доки и диаграммы, чтобы он составил карту системы. Обязательно вычитать и поправить вручную - Planning. Написать спецификацию изменений (вплоть до сигнатур функций). План должен быть настолько детальным, чтобы джун мог реализовать его механически (paint-by-numbers). - Implementation. Только теперь запускать генерацию. Вы ревьюите соответствие плану, а не пытаетесь угадать, что там нафантазировал AI.
Если подумать об этом, то мы входим в эпоху, где написание кода стоит примерно 0. И главным дефицитом становится понимание системы (context & understanding). Если раньше вы могли "прочитать" код и понять, как он работает, то в мире, где джун генерирует 10к строк за вечер, это становится невозможным. Техлидам придется сместить фокус с код-ревью на дизайн-ревью и валидацию планов. Те, кто продолжит просто "чатиться с кодом", скоро обнаружат у себя в проде системы, которые невозможно поддерживать и безопасно изменять.
В докладе Джейк опирается на классику Software Engineering, которую стоит перечитать:
- Fred Brooks, "No Silver Bullet" (1986)
- Rich Hickey, "Simple Made Easy" (2011)
- Edsger W. Dijkstra, "The Humble Programmer" (1972)
#DevOps #AI #Architecture #Culture #Engineering #ML #Future #Software