AI neznamená konec vývojářů. Mění však to, co znamená být vývojářem

V iQuestu vyvíjejí software na zakázku. AI podle nich vývojáře nenahradí, ale mění jejich roli – od psaní kódu k architektuře a byznysu.

iquest
Zdroj: CzechCrunch
AI nepřináší konec vývojářů. Přináší redefinici toho, co vlastně znamená být vývojářem

Umělá inteligence se během několika posledních let stala běžnou součástí vývoje softwaru. V iQuestu, kde na zakázku vyvíjíme webové a mobilní aplikace i rozsáhlé informační systémy, nám pomáhá psát kód, hledat chyby, vytvářet testy, navrhovat řešení nebo rychle připravovat celé prototypy. Její schopnosti se přitom vyvíjejí tak rychle, že se prakticky neustále učíme, k čemu ji lze použít, kde nám skutečně pomáhá a kde je naopak potřeba být opatrný.

S nástupem ChatGPT a dalších generativních modelů se objevily předpovědi, že programátorská profese během několika let zanikne. Umělá inteligence měla začít vytvářet software sama a velkou část vývojářů učinit zbytečnými. Tento scénář se zatím nenaplnil. Neznamená to ale, že se nic nezměnilo. „AI nepřináší konec vývojářů. Přináší redefinici toho, co vlastně znamená být vývojářem, jakou hodnotu zákazníkovi poskytujeme a čemu se při vývoji budeme věnovat v budoucnu,“ říká Robert Libšanský, senior developer společnosti iQuest.

Aplikace vytvořená na jeden prompt

Dnešní jazykové modely dokážou v agentním režimu na základě několika instrukcí vytvořit poměrně rozsáhlý web nebo mobilní aplikaci. Výsledek může obsahovat uživatelské rozhraní, databázi, přihlašování, základní aplikační logiku i napojení na externí služby.

Na první pohled to působí téměř jako zázrak. Člověk popíše svůj nápad a za chvíli má před sebou funkční aplikaci, kterou si může otevřít a vyzkoušet.

Pro menší jednorázové projekty může být takový výsledek naprosto dostačující. Pokud uživatel přesně ví, co chce, rozsah je omezený a aplikace se nebude dlouhodobě rozvíjet, dokáže dnes AI velkou část práce zvládnout velmi dobře. Otázkou však je, zda je právě toto typ softwaru, který zákazníci obvykle potřebují. Ve většině případů není.

To, co AI vytvoří na základě jednoho zadání, totiž často odpovídá tomu, čemu jsme vždy říkali softwarový prototyp. Jde o jednoúčelovou aplikaci s omezenou funkčností, jejímž cílem je ověřit myšlenku, uživatelský postup nebo základní technické řešení. A právě pro tento účel je generování kódu pomocí AI mimořádně vhodné.

Prototyp nemusí být dokonalý

Ani zkušený vývojář dnes nemusí první prototyp vytvářet ručně. Pokud potřebujeme rychle ověřit, zda určitá myšlenka funguje, dává smysl použít AI a během krátké doby připravit něco, co lze ukázat zákazníkovi nebo otestovat s uživateli.

Je to rychlé, levné a pro danou fázi projektu dostatečné. Do prototypu není potřeba investovat více času a peněz, než je nezbytně nutné. Problém nastává ve chvíli, kdy začneme prototyp považovat za hotový produkt.

AI nepřináší konec vývojářů. Přináší redefinici toho, co vlastně znamená být vývojářem.

Skutečný vývoj softwaru totiž není pouze o vytvoření první funkční verze aplikace. Není ani jen o ověření, že původní nápad dává smysl. U rozsáhlejších webových, mobilních a informačních systémů jde především o dlouhodobý proces.

Takový software se musí postupně přizpůsobovat měnícím se potřebám firmy. Přibývají nové požadavky, mění se legislativa, obchodní procesy i očekávání uživatelů. Aplikace se integruje s dalšími systémy, zpracovává stále větší množství dat a musí zůstat bezpečná, stabilní a udržitelná. To je přesný opak zadání typu: „Vytvoř mi na jeden prompt aplikaci.“

Debata o nahrazování vývojářů totiž často staví na omylu, že jejich hlavní náplní je samotné psaní kódu. Ten ale nikdy nebyl největší hodnotou profesionálního vývoje. Ta spočívá v pochopení byznysu zákazníka, odhalení skrytých rizik a návrhu udržitelné architektury. „Dobrý vývojář požadavky pouze neimplementuje. Přemýšlí o nich, zpochybňuje je a hledá lepší možnosti. Hlídá bezpečnost, výkon i budoucí rozšiřitelnost systému,“ vysvětluje Libšanský s tím, že kód je pouze prostředkem, nikoli konečným cílem.

AI splní zadání. Ale nepřevezme odpovědnost

„Umělá inteligence nemá vlastní zájem na tom, zda bude projekt dlouhodobě úspěšný. Nemá odpovědnost vůči zákazníkovi, jeho uživatelům ani firmě, která bude systém provozovat,“ upozorňuje Libšanský.

Model zpracuje zadaný úkol a vytvoří výstup, který statisticky odpovídá očekávanému řešení. Může automaticky doplnit některé běžné funkce, které ze zadání logicky vyplývají, ale sám o sobě nezná všechny souvislosti daného projektu.

Neví například, že zdánlivě jednoduchá změna může porušit obchodní proces v jiné části systému. Nezná interní pravidla firmy, pokud mu je nikdo přesně nepředá. Neví, jaké kompromisy byly přijaty před několika lety a proč. A nedokáže nést odpovědnost za to, že zvolené řešení bude bezpečné a udržitelné. Čím větší a starší aplikace je, tím významnější jsou právě tyto souvislosti.

Umělá inteligence nemá vlastní zájem na tom, zda bude projekt dlouhodobě úspěšný.

Nezkušený vývojář nebo technologický nadšenec může s pomocí AI velmi rychle vytvořit působivý výsledek. Stejně rychle však může narazit na okamžik, kdy je potřeba změnit základní architekturu, opravit systémový problém nebo rozšířit aplikaci způsobem, se kterým původní návrh nepočítal. V takové chvíli už nestačí pouze zadat další prompt.

AI je silný nástroj především ve zkušených rukou

Znamená to, že je AI jen zajímavou hračkou nebo nástrojem pro tvorbu prototypů? Rozhodně ne. Ve zkušených rukou jde o mimořádně silný nástroj, který dokáže výrazně urychlit prakticky všechny fáze vývoje. Vývojář může AI využívat k návrhu řešení, generování rutinního kódu, psaní testů, analýze chyb, dokumentaci, migraci dat nebo průzkumu existující kódové základny.

Klíčové však je, že výsledek musí umět usměrňovat, kontrolovat a kriticky posuzovat. Musí poznat, zda navržené řešení odpovídá architektuře systému. Musí odhalit bezpečnostní rizika, zbytečnou složitost nebo skryté technické dluhy. Musí vědět, kdy lze vygenerovaný kód přijmout, kdy jej upravit a kdy jej raději zahodit a zvolit úplně jiný přístup.

Profesionální použití AI proto nespočívá pouze ve schopnosti správně formulovat prompt. Vyžaduje znalost oboru, technický úsudek a schopnost nést odpovědnost za výsledné řešení.

Budeme stále méně psát kód

Současný vývoj jasně ukazuje, že programátoři budou ručně psát stále menší část výsledného kódu. Za několik let může být ruční implementace mnoha běžných úloh výjimkou. Vývojář bude častěji popisovat požadované chování, určovat architekturu, definovat omezení a následně kontrolovat, upravovat a ověřovat výstupy vytvořené umělou inteligencí.

To však neznamená, že přestane být vývojářem. Psaní kódu není to, co z nás vývojáře dělá. Stejně jako schopnost ručně zapisovat instrukce ve strojovém kódu nebyla podmínkou vývoje moderních aplikací, nemusí být v budoucnu hlavní dovedností ani psaní každého řádku ve vyšším programovacím jazyce.

Vývojáře definuje schopnost porozumět problému a vytvořit jeho kvalitní technologické řešení. Musí chápat požadavky, byznys zákazníka, potřeby uživatelů a důsledky jednotlivých rozhodnutí. Musí dokázat zajistit kvalitu, bezpečnost, spolehlivost a dlouhodobou udržitelnost systému. Technické prostředky, kterými toho dosahuje, se mohou změnit. Podstata jeho práce však zůstává.

Co to znamená pro zákazníky

Ani pro zákazníky není nástup AI signálem, že rozsáhlý informační systém nyní dokáže vytvořit kdokoli, kdo je technicky zdatný a umí dobře komunikovat s chatbotem.

AI může výrazně snížit náklady na prototypování. Může urychlit vývoj, umožnit rychlejší ověřování nápadů a zkrátit dobu potřebnou k implementaci některých funkcí. To je pro zákazníka jednoznačná výhoda. Současně však nezbavuje projekt potřeby kvalitní analýzy, návrhu architektury, řízení priorit, testování, bezpečnostních kontrol ani dlouhodobé údržby.

Zákazník stále potřebuje partnera, který dokáže převzít odpovědnost za výsledek. Partnera, který nerozumí pouze technologii, ale také obchodním cílům projektu.

„Zákazník stále potřebuje partnera, který dokáže převzít odpovědnost za výsledek. Partnera, který nerozumí pouze technologii, ale také obchodním cílům projektu. A který dokáže rozpoznat rozdíl mezi řešením, jež působivě funguje při první ukázce, a systémem, na který se bude možné spolehnout každý den po mnoho let,“ doplňuje Lucie Vystrčilová, produktová manažerka iQuestu.

Budoucnost vývoje není bez vývojářů

Umělá inteligence programátory a softwarové vývojáře neodstraňuje. Mění nástroje, které používají, a posouvá jejich práci na vyšší úroveň abstrakce. Část činností, které jsme dříve prováděli ručně, bude automatizována. Mnoho úkolů zvládneme rychleji a některé profese nebo specializace se budou muset výrazně proměnit. Současně však poroste význam schopností, které nelze zredukovat na samotnou tvorbu zdrojového kódu.

Porozumění problémům. Technický úsudek. Znalost souvislostí. Kritické myšlení. Odpovědnost za rozhodnutí. Schopnost dlouhodobě rozvíjet systém, který má skutečnou hodnotu pro zákazníka.

AI nám dává větší kompetence a umožňuje nám zvládat práci rychleji a kvalitněji. Nenahrazuje však potřebu vědět, co vytváříme, proč to vytváříme a jak zajistíme, aby výsledné řešení fungovalo nejen při první demonstraci, ale také za několik let. Budoucnost softwarového vývoje proto nebude patřit ani samotným vývojářům, ani samotné umělé inteligenci. „Bude patřit vývojářům, kteří se naučí umělou inteligenci správně používat,“ uzavírá Libšanský.

CC Brandstory
Článek vznikl ve spolupráci iQuest