V srpnu proběhl další z našich tradičních Cookielab DEV meetupů a nesl ožehavé i lehce výbušné téma „AI“. A jak je u nás zvykem, místo líbivých marketingových prohlášení jsme hosty nechali nahlédnout přímo do naší kuchyně – bez příkras a s našimi protichůdnými názory.
Vývojáři Cookielabu se svěřili, jak dnes skutečně pracují s AI, jak se s ní mění jejich role a jak vidí svou i celkovou budoucnost. Řešili jsme i proměnu fungování celých softwarových agentur, rychlou adopci AI v malých i velkých firmách a fakt, že navzdory celému tomuhle progresu leží odpovědnost pořád tam, kde předtím: na člověku.
Každopádně nejzajímavější na práci s AI vůbec není otázka „kolik kódu za nás AI napíše“, ale co se děje před kóděním a po něm – mezi nápadem a opravdu funkčním softwarem.
Čísla, která se nedají srovnat
Ale ještě zpátky k té obávané otázce: „Kolik procent našeho kódu píše AI?“ Svádí to k jednoduché odpovědi. Nejlépe hodně vysoké, protože pak to vypadá, že budoucnost už dorazila a právě sedí u nás v kanceláři.
Ve skutečnosti ale můžeme počítat nejméně čtyři různé věci:
- kolik kódu necháme vygenerovat;
- kolik vygenerovaného kódu nakonec použijeme;
- jaký podíl produkčního kódu vytvořila AI;
- kolik kódu vzniklo jen kvůli analýze, experimentu nebo porovnání několika řešení.
Někdy necháme AI vytvořit hromadu variant, většinu zahodíme a zbytek upravíme. Jindy generujeme méně, ale skoro všechno nasadíme. A někdy AI používáme hlavně k analýze nebo rychlému ověření technologií, takže výsledný kód nikdy neměl produkci ani vidět.
Orientační odhady jednotlivých vývojářů se tak pohybují od 20 do 99 %. Ale je to vůbec důležité?
Podíl AI kódu zatím není moc dobrá metrika produktivity, kvality ani úspěchu projektu. Bez kontextu je to spíš pěkné číslo do linkedinového slidu. A kvůli líbivým číslům tu nejsme.
AI kód vytvoří. Někdo ho ale musí dostat do produkce
AI výrazně zrychlila samotné psaní kódu. O tom žádná. Neodstranila ale všechno, co stojí mimo kód.
Pořád je potřeba pochopit, jaký problém vlastně řešíme. Dodat AI agentovi správný kontext. Vybrat z několika technicky možných řešení to, které dává smysl pro konkrétní byznys. Zvážit bezpečnost, provozní náklady nebo budoucí rozvoj. Výsledek otestovat, propojit se zbytkem systému a nasadit.
A hlavně nést odpovědnost za výsledek. „Napsal to Claude“ zatím není moc použitelná odpověď, když v kritický moment přestane fungovat produkce.
S rostoucím množstvím generovaného kódu se navíc odpovědnost vývojáře nezmenšuje. Možná právě naopak. Agent zvládne za kratší dobu vyrobit víc kódu – a taky víc problémů.
V praxi už jsme narazili na jednoduchou komponentu nafouknutou na tisíce řádků, zbytečně velké architektonické změny nebo automatické code review, které sebevědomě ohlásilo závažnou bezpečnostní chybu. Později se ukázalo, že ji našlo v dokumentaci, ne ve vyvíjeném systému. Snaha se počítá, ale do produkce ji radši nepouštějme.
Proto se liší i míra kontroly. U rychlého prototypu nebo interního nástroje nemusí dávat smysl zkoumat každý řádek. U backendové logiky, citlivých dat nebo kritické části infrastruktury už ano.
AI navíc vývojáři nemusí ušetřit čas. Umožní mu ale odvést více práce: řešit několik oblastí paralelně, rychleji porozumět neznámé části systému nebo během chvíle projít několik repozitářů. Část ušetřeného času pak spolkne ověřování a oprava řešení, která byla až moc kreativní.
V Cookielabu nemáme jednu povinnou víru v AI
AI používáme intenzivně. To ale neznamená, že máme jeden správný návod, který povinně dostane každý vývojář spolu s notebookem.
Jednotliví lidé volí různé postupy podle projektu, rizika i vlastní zkušenosti.
Dobře je to vidět na otázce, kolik volnosti dát AI agentovi. V jednom přístupu dostane co nejvíc kontextu a nástrojů. V jiném ho zavřeme do izolovaného virtuálního prostředí bez přístupu ke Gitu a dovolíme mu pracovat pouze s tím, co mu předáme.
Oba přístupy mají svou logiku. Více kontextu může přinést lepší výsledek. Více oprávnění ale také znamená více prostoru způsobit škodu.
Podobný rozdíl najdeme i v samotném zadávání práce.
První cesta spočívá v co nejpřesnější specifikaci výsledku: promyslet rozhraní, popsat požadované chování, případně připravit testy a teprve potom nechat AI implementovat.
Druhá připomíná práci sochaře. Nejprve vznikne hrubý výsledek a ten se postupně tvaruje pomocí dalších instrukcí a okamžité zpětné vazby.
V praxi se oba přístupy kombinují. Někdy potřebujeme přesný plán, jindy se k dobrému řešení dostaneme rychleji iterací. Odbornost nespočívá ve znalosti jednoho magického promptu, ale taky v tom, že poznáme, kolik autonomie, kontroly a přípravy si daný úkol zaslouží.
Trh se mění
AI nemění jen práci vývojářů. Posouvá i hranici toho, co si dnes dokážou vytvořit samotné firmy.
V menších společnostech tak mohou vznikat reálně používané interní aplikace i bez klasického vývojového týmu: plánovače výroby, rozhraní pro dodavatele nebo nástroje napojené na další systémy.
Dříve by podobný nápad dostal cenovku v milionech korun a pravděpodobně by skončil jako „dobré, ale moc drahé“. Dnes může vznikat postupně. První verze vyřeší malou část problému a firma ji následně rozšiřuje přesně podle toho, co potřebuje.
Na druhém konci stojí velké organizace. Mají dostatek procesů vhodných k automatizaci, zdroje na experimentování a technické týmy schopné propojit nové nástroje se stávajícími systémy.
Mezi nimi jsou středně velké firmy, kde změny často procházejí interním IT, větším počtem lidí a zavedenými procesy. Postupují proto pomaleji. Právě přetížené interní IT ale může být důvodem, proč externího technologického partnera potřebují dál.
Je to proměna trhu „z obou konců“: menší firmy získávají schopnosti, které dříve neměly, zatímco velké organizace mají zdroje na systematické zavádění AI. Prostřední část trhu je organizačně pomalejší, ale změna se jí nevyhne.
Nejrychleji proto mizí část trhu založená na menších, snadno ohraničitelných zakázkách, které si dnes klient dokáže vytvořit sám nebo pomocí hotové platformy (třeba rezervační formulář pro svůj hotel).
To neznamená konec softwarových agentur. Znamená to ale konec pohodlného přesvědčení, že samotná schopnost produkovat kód je dostatečná přidaná hodnota.
AI snižuje cenu kódu. Zvyšuje hodnotu úsudku
Čím zkušenější vývojář, tím lépe dokáže zadat problém, rozpoznat chybné řešení, posoudit kompromisy a udržet vývoj v rozumných kolejích.
AI proto senioritu automaticky neruší. V současné fázi ji naopak často násobí. Zkušený člověk dokáže ze stejného nástroje získat lepší výsledek – a hlavně dřív pozná, že agent právě sebevědomě staví dálnici úplně jiným směrem.
Pokud by seniorita ztrácela hodnotu, nedávalo by moc smysl, aby Anthropic najímal nejlepší a také nejdražší programátory místo armády levných juniorů. Kvalita člověka totiž ovlivňuje také kvalitu práce, kterou s AI odvede.
Pro softwarové agentury z toho plyne poměrně jasný úkol. Jejich hodnota se musí posunout:
- od produkce kódu k pochopení obchodního problému
- od izolované aplikace k integraci s existujícím prostředím
- od rychlého prototypu k bezpečnosti, robustnosti a škálování
- od technického výstupu k odpovědnosti za funkční a udržitelné řešení
AI snižuje bariéru pro vytvoření softwaru. Zároveň zvyšuje laťku pro ty, kteří za jeho vytvoření chtějí dostat zaplaceno.
Méně psaní, více odpovědnosti
Nečekáme, že AI vývojáře ze dne na den nahradí. S rekvalifikací na instalatéra bychom proto ještě chvíli počkali :-)
Pravděpodobnější než náhlý softwarový armagedon je postupná proměna práce: méně ručního psaní kódu, více definování výsledku, ověřování, integrací a rozhodování.
AI může napsat 20, 80 nebo 99 % kódu. Samotné číslo ale neříká, zda vznikl dobrý produkt, jestli bude fungovat za rok ani zda řeší správný problém.
Procento vygenerovaného kódu se reálně klidně může blížit stovce. Odpovědnost za výsledek zůstává na lidech. Zatím!