Pull to refresh

Программистов победит не ИИ, а архитектор + ИИ

Level of difficultyEasy
Reading time4 min
Views2.8K

Провокационно? Да. Реально? Тоже да. Вроде бы понятно, что на вопрос уровня StackOwerflow нынешний ИИ отвечает влет и, как правило, верно. Что же будет, если попробовать написать на нем фреймворк, например. Я попробовал. Понятно, что нужно подсказывать что проектировать и как это реализовывать. Вот тут типичный заказчик спасует. Потому что он не мыслит таблицами, классами, связями, зависимостями. А типичный миддл скажет - дайте мне ТЗ, как я тут иначе все буду придумывать, а потом переделывать? Ему не нужна ответственность. Синьор сдюжит, и именно потому что опыт и вопрос этот больше про архитектуру, чем про код. Вот тут наш взгляд и падает на software architect позицию. Потому что там и про опыт, и про код, и про требования заказчика и про проектирование сложных систем.

Ведь именно на стадии проектирования нужно понять куда может повести заказчика потом и заложить эти возможности на старте. Нужно знать как это будет в БД, как в коде, как в шине данных. Какие будут протоколы, какие хранилища, где, когда, сколько. Тот же ИИ тоже вполне вменяемо ответит на эти вопросы. Надо только их поставить.

Немного рваное повествование, извините, но тут подход с двух сторон, поэтому буду перепрыгивать. Я говорил про фреймворк. Так вот, сначала все шло хорошо. Таблицы, классы, ORM, авторизация, токены и вот это все. Как по учебнику. Да, файлы надо создавать руками, исправления вносить, чтобы помнить где и т.п. Неудобно, но терпимо. А потом начинаешь возвращаться к уже пройденному коду, просить добавить роли и ACL и тут понимаешь, что он контекст потерял и лепит уже другое.. Иными словами, работать неудобно. Т.е. не невозможно, а неудобно...

Какое решение напрашивается, чтобы было удобно? Дать ИИ свободу создавать файлы и писать в них. И дать возможность загрузить весь контекст проекта в память. Хотя бы для текущей подсистемы или микросервиса. Вот тут я должен признать удобство микросервисов, хотя их и недолюбливаю. ИИ с ними будет проще, так как контекста меньше. Получаем идеальную IDE для архитектора. Который не просто творит, а который с аналитиками все обкашлял, понимает, что нужно клиенту, может проверить решения, которые дает ИИ, чтобы застраховаться от совсем дичи. Ревью кода и поиск ошибок тоже ложится на плечи ИИ. Да, потом и человек отревьюит. Но первый проход будет за ИИ, что экономит время. Тестирование людьми тоже пока что остается, тут подстраховка нужна.

Я думаю, что сомнений в том, что ИИ будет писать красивый и качественный код в большинстве случаев, у вас нет. Он же лишь отчасти учится на всяких форумах о программировании. Основной пласт у него это GitHub, который так неожиданно купил Microsoft. Вот там, чаще всего хороший код, потому что говно выкладывать люди стесняются, стараются хоть как-то причесать, юнит-тесты сделать и т.п.

Почему это будет работать со стороны заказчика? Дешево. И начальная разработка, и последующие переделки. И быстро. И чуть криво. Но я думаю, что между "чуть криво" и "быстро и дешево" выбор очевиден. Да заказчик и не узнает об этом, скорее всего. Невидимая рука рынка, так сказать. Потом будет перелом, когда хвастаться разработкой от ИИ будет уже модно и престижно. А на первых порах об этом можно скормно умалчивать.

Итого, что имеем. Нужна IDE, которая может сама кодить и хранить контекст всего проекта. Уже сейчас есть разные помощники и т.п., но это все еще не то. Нужно чтобы IDE сама писала код, работала с БД и т.п по текстовому описанию.

И на втором конце этой IDE нужен человек, который скажет как, куда и что писать. В этом вроде бы и проблема, что заказчик не сможет адекватно это описать.А нам и не надо. Индустрия уже есть. Менеджер по продажам его обработает, аналитики все из него высосут, может быть даже полноценное ТЗ напишут (но это вряд ли, в эпоху, когда модно двигать задачи по доске, такое не работает). Но основную потребность они обозначат, опишут, предложат пути решения и тут появляется на сцене наш герой - системный архитектор. Который крупными мазками начинает хреначить продукт. И уже к вечеру того же дня готов показать бету. И это стоит $500. Я условно говорю, но вы понимаете масштаб...

Стоит задуматься, не так ли? Переломить этот тренд мы уже не в силах. Всем стать аналитиками и архитекторами? Ну я бы на это посмотрел. QA еще останутся. А может быть даже расширят навыки, если смогут с помощью ИИ докопаться до того где возникает ошибка, почему, с помощью ИИ ее исправить, протестировать (в т.ч. регрессионно) и выкатить в прод.

А где в этой картине джуны и миддлы? Понятно, что те кто уже там будут просто повышать компетенции и пытаться выйти на те позиции, которые находятся в коллаборации с ИИ, а не в оппозиции к нему. Возможно и такое, что программисты останутся и за ними будут функции код-ревью, потому как боязно доверять все этой железке. Долгое время буду писать программы руками в критически важных областях. Но тоже будут привлекать ИИ.

А вот вкатиться в ИТ после курсов будет явно посложнее. Для матерых разработчиков будет еще много всего интересного. От сотрудничества с ИИ они только выиграют. Дальновидные компании все равно будут набирать людей, чтобы растить специалистов, но их будет исчезающе мало.

Да и будет все не так страшно. Мало кто из вас сможет запрячь лошадь, я думаю, но за рулем авто вы бесподобны. Все перетрется, устаканится. Переживем и приспособимся. Тут вопрос немного в другом, а когда уже будет не выгодно учиться на извозчика и надо будет сразу учиться на механика или водителя? Потому что учить на извозчика сейчас умеют и зарабатывают на этом, и в уши вам будут дуть именно про это. Вот именно сейчас надо остановиться и подумать - а как оно будет дальше?

Tags:
Hubs:
Total votes 5: ↑2 and ↓3+1
Comments16

Articles