Къде е съвестта на кода: Мартин Фаулър за липсата на суперего в генеративните софтуерни инструменти

Мартин Фаулър, главен научен директор на Thoughtworks и съавтор на Манифеста за гъвкава разработка. Снимка: MartinFowler.com
Взривът от инструменти за автоматично генериране на код създаде безпрецедентна еуфория сред мениджърите: софтуерните задачи се отмятат за минути, а прототипите оживяват пред очите ни. Но ветеранът на софтуерната архитектура и съавтор на Манифеста за гъвкава разработка Мартин Фаулър вижда в това развитие дълбок системен капан. В скорошен критичен коментар Фаулър използва метафора от психоанализата на Зигмунд Фройд, за да опише текущото състояние на генеративния AI: „Индустрията достави 'То' (Id), но забрави да внедри 'Суперегото' (Superego)“ [1].
Във фройдистката теория „То“ представлява първичните, неконтролирани импулси, които се стремят към мигновено задоволяване на желанията без задръжки, правила или представа за последиците. В света на софтуерното инженерство (software-engineering) големите езикови модели се държат по същия начин: при получаване на промпт те изплюват първия възможен синтактично валиден код, който решава моментния проблем, без да ги е грижа за архитектурната цялост, сигурността или бъдещата четимост [1].
Липсващият морален компас на архитектурата
„Суперегото“ е вътрешният съдник – моралният кодекс, съвестта и чувството за ред, които ни спират да вършим глупости заради краткосрочна изгода. В софтуерната разработка суперегото се материализира в добрите инженерни практики: принципите SOLID, разделянето на отговорностите, чистотата на абстракциите и безпощадния рефакторинг (refactoring) [1].
Генеративният асистент няма суперего. Той не изпитва срам, когато дублира 200 реда код в пет различни файла; не страда от угризения, когато инсталира несигурна външна библиотека за елементарна математическа операция; и не се интересува как колегата ви ще поддържа този код след три години [1]. В стремежа си да угоди на разработчика в момента на запитването, моделът генерира планини от скрит технически дълг (technical-debt).
Илюзията за производителност и етиката на разработчика
Фаулър предупреждава, че метриките за „увеличена скорост на разработка“ са опасна манипулация. Да напишеш код за пет минути е безполезно, ако отстраняването на скрити дефекти и разбирането на логиката му отнеме след това три седмици [1].
В контекста на съвременните въпроси за морал и отчетност в AI (llm-ethics), отговорността не може да бъде прехвърлена на алгоритъма. Когато софтуерен продукт се срине, компрометира лични данни или откаже в критична болнична система, вината не е на чатбота, който е предложил кода, а на инженера, който го е одобрил без одит [1].
Ако програмистите се превърнат в пасивни оператори, натискащи бутона „Accept suggestion“, те губят своята професионална експертиза и критично мислене, превръщайки кодовата база в неуправляем франкенщайн.
Архитектурен анализ и стратегически изводи
Погледът на Мартин Фаулър връща дебата за изкуствения интелект към неговите инженерни основи. Генеративните инструменти са великолепни катализатори, но те изискват много по-висока, а не по-ниска квалификация от страна на програмиста.
За да не се удави софтуерната индустрия в генериран спам, инженерите трябва съзнателно да поемат ролята на системно суперего:
- Строго тестване (Test-Driven Development): Код се приема само ако покрива строги автоматизирани тестове, написани преди или успоредно с реализацията.
- Агресивен рефакторинг: Всеки предложен от AI фрагмент трябва да бъде опростен, изчистен от дублиране и приведен в съответствие с корпоративната архитектура.
- Критичен преглед (Code Review): Прегледът на код от колега трябва да се фокусира върху откриването на скрити антипатерни и халюцинирани зависимости.
Изкуственият интелект може да доставя първичната енергия и грубия код, но интелектуалната съвест и архитектурната дисциплина остават незаменима човешка отговорност.

Инфографика: Светни.ме