Žádné téma z oblasti IT není v současné době tak skloňované jako umělá inteligence. Skoro to vypadá, jako by měla nahradit většinu pracovních pozic. Umí nezávazně konverzovat, překládat texty, napsat dopis i semestrální práci nebo poradit snad v každé situaci. Jazykový model ChatGPT, označovaný za průlom v technologii umělé inteligence (Artificial Intelligence – AI), opravu zvládne prakticky cokoli, o co jej požádáme. Třeba i napsat jednoduchý skript nebo celý program pro konkrétní účel. A tak se samozřejmě hned začalo spekulovat o tom, jaké profese už brzy AI nahradí. Budou to právníci, překladatelé nebo novináři? A co vývojáři softwaru? AI přece všechno zná, nedělá chyby, může předem velmi rychle analyzovat různé varianty řešení zadaného problému a také automaticky zkontrolovat programový kód, který napíše (možná spíše vygeneruje). Nebo to tak docela není?

AI ve vývoji? Nic nového pod sluncem!

Všeobecné nadšení z ChatGPT a umělé inteligence, která nás zbaví každé otravné a monotónní práce, jako může být i vývoj běžných aplikací, by měl zchladit fakt, že je standardním nástrojem vývojářů už celkem dlouhou dobu. Například služba GitHub Copilot, která je postavena na technologii umělé inteligence z dílny GitHubu a OpenAI (tedy tvůrce jazykového modelu ChatGPT), má dnes mezi vývojáři více než 1,2 milionu uživatelů. Těm pomáhá s automatizovaným doplňováním kódu v různých programovacích jazycích a tím jim výrazně šetří čas (a jejich zaměstnavatelům peníze). Potvrzuje to i David Bečvařík, Senior Solution Architect pro region střední a východní Evropy ve společnosti Red Hat, která má jedno ze svých výzkumných a vývojových center i v Brně. „Otázku bych spíše položil opačně a ptal se, jak je možné, že ještě existují firmy, které AI při vývoji nepoužívají – některé z těchto nástrojů jsou na trhu dostupné již delší dobu a jsou schopny ušetřit firmám velké množství nákladů při vývoji, testování i provozu aplikací. Takže pokud jde o vývoj v rámci open source (počítačový software s otevřeným zdrojovým kódem – pozn. red.) projektů, je umělá inteligence obecně využívána už velmi dlouho, ať už v podobě různých pluginů, které pomáhají s programováním, nebo v oblasti testování.“

Bečvařík tím připomíná důležitou oblast jejího využití při vývoji softwaru, která nespočívá v generování samotného kódu, ale především v jeho analýze a testování na výskyt chyb. Testování totiž není zrovna oblíbenou součástí práce vývojářů, protože celý vývoj zpomaluje (často jen zdánlivě, protože s bezchybným kódem se dostaneme k cíli rychleji). Bez automatizačních nástrojů je pomalé a je zpravidla nutné do něj zapojit další členy projektového týmu. AI v tomto případě pomůže plnit hlavní cíl vývoje nového softwaru, kterým by nemělo být jen vytvoření co největšího množství kódů, ale naopak napsat jen nezbytné minimum kódu, které bude přesně plnit svůj účel. A testování je prostředkem ke splnění tohoto cíle.

Najměte AI na „špinavou práci“

Testování ale není jedinou úlohou, kterou může umělá inteligence uvolnit ruce kvalifikovaným vývojářům. Jen je potřeba pečlivě zvážit, kdo a jakým způsobem bude s nástroji podporovanými AI při vývoji pracovat. „Mnoho názorů o AI, které slýchám, tvrdí, že AI bude schopna převzít veškerou odpovědnost za daný úkol za člověka, a implicitně předpokládá, že odpovědnost člověka za úkol se prostě tak nějak… vypaří?“ říká Ben Kehoe, který se ve společnosti Amazon Web Services zabývá ekosystémem kolem vývoje moderních cloudových aplikací. Míří tím k prostému faktu, že každý nástroj je jen tak mocný, jak schopný je jeho uživatel.

To znamená, že šikovný vývojář určitě může nechat nějaký nástroj podporovaný umělou inteligencí generovat kód – ale za předpokladu, že jej dokáže zkontrolovat a převzít za něj zodpovědnost. Typicky může jít o určitým způsobem standardizované části kódu nebo šablony, nevyžadující kreativitu lidského vývojáře, který se může namísto toho soustředit na řešení složitějších problémů s vyšší přidanou hodnotou. AI může také vývojářům pomoci zorientovat se v již existujícím kódu, který vytvořil někdo jiný, nebo s pochopením programů a skriptů napsaných v jazycích, se kterými tak často nepracují. Oproti tomu v rukách nezkušeného vývojáře může být role umělé inteligence spíše na obtíž, protože se při vývoji vydá zcela špatným směrem nebo přehlédne chyby.

„Nástroje AI, čímž dnes myslíme velké jazykové modely (Large Language Models – LLM) jako jsou ChatGPT nebo Github Copilot a další, sice výrazně zvyšují efektivitu práce programátorů a umožňují jim vyvíjet rychleji, bohužel ale ne vždy lépe a bezpečněji. Stále se jedná jen o nástroj, který musíme umět správně použít, a to paradoxně vyžaduje nejen znalost programování, ale i samotné práce s těmito AI asistenty,“ vysvětluje David Bečvařík z Red Hatu a dodává: „Velké nebezpečí představuje zejména bezmezná důvěra ve výstupy, které tito AI asistenti generují, a zaplavení trhu nekvalitními vývojáři, kteří tyto výstupy umělé inteligence slepě používají a vytvářejí těžko udržovatelný kód.“ Zásadní význam kontroly výstupů AI při generování programového kódu zdůrazňuje i Jan Kotlín, šéf marketingu a prodeje české společnosti Sprinx Systems, když říká: „Pokud jde o náhradu programátorů nějakou formou umělé inteligence, na základě testování dostupných řešení jsme zjistili, že kód generovaný AI není úplně bez chyb a jeho použití je pak podmíněno velmi pečlivou kontrolou. Proto pro nás, alespoň zatím, nemá AI při vývoji zásadní využití.“

Dnes tedy pomáhá umělá inteligence zkušeným vývojářům dosáhnout lepších výsledků, v kratším čase a s vyšší efektivitou, ale nevypadá to, že by AI mohla v dohledné době jejich práci nahradit. Ostatně podle Světového ekonomického fóra může technologie umělé inteligence do roku 2025 zastoupit asi 85 milionů pracovních míst, ale zároveň může pomoci vytvořit až 97 milionů nových pozic. A na jakých místech, kromě generování kódu a jeho testování či analýzy, může AI ve vývojářských firmách pomáhat?

Pomoc s výběrem i řízením programátorů

Jedním z největších problémů, které vývojářské firmy řeší, je zajištění dostatku vývojářů kvalifikovaných pro dané úkoly, respektive sladění počtu developerů, jejich specializace a naplánovaných projektů. Zde může AI prokázat svoji sílu v přesných predikcích a podpoře plánování na základě značného množství vstupních dat. Umělá inteligence také mnohem rychleji projde a vyhodnotí kvalifikaci kandidátů, případně navrhne nejlepší způsoby otestování jejich schopností. Háček je ale opět v potřebě „lidského přístupu“ při práci s lidskými zdroji, jak potvrzuje David Bečvařík z Red Hatu. „AI nám při náboru vhodných kandidátů určitě pomoci může, ale i zde je třeba rozumět tomu, jak tuto technologii správně používat. Už dnes jsou ti nejlepší IT specialisté zahlcování nabídkami na spolupráci a toto může situaci ještě zhoršit. Když si budu vybírat mezi firmou, kde se mnou komunikuje zkušený pracovník z HR, a interakcí s AI, určitě se budu při osobním přístupu cítit důležitější. Nezapomínejme, že lidské interakce vytváří kulturu firmy, a to často rozhoduje o tom, že z ní IT specialisté neodcházejí.“

Mezi nejnáročnější role při vývoji softwaru určitě patří projektový management a už dnes se AI při řízení projektů používá. Úlohou umělé inteligence je pomoc s optimalizací procesů při řízení projektů, s plánováním a distribucí zdrojů, stejně jako zadáváním a kontrolou splnění dílčích úkolů. Analýza celého procesu pomůže identifikovat oblasti ke zlepšení a podpoří i rozhodování projektových manažerů. Prediktivní analýza zase pomůže se včasným odhalováním potenciálních problémů a přecházením jejich vzniku. AI také může analyzovat chování uživatelů vyvíjeného softwaru a pomoci developerům s optimalizací funkcí a jejich ovládáním tak, aby byl výsledný produkt pro uživatele intuitivní a snadno ovladatelný.

Práce v IT

Stáhněte si přílohu v PDF

Užitečnou roli může AI sehrát i v dalších souvisejících oborech – ať už je to finanční plánování, nebo například marketing. „V marketingu testujeme AI opravdu intenzivně, například v rámci brainstormingu při tvorbě claimů, CTA (design, který má vyvolat okamžitou reakci nebo prodej - pozn. red.) i obsahu. Umělou inteligenci navíc chceme zapojit i do tvorby grafiky nebo tipování cílové skupiny. Zde vidíme obrovský potenciál pro využití AI,“ dodává Jan Kotlín ze Sprinx Systems.

Do vývoje jazykových modelů plynou od velkých hráčů jako Microsoft či Google stovky milionů, a tak se v této oblasti jistě brzy dočkáme dalších možností inovativního využití umělé inteligence. Jelikož ale aplikace AI, jako je ChatGPT, spoléhají na analýzu existujících dat, je stále nutné myslet na to, že mohou chybovat. Pro zajištění kvality je proto nezbytná nejen kvalifikace pro správné použití nástrojů AI, ale také schopnost výstupy zkontrolovat.

Článek byl publikován ve speciální příloze HN Práce v IT.