В 2003 году я основал DCSL Software, которая позже стала One Beyond. Я вышел из бизнеса в 2023 году после того, как сделал компанию международной и увеличил её до более чем 300 человек. С тех пор я основал стартап в области робототехники и привлёк более 4 миллионов фунтов стартового финансирования.
Я никогда не ожидал, что снова буду писать промышленное программное обеспечение. Я перестал программировать ежедневно в 2014 году, не потому что я не мог это делать, а потому что это происходит, когда компания масштабируется. Вы нанимаете людей, которые лучше вас в исполнении, вы фокусируетесь на лидерстве, и постепенно клавиатура становится всё дальше. Почти целое десятилетие это казалось совершенно естественным.
Чего я не ожидал, так это того, что почти десять лет спустя я снова окажусь на месте разработчика — не из ностальгии, а практически. Не балуясь, а создавая действительно сложную платформу для робототехники. И не переучиваясь каждому фреймворку или языку, которые прошли мимо меня, а работая принципиально другим способом.
Эта личная перемена — самый чёткий сигнал, который я видел, что что-то структурное изменилось в разработке программного обеспечения.
Когда я начинал, мы твёрдо находились в эпохе водопада. Это не была идеология, это была экономика. Программное обеспечение было медленным и дорогим в создании, поэтому единственным разумным подходом было думать очень серьёзно заранее.
Мы писали детальные спецификации, потому что должны были. Контракты зависели от них. Поставка зависела от них. Написание хорошей спецификации было специализированным навыком, и я оказался достаточно хорош в этом. Я мог визуализировать, как может выглядеть готовый продукт до его существования, предвидеть области сложности и описывать поведение с достаточной точностью, чтобы команда могла создавать по нему.
Эта способность была редкой и трудной для обучения. Многие люди испытывали с ней трудности, потому что представить сложную систему, которая ещё не существует, действительно сложно. Но это имело значение, потому что ошибки на поздних этапах процесса были болезненными и дорогими.
Со временем индустрия двинулась к Agile. Публично это позиционировалось как лучший способ реагировать на изменения. Тихо это также было признанием того, что для больших, долгосрочных систем никакая спецификация не выживает в неизменном виде. Бизнесы меняются, пользователи меняются, технологии меняются, и притворяться иначе часто причиняло больше вреда, чем пользы.
Agile был прагматичным, но он имел цену. Мы в основном отказались от глубокого предварительного проектирования и заменили его пошаговым открытием. Это работало, но также нормализовало мышление, где думать слишком далеко вперёд считалось ненужным или даже рискованным.
Причина, по которой я смог вернуться к практической разработке, не в том, что я внезапно нашёл время или желание переучить десятилетие инструментов. Это потому что ИИ-агент фундаментально изменил стоимость экспериментирования.
Это та часть, которую часто неправильно понимают. Настоящее изменение не в том, что код пишется быстрее. Это в том, что попытки теперь дешёвые, быстрые и в основном обратимые.
То, что раньше заняло бы недели разработчиков, теперь можно попробовать за минуты. Вы можете исследовать подход, увидеть, как он ощущается, полностью отбросить его и попробовать другое направление с очень небольшим штрафом. Это просто не было возможно раньше.
В прошлом существовала сильная эмоциональная и финансовая привязанность к коду. Если что-то заняло у двух разработчиков три недели на создание, вы понятно неохотно выбрасывали это. Решения затвердевали рано, не всегда потому что они были правильными, но потому что их отмена была слишком дорогой.
Это ограничение исчезло, и это то, что втянуло меня обратно. Теперь я могу работать на уровне, в котором я наиболее силён — понимание проблемы, формирование системы, обнаружение когда сложность вкрадывается — в то время как ИИ-агент занимается механикой. Я не пишу код так, как делал в свои двадцать. Я направляю его, уточняю его, исправляю его и иногда останавливаю его от движения в совершенно неправильном направлении. На практике это ощущается гораздо ближе к руководству командой, чем к написанию кода. Вы фактически являетесь боссом — устанавливаете направление, проверяете результат, замечаете ленивые ярлыки и отталкиваете назад, когда что-то не кажется правильным.
Было бы легко предположить, что эта новая свобода делает дизайн менее важным. В реальности это делает его более важным.
Наличие чёткой, детальной идеи того, что вы пытаетесь создать, всё ещё чрезвычайно ценно. Фактически, это активно улучшает вывод ИИ-агента. Чем яснее намерение, тем лучше результаты. Расплывчатое мышление просто производит расплывчатые системы быстрее. Что важно понять, так это то, что ИИ-агент ведёт себя очень похоже на человека. Он хочет быть полезным. Он хочет дать вам ответ. Если вы расплывчаты, он заполнит пробелы. Если вы небрежны, он сделает предположения. Если вы не бросите ему вызов, он уверенно продолжит идти по неправильному пути.
Разница в том, что дизайн больше не является хрупким, одноразовым артефактом, который должен выжить неизменным годами. Он стал руководством для экспериментирования, а не ограничением для него. Вы можете держать сильное видение того, куда вы направляетесь, всё ещё будучи готовым пробовать, отбрасывать и развивать путь, который приведёт вас туда.
Новый навык — это знание, когда исследование продуктивно, а когда это просто шум. ИИ-агент с радостью продолжит генерировать структуру долго после того, как она должна была быть упрощена. Он не знает, когда файл стал слишком большим, когда абстракция протекает, или когда что-то, что "работает" сегодня, причинит боль позже. Эти инстинкты всё ещё приходят из опыта.
Как только экспериментирование становится дешёвым, многие давно удерживаемые предположения перестают держаться. Планирование больше не о блокировке всего заранее. Это об установлении намерения, ограничений и границ.
Оценка становится меньше о прогнозировании усилий и больше о понимании пространства, которое вы исследуете.
И наши отношения с кодом изменяются полностью. Гораздо меньше привязанности к конкретным реализациям и гораздо больше фокуса на поведении, структуре и результатах.
Вот почему индустрия разработки программного обеспечения чувствует себя неспокойно. Многие люди пытаются применить старые ментальные модели к новым инструментам. Это работает какое-то время, но упускает суть.
Причина, по которой я уверен, что это изменение постоянно, проста: я не стал бы снова создавать иначе.
Единственная причина, по которой я могу достоверно вернуться к практической разработке после десятилетия отсутствия, заключается в том, что ограничения, которые вытолкнули меня в первую очередь, больше не применяются. Программное обеспечение теперь может развиваться через управляемое экспериментирование способом, который просто не был возможен раньше.
Это не означает, что опыт имеет меньшее значение. Это означает, что он имеет значение по-другому. Ценность больше не в запоминании синтаксиса или фреймворков. Это в суждении, структуре и знании, когда остановиться.
Это не конец разработки программного обеспечения. Но это конец старой модели. И как только вы поработали таким образом, возврата нет.


