ABONAMENTE VIDEO REDACȚIA
RO
EN
Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 133
Abonament PDF

Software craftsmanship în era AI

Adrian Balașko
Business Analyst Community Manager @ PitechPlus



PROGRAMARE

În 2011 Marc Andreessen, co-fondatorul firmei de investiții Andreessen Horowitz, scria un articol intitulat "Why Software Is Eating The World", în care descria modul în care companiile emergente axate pe software înghițeau industrii întregi și perturbau businessuri dominante anterior. Doar o decadă mai târziu, ne trezim cu "AI Is Eating The World", într-o desfășurare de evenimente oarecum similară care ne-a luat prin surprindere pe majoritatea.

Inteligența artificială (AI) a avut un impact major în diverse industrii, iar domeniul ingineriei software nu face excepție. Din contră, AI-ul va fi omniprezent în dezvoltarea de software în următorii ani, poate chiar mai rapid decât ne putem imagina astăzi.

AI are potențialul de a revoluționa modul în care software-ul este dezvoltat, testat și întreținut, aducând un nou nivel de automatizare și eficiență, nemaiîntâlnit în acest domeniu. Însă, odată cu această transformare, apar noi provocări și oportunități, la care toți specialiștii din software development trebuie să se adapteze (mai repede decât ne imaginăm).

În primul rând, să enumerăm câteva din avantajele pe care AI-ul le aduce industriei de software development, apoi să conștientizăm limitările AI din prezent și, la final, să reflectăm asupra impactului AI în "software craftsmanship" din prezent și viitor.

AI și părțile bune

Unul dintre cele mai semnificative efecte ale AI asupra ingineriei software este automatizarea sarcinilor repetitive și/sau de rutină. Aceste sarcini sunt esențiale pentru procesul de dezvoltare, dar pot fi consumatoare de timp și plictisitoare. Exemple de acest tip : refactorizarea codului, remedierea erorilor și testarea. Folosind AI, programatorii pot automatiza aceste sarcini, câștigând mai mult timp pentru a se concentra pe alte sarcini, ideal mai strategice și creative. Rezultă astfel o productivitate mai mare, un software de calitate superioară și un timp redus de livrare.

Un alt impact al AI este capacitatea de a automatiza funcții specifice cu intrări și ieșiri predefinite și precise. De exemplu, AI poate fi folosită pentru a genera automat cod pe baza unor cerințe clare și complete, eliberând programatorii de nevoia de a scrie cod repetitiv de la zero. Această abordare duce la economisire de timp și reduce riscul de erori, rezultând o calitate mai bună a software-ului.

Utilizarea AI poate aduce mai multă inovare. Prin automatizarea taskurilor de rutină și repetitive, programatorii dispun de mai mult timp și energie pentru a se concentra asupra dezvoltării de soluții noi și creative, ceea ce duce la creșterea inovației și la furnizarea de soluții superioare.

Limitările AI

Realitatea este că AI are (încă) (multe) limitări. În primul rând, este necesar factorul uman, deoarece doar acesta, înțelegând modul în care se rezolvă probleme specifice pentru nevoile de business, poate oferi contextul și nuanțele importante pentru AI. Deși AI poate automatiza rezolvarea cerințelor de rutină și repetitive, acestuia îi lipsește creativitatea și abilitățile de gândire critică ale unui specialist IT uman.

Nu am ajuns (încă?) în stadiul în care un manager de produs, fără un background tehnic puternic, să poată comunica cu AI pentru a crea un produs complex și complet funcțional. Există multe modalități de a atinge aceleași obiective și doar o persoană care înțelege problemele și opțiunile tehnice poate combina aceste aspecte pentru a satisface eficient cerințele de business.

AI este capabilă să îndeplinească doar sarcini pentru care a fost antrenată și este limitată de datele și algoritmii care i-au fost furnizați. Nu poate gândi critic și creativ. Nu poate înțelege contextul și complexitatea problemelor noi de business din lumea reală.

AI ridică nivelul

Indiferent dacă suntem pregătiți sau nu, AI este deja prezentă în industria software și va continua să evolueze într-un mod accelerat și exponențial. Prin urmare, este crucial ca atât programatorii, cât și toți ceilalți membri ai unei echipe tradiționale de dezvoltare software, să-și extindă abilitățile și expertiza în domeniul AI. Este necesar ca fiecare dintre noi să ne dezvoltăm gândirea critică și abilitățile de rezolvare a problemelor, deoarece capacitatea de a lucra eficient cu AI va deveni tot mai căutată la nivel global.

Programatorii seniori, oamenii de produs și cei de business vor trebui să dobândească o înțelegere mai profundă a modului în care funcționează AI și a limitărilor prezente. Cu toții vor trebui să fie capabili să comunice eficient cu noile instrumente AI, să le configureze, să le personalizeze și să se asigure că se aliniază cu nevoile de business. Pe lângă acestea, trebuie să fie în măsură să interpreteze și să analizeze rezultatele produse de AI, să ia decizii informate pe baza acestor rezultate și să integreze toate aceste aspecte cu tehnologia care evoluează rapid.

Progresul AI aduce cu sine noi provocări și oportunități. Automatizarea operațiilor repetitive și a funcțiilor specifice înseamnă că bariera de intrare în domeniu va fi tot mai ridicată. Acest aspect va genera o cerere crescută pentru specialiști cu experiență și abilități extinse. Se va pune accent tot mai mult pe valoarea individuală, pe experiența și creativitatea necesare pentru a dezvolta soluții noi și inovatoare care pot proveni doar din intuiția și raționamentul uman.

Augmentarea dezvoltării software

Să aruncăm o privire la o zi obișnuită din viața profesională a unui programator / inginer software. Sarcinile de zi cu zi pot varia în funcție de individ și de companie, dar există câteva activități comune:

  1. Verificare și răspundere la e-mailuri: inginerii software își încep adesea ziua verificând și răspunzând la e-mailuri. Putem folosi AI pentru a sorta și prioritiza e-mailurile sau chiar pentru a genera răspunsuri. Cu toate acestea, trebuie să verificăm și să aprobăm răspunsurile finale înainte de a le trimite.

  2. Code review: programatorii petrec o cantitate semnificativă de timp revizuind codul scris de ei înșiși sau de colegii lor. Această activitate include revizuirea pool requesturilor, furnizarea de feedback și verificarea respectării standardelor de codare. AI poate fi utilizată pentru analiza codului și asigurarea calității, dar, la sfârșitul procesului, programatorul este cel care revizuiește rezultatul final și ia deciziile definitive.

  3. Meetingurile: inginerii software participă periodic la ședințe cu echipa, întâlniri de proiect/ produs sau întâlniri cu clienții. Acestea se pot desfășura fie în persoană, fie online, acoperind subiecte precum statusul proiectului, colaborarea în echipă și rezolvarea problemelor. AI nu poate participa în mod direct la întâlniri, dar poate fi folosită pentru a programa, a reaminti și a genera rezultatele întâlnirilor sau pentru a sumariza, conform preferințelor individuale, minutele ședințelor.

  4. Documentație: programatorii petrec timp documentându-și codul, redactând rapoarte tehnice sau actualizând documentația proiectului. Putem utiliza AI pentru generarea și rezumarea documentelor. Cu toate acestea, programatorul trebuie să examineze și să aprobe documentația finală.

  5. Învățare și dezvoltare: inginerii software învață și își dezvoltă constant abilitățile. Aceștia pot citi articole din industrie, pot experimenta noi tehnologii sau pot urma cursuri online. AI economisește timp prin identificarea și recomandarea resurselor de învățare, însă, în final, factorul uman este cel care efectuează în continuare învățarea și dezvoltarea abilităților necesare.

Este dificil să stabilim o cifră exactă pentru reducerea timpului acordat "sarcinilor secundare" menționate mai sus, deoarece totul variază considerabil în funcție de persoană și companie. Cu toate acestea, putem estima că utilizarea AI ar putea duce la o scădere cu 25-50% a timpului alocat pentru astfel de sarcini. De exemplu, un programator care își petrece 60% din timp hands-on cu sarcini care aduc valoare pentru produs și companie, 35% cu "sarcini secundare" și 5% cu inovare, ar putea să-și sporească timpul dedicat inovării la aproximativ 15% - 25%, cu ajutorul AI. Acest lucru ar însemna o reducere la jumătate a timpului petrecut cu "sarcini secundare" și o creștere de trei până la de cinci ori a timpului petrecut pe inovare.

Deși lucrăm în industria software și suntem expuși constant la tehnologii și instrumente noi, care evoluează într-un ritm accelerat, suntem reticenți adesea în fața schimbărilor necesare. Putem căuta inspirație într-o lucrare veche, "Arta războiului" de Sun Tzu, care ne învață să ne construim o abordare în trei pași în fața oricărui "inamic" redutabil:

  1. Cunoaște-ți adversarul: să evaluăm AI cu atenție, să depunem efort constant pentru a descoperi și analiza toate datele relevante, ca apoi să le putem folosi în decizii informate.

  2. Alege-ți bătăliile: să avem răbdare, să reflectăm ce întrebări ar trebui să ne adresăm și ce aspecte ar trebui să abordăm astăzi pentru a depăși acest status quo marcat de AI.

  3. Inovează-ți armele: în contextul AI modern, aceasta înseamnă să ne înnoim abordarea, să ne dezvoltăm accelerat setul de abilități și chiar să ne îmbunătățim mentalitatea.

AI este deja o realitate în industria software. Este momentul să ne perfecționăm și să evoluăm, altfel riscăm să fim depășiți (chiar dacă poate părea paradoxal).

Concluzii

Cel mai bun mod de a ne pregăti pentru un viitor în care "AI va înghiți lumea", unul care se apropie vertiginos, este să rămânem conectați la evoluțiile rapide din domeniu și să ne "murdărim mâinile" cu cât mai multă experiență pe instrumentele și tehnologiile noi.

În doar câteva luni, au apărut tooluri noi, direct integrate cu cele mai utilizate suite software, care pot explica bucăți de cod, pot scrie cod, pot detecta și corecta erori, pot genera teste unitare și multe altele. Toate acestea au implicații uriașe pentru industria IT și pentru noi toți care activăm în ea.

Important este că putem deveni mai eficienți și mai creativi și, mai ales, putem alege direcția în care dorim să evoluăm.

LANSAREA NUMĂRULUI 149

Marți, 26 Octombrie, ora 18:00

sediul Cognizant

Facebook Meetup StreamEvent YouTube

NUMĂRUL 147 - Automotive

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects