Am avut plăcerea de a discuta cu invitații noștri la panel despre tool-uri și impactul folosirii AI-ului în programare. Alături de mine au fost:
Mihai Constandis - Country Manager @ Cognizant,
Matei Neagoș - Head of Delivery @ Cognizant,
Alin Turcu - Engineering Director @ Cognizant,
am început cu o scurtă introducere din partea fiecărui invitat
Mihai Constandis: Împlinesc 13 ani la Cognizant unde m-am alăturat inițial în postura de client. De când Softvision a devenit Cognizant am avut oportunități mai diversificate și o expunere mult mai mare.
Matei Neagoș: Sunt la Cognizant de 15 ani, fiind responsabil de tot ce livrăm la clienți și de echipele cu care livrăm.
Alin Turcu: Am început acum 12 ani la Cognizant la o sesiune de practică de vară. Am avut diverse roluri tehnice în zona de mobile, dar în ultima perioadă mă ocup de AI și date. De 2 ani, conduc divizia de Data&AI.
Radu Orghidan: Sunt în Endava de 6 ani. Am revenit în România acum 13 ani după o perioadă lungă în Spania unde mi-am făcut doctoratul.
Ovidiu Mățan: Cât de mult ajută și cât de mult încurcă tool-urile de Copilot și GitHub?
Radu Orghidan: Pe mine mă ajută enorm. Eu nu mai scriam cod de o perioadă și am reînceput să scriu, deoarece este mult mai simplu să le dau colegilor cărora vreau să le explic un prototip, un mic cod funcțional, în loc să le explic cu diagrame și texte. În discuțiile cu clienții, îmi formez o idee, iar, apoi, fac ceva rapid cu Copilot și pivotăm. Eu nu mai scriu cod de mult, dar mă ajută mult la partea de comunicare. Ajută și la mărunțișurile de sintaxă, mai ales de când avem și Canvas. Îmi oferă surse de inspirație, ajutându-mă să văd unghiuri la care nu mă gândisem. Dacă îi dai un rol și suficient context, îmi arată detalii la care nu mă gândeam.
Ce tool-uri folosiți?
Alin Turcu: Folosim Copilot atât pe partea de dezvoltare, cât și pe partea de îmbunătățire a productivității. Folosesc Copilot pentru a genera idei pentru job descriptions, formulări, cerințe de proiect. Mă ajută să îmi dezvolt ideile. Pe partea de scriere de cod, mă ajută la partea de unit testing, iar acum explorăm chiar și partea de integration testing în care îi dăm un endpoint și definiția endpoint-ului, iar el generează datele de test, dar și testul în formă de cod. Procesul de dezvoltare va deveni mai rapid. Vom furniza niște cerințe pe care AI le analizează, se generează o arhitectură, noi oferim input, iar apoi se generează codul, testele și produsul (la final).
Cum identificați defectele?
Alin Turcu: Problema cu modelul care testează codul scris tot de el este că va testa cum a scris codul, nu comportamentul. De aceea, e bine să folosim un alt model care se uită la cerințe și care testează în funcție de cerințe, nu de cod.
Radu Orghidan: Mi-am adus aminte de un exemplu. Uneori generează cod care crapă. După 5 iterații, sistemul și-a dat seama de ce crăpa. Mi s-a părut incredibil că a reușit să reflecteze asupra lucrurilor produse.
Mihai Constandis: După momentul de hype de acum 2 ani, acum văd clienți care preiau principiile și aduc AI-ul în scenarii mai plauzibile, mai normale. AI-ul crește la nivel de capabilități, dar nu crește liniar, ci exponențial (10x anual). Curba de adoptare AI va fi destul de abruptă. Dacă nu se exploatează fereastra curentă de oportunitate (care este undeva la 5 ani), vom avea de pierdut.
Clienții folosesc AI ca să își înțeleagă mai bine utilizatorii sau pentru a dezvolta funcționalități?
Mihai Constandis: Cele mai accesibile sunt în zona de date, adică cât de repede putem lua decizii pe baza datelor. Clienții adoptă AI din cauza FOMO (Fear of Missing Out). Ce se va întâmpla dacă nu adopt AI în următorii 5 ani, dar competitorii mei o fac? Vor fi startup-uri care vor folosi AI, iar actorii curenți nu vor reuși același lucru. Revolut e o bancă digitală ce devine o bancă tradițională. Cum ar fi să avem o bancă AI care în timp să devină bancă digitală, iar apoi bancă tradițională. Startup-urile vor aplica AI-ul în fiecare domeniu.
Matei Neagoș: Apropo de clienți, aș mai adăuga un fapt. Clienții noștri sunt companii ce dezvoltă software și care vor să dezvoltăm software pentru ei sau împreună cu ei. În primul rând, își pun întrebarea: Cum se poate accelera dezvoltarea? Aici avem o dihotomie. Pe de o parte, și-ar dori să adopte AI pentru a livra mai repede. Pe de altă parte, sunt reticenți de a da acces la date pentru a obține beneficiile AI.
Aveți modele proprii? Pot fi antrenate mai bine modelele locale?
Matei Neagoș: Da, avem sandbox-uri proprii, spații proprii de joacă. Așa cum am spus mai devreme, clienții nu vor să îți dea acces la date de la bun început, dar vor să fie convinși că vor avea beneficii în urma adopției. Nu am putea inova altfel. Nu cred că e vorba de local sau non-local. E vorba de câte date ai și ce putere de procesare ai. Cu siguranță, ai mai mult control.
Radu Orghidan: Aș avea eu un răspuns. Lumea dorește să vadă la alții înainte de a adopta AI intern. Când antrenezi un model local, pierzi din generalitate. Pentru mine, trainingul local al unui model este o ultimă opțiune.
La IT Days, discutând cu voluntarii, am aflat de faptul că nu se mai fac internship-uri, că le este foarte greu să se angajeze. Juniorii erau destul de căutați. Erau ieftini și puteau fi crescuți în firmă. Ce părere ai de noua tendință? Are legătură cu AI?
Radu Orghidan: Credeam că e o chestiune specifică Endava. Cum am fost atât de mult în bula asta, am crezut că juniorii erau favorizați. Valul mare de juniori a avansat, iar acum sunt din ce în ce mai puțini junior și mai mulți seniori. Se întâmplă acest lucru și pentru că cererea este de așa natură, dar și pentru că, atunci când vinzi servicii de consultanță ce necesită senioritate nu mai poți vinde atât de ușor juniori. Devii o victimă a propriului succes. Este posibil ca AI să fie parte din ecuație, deoarece se presupune că AI-ul te ajută să performezi mai bine, mai repede.
Mihai Constandis: Aș dori să descriu puțin fondul, cel puțin așa cum este pentru noi. Noi avem o istorie, o reputație în a angaja mulți juniori. Am avut serii întregi de oameni pe care i-am format. În ultimul an și jumătate s-a schimbat cererea. S-a schimbat dinamica în sector, așa cum s-au schimbat așteptările clienților. Dacă în pandemie a fost o explozie de produse digitale ce trebuiau construite, după 2022 vedem o corecție a ceea ce s-a întâmplat atunci. Dintr-un vendor market cu cerere foarte mare, am devenit un client market unde clientul poate emite așteptări înalte și așteaptă ca furnizorul de servicii să se ridice la acel nivel. Trebuie să ne uităm și cum va arăta munca celor aflați la început de drum, deoarece task-urile de rutină pot fi preluate de AI. Știm că, la început, juniorii se concentrează pe task-uri de rutină mai mult. Trebuie să ne gândim unde vor fi valoroase aptitudinile de bază, teoretice, ale studenților.
(întrebare din public, Cristian Ureche): Am o remarcă legată de ceea ce s-a discutat. V-ați întrebat unde veți integra juniorii. Vreau să mă refer la altă latură, anume, dacă juniorii nu vor mai face task-urile repetitive, simple, care te ajută să crești în carieră, cum vom mai avea seniori?
Mihai Constandis: Este următoarea întrebare pe care trebuie să ne-o punem. Așa cum spunea și Ovidiu, dacă noi nu continuăm să învățăm, dacă noi nu formăm profesioniști, vom pierde controlul, deoarece AI-ul va face tot.
Crezi că productivitatea a crescut semnificativ prin AI?
Alin Turcu: În momentul de față nu, dar cred că va crește foarte mult. Este o mare diferență între codul scris integral de ChatGPT și cel scris de Copilot integrat cu codebase-ul tău. Dacă învață din ceea ce scrii tu, atunci este foarte util, deoarece evoluează cu tine, iar curba de productivitate tot crește. Ce făceam într-o săptămână vom ajunge să facem în 3 zile. Curba nu merge la infinit. Task-urile complexe trebuie să le gândești tot tu.
Matei Neagoș: Aș dori să dau un răspuns mai pragmatic. Suntem ca în povestea cu broscuța la foc mic care nu sare până nu e prea târziu. Suntem în oala respectivă și ține de noi dacă așteptăm până e prea târziu sau facem ceva. Ce aș vrea să văd de la un junior la un interviu tehnic ar fi să îmi spună ce anume știe dintr-un limbaj și cât de mult s-a jucat cu AI-ul ca să îl ajute. Cuvântul cel mai important legat de AI este singularity. Nu știm cum și în cât timp vom ajunge la un moment pe care nu îl putem înțelege, dar trebuie să facem pași în direcția respectivă.
Mihai Constandis: În timp, am putea să mai adăugăm un nivel de abstractizare care să fie o colecție de limbaje de programare la care să mai adăugăm încă un nivel de abstractizare constând din prompt-uri. Se va democratiza rolul de programator. Va fi un job accesibil unui spectru mai larg de oameni.
O altă evoluție este aceea că programarea este un tool ce te ajută în diverse domenii. Până la urmă, ne va ajuta să avem mai mulți biologi sau mai mulți electricieni care vor avea access la tool-uri de programare. Pericolul este ca lumea să creadă o perioadă că poate face lucruri pe care nu le înțelege, când, de fapt, ceea ce se face nu este cel mai grozav lucru. Se credea că în 5 ani nu vom mai avea nevoie de șoferi. Acum, ni se spune că suntem departe de conducerea autonomă. AI-ul folosește multe resurse, învață foarte greu.
Radu Orghidan: Am observat că cei care scot cele mai bune rezultate din tool-uri ce au AI sunt cei care au un vocabular mai bogat și o gândire mai laterală. Programatorii nu reușeau să obțină rezultate la fel de bune precum colegii lor ce aveau alte specializări. Asta mă duce cu gândul la o carte foarte bună, Idei rebele, unde vedem că, din diversitate, putem obține rezultate care să acopere zonele oarbe din viziunea noastră.
Vom angaja pe cineva doar ca să scrie prompt-uri?
Radu Orghidan: Nu cred că ar fi nevoie, deși există meseria de Prompt Engineer. Am colegi specializați pe partea asta și apelez uneori la ei, deoarece au mai multă experiență decât am eu.
Alin Turcu: Să nu vă închipuiți că cei care fac prompt-uri, scriu doar instrucțiuni. Cine face prompting introduce de multe ori în flow, pe lângă datele necesare, date externe, date proprietare, date dintr-o bază de date, poate fac un SQL query și îmbogățesc mesajul.
Radu Orghidan: În dezvoltarea software, câștigi foarte mult dacă îi dai și niște bune practice, niște reguli, niște exemple. Nu am vorbit de analiza unui code repository care poate fi scanat de AI, astfel încât să obținem o radiografie a acestuia din punctul de vedere al UI-lui, al business-ului, al testelor, al arhitecturii.
(întrebare din sală): Recent am citit un raport despre AI în enterprise în care se evidențiau 3 mari tendințe. Una ar fi proliferarea agenților specializați și orchestrarea acestor echipe de agenți. A doua ar fi procesul disruptiv asupra unor companii precum UiPath sau Cognizant care ar putea fi în pericol, deoarece nu ar mai avea sens să faci RPA dacă interacționezi cu agenți care fac același lucru. Mai era exemplul StackOverflow unde nu mai merge nimeni să își ia răspunsurile, ci mai degrabă apelează la ChatGPT. Giganții vor avea competiție din partea celor mici. Eram curios să aflu care este strategia voastră. A treia tendință este penuria în zona de cercetători LLM.
Radu Orghidan: Strategia pe care o construim este legată de agenți. Agenții sunt acele sisteme care comunică unele cu altele, dar dificultatea constă în folosirea lor. Un POC e un aspect, dar o aplicație care să nu halucineze în producție și care să nu piardă date este altceva. Vom merge în direcția multi-agent.
Alin Turcu: Companiile mari au avantajul experienței vaste în mai multe industrii. Noi oferim multă consultanță în domeniul IT. Spunem cum se selectează agenții, cum se integrează. E foarte greu pentru o companie să dezvolte un sistem multi-agent fără a primi consultanță. Pentru a crea un website nu vei veni să ceri consultanță de la o firmă mare, dar pentru probleme de etică, securitate, guvernanța datelor ai nevoie de un jucător mare care să te ghideze.
Matei Neagoș: Important este să pivotezi odată cu tehnologia. Cognizant a pivotat atunci când a achiziționat Softvision.
Mihai Constandis: Multe companii se uită la talentele existente și se ocupă de partea de upskilling. Anagajații sunt instruiți să înțeleagă beneficiile AI și să investească în upskilling.
(întrebare din sală): Cum poți asigura un client că datele sale locale nu se pierd?
Radu Orghidan: Dacă ceva e local, datele nu mai merg spre cloud, deci nici nu se pierd. Poți antrena modelul local, astfel încât să ruleze acolo. Nu este obligatoriu să faci reinforcement learning cu conversații. Pentru clienți care se tem că datele se pierd în eter, soluția este cloud-ul securizat, inclusiv cu monitorizarea locației fizice a serverului.
(întrebare din sală): AI-ul ne ușurează munca și scrie cod pentru noi. În aceste condiții, cât de multe limbaje noi de programare vor mai apărea?
Radu Orghidan: Eu văd o explozie, o dezvoltare exponențială în acest sens. Se inovează în altfel de framework-uri, în cele agentice.
(întrebare din sală): Ați spus că aveți clienți cărora le este frică să adopte AI. Cum determinați clienții să treacă peste această frică și care a fost cel mai dificil obstacol?
Matei Neagoș: Avem clienți mari unde deciziile depind de board. Cele mai mari îngrijorări sunt pe partea de securitate și date. Încercăm să găsim zone din aplicații și business care sunt mai tolerante cu expunerea datelor.
(întrebare din sală): Ce metodologii de lucru merg mai bine pe proiectele AI?
Radu Orghidan: Răspunsul e simplu: Agile. Fac POC-uri înainte de a construi infrastructura. Apoi, fac infrastructura după principii Agile.
Alin Turcu: POC-ul nu se prea poate face Agile. AI-ul, față de metodologia tradițională, necesită multă cercetare și multe cicluri de încercare-eroare. Depindem foarte mult de datele pe care le avem și este foarte greu să faci o estimare. Eu am combinat partea de POC cu cea de Kanban.
(comentariu din sală): Cea mai importantă modificare pe partea de Scrum-Agile este durata sprintului. Este greu să obții rezultate palpabile în 2-3 săptămâni.
(întrebări din sală): Va dispărea partea de QA manual în următorii ani? Industria merge spre AI și automatizare, dar, testarea manuală scoate încă rezultate foarte bune.
Matei Neagoș: Partea de QA manual se va estompa, iar cea de automatizare va conduce.
de Ovidiu Mățan
de Ovidiu Mățan
de Vlad Ionescu