1. Scope як контракт з агентом
Олег починає не з коду, а з питання, яке Тьома раніше собі не ставив:
— Ось ти ШІ написав: «підправ ось це». А де завдання-то закінчується? До якого місця йому можна?
Тьома відкриває рота — і знову закриває. Сказати нічого. Він перебирає в голові, що саме написав Саші, і натрапляє на прогалину.
— Та я… — він мнеться. — Я ж лише сказав, ЩО зробити. Підправ ось цю штуку. А де зупинитися — ніде. Жодного слова. Навіть на думку не спало, що це треба проговорювати.
— Ось і йому не спало, — киває Олег. — Ти дав йому одну мету — і він до неї попер просто напролом. А дорогою прихопив усе, що здалося: «заодно буде краще». Не тому, що шкідливий. Тому що межі ніде не було, а де її немає, там для нього її й не існує.
— У своєму коді ти на це забивав, — продовжує Олег, — і правильно робив, між іншим. Бо у своєму коді ти й так відчував, куди лізти не треба: рука сама обходила. А тут відчуття немає — звідки йому взятися, якщо ти цей файл бачиш уперше. Отже, те, що раніше вело тебе само, тут доведеться прописувати руками. Прямо словами: досюди — можна, далі — не можна.
Ось це «досюди можна, далі не можна» і називається scope — рамки завдання. І ставлять їх не в голові, а прямо в постановці. У Тьоми вже тиждень була звичка до нормального ТЗ — із «що зробити» і «як довести». Тепер у це ТЗ, схоже, додається третя частина, якої раніше не було: заборонений блок. Не просто «полагодь sponsor block», а чітко: працюй лише всередині ось цієї зони; чужу верстку підрядника, сусідні модулі та зовнішній контракт не чіпай узагалі.
Тьома, дивлячись на це, намагається знайти знайому аналогію, щоб думка вляглася до кінця:
— Це контракт, по суті. Тебе покликали в чужу квартиру полагодити кран у ванній. Отже, ти лагодиш кран — і все. До спальні не заходиш, шпалери на кухні не чіпаєш, меблі не переставляєш, навіть якщо тобі здається, що «ось так було б зручніше, я ж бачу». Може, й зручніше. Але тебе про це не просили, і квартира не твоя. Рамки завдання — це договір між тобою і тим, хто покликав. Захотів ширше — спитай окремо, отримай окреме «так». А мовчки вийти за межі, бо «по дорозі ж» — це вже не допомога, а порушення, навіть якщо з найкращих спонукань.
— І з ШІ-агентом те саме, — підхоплює Олег. — Тільки агент про запит узагалі не подумає. Людина хоч посоромиться зайвого, а цей попре.
Тьома дописує заборонений блок і сам підбиває підсумок, хай і кострубато:
— Тобто scope — це не «що я хочу зробити». Це «докуди взагалі дозволено зайти». Межа, а не бажання. І її треба покласти в ТЗ так само твердо, як саму задачу, інакше агент вирішить за мене — і вирішить на свій розсуд.
— Ось, — киває Олег. — Тепер хоч зрозуміло, де твій ШІ має зупинитися.
2. Топографія чужого коду: де сховані міни
Далі Олег дає те, чого жоден агент Тьомі не дав би, — карту місцевості для чужого файлу. Не філософію, а конкретні граблі.
— Дивись сюди, — тицькає він у шматок, який Саша бадьоро «причесав». — Ось цей відступ виглядає зайвим. Косметика, нічого ж не означає, так? А він тримає блок. Прибереш — поїде вся колонка вправо, і спонсорські логотипи розповзуться по сторінці, як горох. І ось тобі на рівному місці зламана партнерська зона та дзвінок від Антона: «У нас усе розвалилося». У чужій верстці половина того, що виглядає сміттям, насправді несе навантаження. Просто ти не бачиш карти, яку бачив автор, коли це писав.
Тьома дивиться на цей відступ, потім на сусідній — і справді не розуміє, чим один важливіший за інший. Ззовні вони близнюки, два однакові пробіли. У своєму коді він би одразу знав, який тут навіщо. Тут — порожньо, жодного чуття, лише слово Олега. І це трохи лякає: вся опора на власне чуття, яким він пишався, тут просто не вмикається.
— І ось ще, — Олег веде далі. — Бачиш, ШІ тут одну штуку перейменував «для краси»? У своєму коді це дрібниця на дві секунди. А тут ця штука стирчить у пʼяти місцях одразу, по всьому файлу. І якщо перейменувати її не всюди, а лише тут — половина сторінки відвалиться мовчки. Без помилки, без червоного тексту, без жодного крику. Просто шматок перестане працювати, а ти сидітимеш і гадатимеш, чому вчора було добре, а сьогодні ні. І звʼязок між «ШІ причесав імʼя» та «відвалився блок» ти знайдеш не одразу.
Тьома відкидається на стільці. Головне правило чужої квартири виходить незатишним.
— Виходить, у своєму домі я бог, — каже він. — Знаю напамʼять, що тримає, що декоративне, що можна знести, а що тримає стелю. А тут карти взагалі немає. Отже, за замовчуванням будь-яка зміна небезпечна, доки не доведу протилежне. Не «покращую по дорозі, раз уже зайшов». А «чіпаю рівно те, що просили, і кожен зсув розглядаю окремо, як сапер».
— Презумпція перевернулася, — підтверджує Олег. — Удома все безпечно, доки не доведено, що ні. Тут усе небезпечно, доки не доведено, що так.
— Виходить, обережність тут — це не занудство, — говорить Тьома. — Це просто я не бачу, де дроти під штукатуркою.
Олег хмикає майже схвально. І знову — без підколу.
3. Проговорити завдання вголос
Тьома відвертається від чужого коду — очі вже не дивляться. І бачить: Олег висуває шухляду, дістає жовту банку з-під пива, мʼяту, ставить праворуч від монітора, на затерте коло в пилюці.
— Ну і куди ти подів ініціалізацію, — говорить Олег банці. — Тут немає. Тут теж немає. А якщо ти її взагалі не кликав, то… — він замовкає, клацає мишкою, киває. — Ага. Не кликав.
Банка вирушає назад у шухляду.
— Дядьку Олеже, а де Васька? — питає Тьома. — У тебе ж тут качка стояла.
— Викинув.
— Ваську?!
— Того. — Олег нарешті повертається. — Двадцять років я з ним ось так розмовляв. Завдання вголос проговориш — воно й розплутується. Мене так учили, я так працював, і працював, між іншим, непогано. А тепер у вас ШІ. Написав дві фрази — і проєкт готовий. Ось і вся моя школа.
Він киває на задвинуту шухляду.
— Викинув, а він не викидається. Ось тепер банка. Смішно ж, так? Чоловік розмовляє з банкою. А працює.
Він розвертається до монітора.
— Ти ініціалізацію шукати збирався чи ми тут розмовляємо?
4. Постановка завдання — те саме ремесло
Тьома розвертає до Олега екран — показати, як тепер пише агенту завдання. Не «зроби красиво», а «зроби ось це, далі не лізь, покажи diff». З межею, із забороненим блоком, із вимогою доказів. І ловить себе на тому, що говорить з Олегом спокійно, на рівних, а не відбивається від підколів, як увесь місяць.
Олег читає — і завмирає над текстом. А поки читає, Тьома дописує Саші ще кілька рядків і спокійно, не дивлячись, шле — як давно звичну справу. Олег ловить це краєм ока: ось сидить вчорашній роздолбай, ганяє ШІ усяке, не спітнівши, і ШІ слухається. І щось в Олегові просідає.
— Знаєш, що смішно, — говорить він раптом, і отрути в голосі немає, а є щось глухіше. — Я ж думав, таких, як ти, світ змете першими. Наліплять на коліні, абияк, без голови — і відваляться. Сидів і чекав. — Він киває на екран, де Саша молотить по Тьоминому слову. — А виходить, зметуть-то таких, як я. Хто все руками, чесно й повільно. Я думав, у мене фора. А фора, виходить, у тебе.
Тьома відкриває рота, щоб відповісти жартом, — і не знаходить його. Олег не підколює й не скаржиться. Просто сказав уголос те, що, видно, давно лежало.
— Це ж звичайна постановка завдання, — говорить Олег трохи згодом, рівніше, ніби сам себе повертає на тверду основу. — Я так само роками джунам задачі писав. Що зробити, чого не чіпати, як здати. Межа — вона й є межа, людині ти її ставиш чи цій твоїй нейромережі. Жодної магії. Дисципліна. — І тихіше, ніби собі: — Може, і не змете, якщо я теж навчуся.
— А я думав, ти знову про «вашу магію» почнеш, — обережно хмикає Тьома.
— Та це й не магія. Це якраз те, що я поважаю. — Олег повертає екран. — Стара школа — це ж про те, як читати чуже. Де не вірити зовнішній охайності, чому в таких місцях швидкість шкідливіша за обережність. Я це роками збирав, своїм горбом, коли жодних агентів і близько не було.
Тьома слухає і вперше не відмахується. Увесь місяць він сприймав це за занудство старого айтішника — а зараз чує ремесло, якого в нього самого немає.
І наприкінці Олег каже те, чого Тьома від нього аж ніяк не чекав:
— Слухай. Якщо ця морока в підрядницькому коді триватиме довше, ніж Антону хотілося б, — я прикрию. Скажу, що так і треба. Краще повільніше й чисто, ніж швидко і знову закласти міну в чужій частині порталу.
Тьома дивиться на нього секунду. Увесь місяць Олег підколював його за «іграшки» — а тут раптом готовий прикрити, і не за ШІ, а саме за те, що Тьома вирішив робити акуратно.
— Не «давай схалтуримо разом», — повільно промовляє Тьома.
— Не. Зробимо чисто. Просто без поспіху.
І від цього «зробимо» всередині теплішає інакше, ніж від звичайного офісного «вау» на його анімації.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ