În lumea dinamică a dezvoltării software, necesitatea optimizării procesului de viață al aplicațiilor - Application Lifecycle Management (ALM) - este sub o presiune continuă pe măsură ce sistemele software devin tot mai complexe. Acest proces acoperă gestionarea completă a ciclului de viață a unei aplicații software, de la concepție și dezvoltare, la implementare și întreținere, până la scoaterea din uz. De-a lungul anilor, ALM s-a dezvoltat, încorporând diverse cadre și metodologii pentru a îmbunătăți productivitatea și a optimiza fluxurile de lucru.
Procesul ALM, în forma lui modernă, există de peste două decenii. În tot acest timp s-a adaptat și a evoluat pentru a răspunde dinamicii și complexității caracteristice industriei software. Complexitatea procesului ALM cuprinde până astăzi activități ca: requirements management, version control, build automation, testing, deployment, release management și lista poate continua. Toate aceste activități sunt incluse într-o multitudine de cadre și abordări cu diferite grade de iterativitate care, închizând cercul, au contribuit și mai mult la adopția și evoluția procesului ALM.
Complexitatea la care s-a ajuns în două decenii a mai adăugat și procese ce nu sunt tehnice. Procese care necesită mai multa gândire logică, atenție, organizare, înțelegerea semantică a unei cerințe și multă activitate repetitivă. Aceste procese necesită mai puține bagaje tehnice.
Lista acestor activități este lungă; unele dintre cele mai des întâlnite dintre aceste procese sunt:
scrierea de cerințe și stories care trebuie să respecte o structură; să fie independente, negociabile, să rezolve o problemă a viitorului utilizator, să fie estimabile, să fie testabile, să fie concise și inteligibile;
scrierea de "acceptance criteria", care însoțesc aceste stories și care sunt măsurabile, se pot urmări, sunt relevante și limitează în timp acțiunea story-ului;
Trăim într-o lume în care ceea ce se produce astăzi devine și mai complex, cu și mai multe componente dependente și asta cere ca un proiect să adopte o combinație tot mai mare din activitățile și cadrele amintite mai sus. Toate împreună contribuie la eforturi mai mari și mai costisitoare de a dezvolta și menține noile aplicații software.
În aceste condiții presiunea se revarsă pe procesul ALM și pe cei care participă la buna lui funcționare. Dar există și o veste bună: GenAI is here to help.
Acest tip de AI, numit Inteligență Artificială Generativă, este o unealtă ușor de folosit și implementat, care poate redefini modul în care se desfășoară unele activități consumatoare de timp.
Ca orice alt domeniu ce trece printr-o modificare fundamentală și părțile componente ale ALM se pot automatiza cu la fel de mult succes. Mai ales cele unde este nevoie de cunoștințe și expertiză non tehnică, ca cele amintite mai sus. Iar automatizarea se poate face mai ușor cu GenAI și la costuri reduse.
Adopția poate începe ușor de la sarcini mărunte la care este nevoie doar de înțelegerea semantică, implementarea însemnând simple apeluri către un endpoint oferit de un provider GenAI, însoțit de o întrebare referitoare la acea sarcină care urmează a fi rezolvată. Acest proces se numește prompting engineering, și poate fi folosit pentru a descrie cea mai mică unitate de automatizare pentru toate cazurile non tehnice menționate mai sus.
Crescând nivelul de utilizare, cu GenAI s-ar putea automatiza cazuri și mai complexe prin procesul numit embedding. Acest proces mai tehnic decât prompting engineering permite automatizări în sfera creării de documente, comparării semantice a documentelor, depistării similitudinilor și altele. Astfel se pot automatiza, începând de la sugestia de cerințe pe baza documentelor existente ale proiectului sau a interviurilor cu utilizatorii și stakeholderii, mergând până la scrierea story-urilor ce corespund unui epic, identificarea story-urilor lipsă dintr-un epic sau identificarea story-urilor dublate din întreg proiectul, predicția conflictelor între cerințe din întreg proiectul, eficientizarea prioritizării incrementelor de dezvoltare într-un cadru SAFe. Și scenariile pot continua.
Deși în procesul Application Lifecycle Management, automatizarea este foarte dezvoltată, când vine vorba de AI, aceasta se poate lovi de scepticismul economic, social și de natura drepturilor de autor.
Gândindu-ne la consecințele sociale în adopția GenAI, unii factori sunt predictibili. GenAI este un sistem de inteligență artificială antrenat special pentru acțiuni de lucru cu datele, nefiind dezvoltat pentru a înlocui expertiza, creativitatea, flexibilitatea, adaptarea și cogniția umană. Automatizarea unor sarcini repetitive ce necesită analiză nu o să înlocuiască o persoană. În schimb, va asista acea persoană în livrarea unui conținut superior într-un timp mai scurt și mai complet, ce acoperă scenariul de lucru din mai multe unghiuri.
Dacă ne gândim concret la un exemplu, GenAI ar putea analiza rapid și continuu un set de cerințe din perspectiva unei norme ISO. Iar asta l-ar ajuta pe inginerul software, BA-ul, sau pe oricine scrie acele cerințe pentru a le îmbunătăți, înainte să fie trimise la echipa responsabilă de review-ul calității finale.
Când vine vorba despre implicațiile economice, promptingul costă câțiva cenți pe interacțiune. Și timpul mai scurt necesar creării de conținut mai bun aduce economii substanțiale ca să acopere costurile de câteva ori. Pentru automatizări mai sofisticate, ce implică embeddings, folosirea unui GenAI comercial poate face costurile prohibitive foarte rapid. Dar și aici sunt soluții prin adoptarea unor modele open source. În felul acesta costurile sunt doar cele asociate enviromentului în care funcționează acele modele.
Legat de drepturile de autor, acestea sunt deținute de cel care utilizează GenAI disponibil sub licență comercială. Companiile ce dețin modele de GenAI dau asigurări că datele la care au acces acestea nu vor fi folosite pentru a îmbunătăți în continuare acele modele.
În concluzie, o dată cu evoluția tehnologiei și a complexității procesului ALM, a apărut o presiune de a crea și a livra și mai rapid și mai eficient. Această dinamică deschide oportunitatea adoptării unor soluții care să ajute într-un sistem tehnologic aglomerat.
În acest context, implementarea GenAI-urilor reprezintă un pas natural și inevitabil în evoluția procesului ALM.