Темна і світла сторони вайб-кодингу
«Вайб-кодинг» у вигляді: «даю команду ШІ, воно щось робить, а я лише перевіряю працює/не працює», вже встиг отримати дещо зіпсовану репутацію — в першу чергу завдяки недосконалим інструментам, які по-гарному ще до такого режиму ще не зовсім готові і потребують нагляду.
Це наче умовний джун, що загалом вміє писати код, але погано уявляє про найкращі практики, вразливості і багато інших «нюансів» гарного IT-рішення, а тому і працювати повинен не автономно, а у парі з кимось більш досвідченим.
Проте, на відміну від людини-джуна, технології ШІ розвиваються значно швидше, і немає значення як воно буде називатися далі — ми маємо об’єктивну реальність: з’явилася можливість конвертувати думки та задачі в код без проміжної ланки, у вигляді людини, і ця можливість невпинно вдосконалюється.
Ігнорувати її — це наче продовжувати випасати коней, спостерігаючи за тим, як навколо всі пересідають на авто і сподіватися, що «нас це не зачепить».
І якщо раніше для розробника уміння гарно писати код було навичкою першої необхідності, то зараз це вже під питанням, не в сенсі того щоб вона не була потрібна взагалі, а в тому розумінні, що можливо доречніше сфокусуватися на чомусь іншому щоб бути кращим фахівцем в сучасних умовах.
Для підтвердження цього приведу недавній приклад з власного досвіду. У червні цього року я мав оцінити технічний рівень трьох фуллстек веб-розробників. Всі троє стронг мідли, при чому один з них має найбільше досвіду і мав отримати промоушен до сеньйора. Оцінка проводилася у виключно практичному форматі: кожен отримує однакове завдання — розробка фічі для фуллстек веб проєкту з використанням сторонніх API, і у відведений час під моїм наглядом мають його реалізувати використавши найкращі інженерні практики.
Такий формат вважаю найбільш оптимальним для оцінки реальних навичок розробників, бо проводиться все у максимально наближених до реальної роботи умовах: жодних лімітів у використанні інструментів, підходів, інтернету, гугла чи ШІ.
Грубо кажучи: роби що хочеш і як вмієш у зручній тобі IDE та іншими інструментами, але маєш встигнути у відведений час реалізувати функціональність і при цьому зробити це максимально якісно як інженер — продумати архітектуру, залежності, застосувати найкращі практики, патерни, покрити тестами і т.д. і т.п.
Цікаво що розробники досить по-різному використовували ШІ: два з трьох використовували IDE з ШІ-автодоповненням коду і зверталися до ChatGPT за допомогою — наймолодший робив це дуже часто, інший дещо рідше, хоча за інструмент не забував. Проте третій використовував IDE без ШІ, писав по-старинці, виключно все сам і в ChatGPT звертався лише в останню чергу, коли більш нічого не допомогало.
Цей третій розробник і був тим самим досвідченим «майже сеньйором», і його здібності писати код самостійно без автодоповнення, безперечно заслуговують високої оцінки, особливо якби він робив це десь на острові без інтернету чи навіть комп’ютера.
Проте в заданих умовах завдання йому давалося дуже складно. В той час як інші в процесі роботи активно комунікували з ШІ, просили щось згенерувати/модифікувати і т.п., найбільш досвідчений розробник вперто продовжував писати код сам без підказок, повільно розбиратися з документацією до API і тому подібне.
У порівнянні з іншими рухався по завданню дуже повільно, і кульмінацією став пошук проблеми в коді, на яку він витратив хвилин
Очікувано, що в результаті найкраще справився з завданням наймолодший з розробників, який найбільш активно використовував ШІ. У відведений час він встиг реалізувати функціональні вимоги, покрити код тестами, і при цьому саме рішення було побудовано з урахуванням найкращих практик з погляду архітектури і структури проєкту, зовсім не виглядало як нашвидкоруч накиданий прототип.
Водночас найбільш досвідчений розробник, який намагався «зробити все сам» з завданням справився найгірше — у відведений час він ледве встиг зібрати до купи мінімально працюючу демку проєкту, яка аж ніяк не була схожа на результат роботи сеньйора, особливо в порівнянні з іншими.
Думаю з висновками тут все зрозуміло: якими б не були сеньйорними твої навички в минулому, вмінням писати код без ШІ ти нікого не здивуєш, швидше виглядатимеш комічно на фоні тих, хто робить це по-сучасному з ШІ.
І оскільки ми почали розмову з вайб-кодингу, то в найближчий перспективі я не бачу повного усунення розробників від написання коду — до цього технології ще не готові, а найбільш виграє той, хто комбінуватиме свої інженерні знання і навички зі здатністю ШІ генерувати та модифікувати код.
Але поступово ми все менше будемо писати код самі і все більше довіряти це робити машині та в якийсь момент прийдемо до «Світлої сторони» чистого вайб-кодингу, як він і був задуманий. І це прекрасно я вважаю — бо скільки б багато я в своєму житті не писав коду, за польотом думки ніколи повністю не встигав, водночас заміна ручного написання коду автоматичним ніяк не відміняє того, що ти залишаєшся розробником, просто стаєш більш продуктивним, і якщо хтось знайдеться, хто зі мною не згоден, то як говориться — хай перший кине в мене камінь :)
42 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів