ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 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 147
Abonament PDF

De la Homo Sapiens la software: Îmbrățișarea schimbării

Alexandru Savu
Engineering Director @ Cognizant



PROGRAMARE


În acest articol vă propunem să călătorim prin câteva dintre cele mai memorabile momente din istoria IT, încercând, în același timp, să evidențiem creativitatea umană și valoarea adăugată de-a lungul anilor. Pentru o perspectivă asupra contribuției umane, vom folosi doi autori de renume și cărțile lor: The Infinite Game de Simon Sinek și Sapiens de Yuval Harari. În cele din urmă, vom încerca să susținem că viitorul software-ului nu este doar despre tehnologie, ci este despre modul în care colaborăm și lucrăm împreună și, de asemenea, este despre împărtășirea unor pași acționabili pentru dezvoltatorii actuali și viitori.

Pentru a ne da seama de calea noastră viitoare și pentru a răspunde la întrebarea, "Suntem încă piesa centrală a ingineriei sau AI va înlocui dezvoltatorii?", este util să ne uităm înapoi la călătoria noastră IT, începând de la primul compilator până la cloud computing și AI.

Dezvoltarea de software a fost întotdeauna despre automatizare și rezolvarea problemelor dificile, așa că datorită unor pionieri (vezi Alan Turing, John von Neumann) am ajuns într-un punct în care la începutul anilor 1940 aveam deja primele calculatoare programabile.

Figura 1. ENIAC

Următoarea mare descoperire a fost în 1952, când Grace Hopper a creat primul sistem asemănător unui compilator care a tradus codul citibil în limbaj mașină, creând premisele pentru programare. Acest lucru a deschis calea pentru dezvoltarea limbajelor de programare timpurii precum Fortran și COBOL.

După aceea, a existat o perioadă accelerată în anii 1970 și 1980, în care computerul personal a luat ființă odată cu apariția sistemelor de operare care schimbă jocul (Unix și MS-DOS). A fost pentru prima dată în istoria IT-ului când computerele au devenit utile în case și în întreprinderile mici. Introducerea interfețelor grafice de utilizator (GUI) de către Xerox PARC, preluată mai târziu de Apple - Macintosh OS a fost primul produs de succes comercial care a adus o interfață grafică ușor de utilizat pe piața de masă - și Microsoft, a făcut computerele mai ușor de utilizat, ducând la boomul software-ului din anii 1990.

Figura 2. Netscape Navigator, unul dintre primele browsere web

Ascensiunea internetului la sfârșitul secolului 20 a fost o altă schimbare majoră odată cu apariția browserelor web, a motoarelor de căutare și a platformelor de comerț electronic. Noile concepte au schimbat pentru totdeauna modul în care vedem internetul, făcând din dezvoltarea web un domeniu esențial. Această perioadă a văzut, de asemenea, lansarea software-ului open-source, cu proiecte precum Linux și Apache devenind cheia dezvoltării moderne de software.

Pe măsură ce avansăm în secolul 21, dezvoltarea de software a continuat să evolueze rapid. Au apărut mai multe tendințe importante, fiecare bazându-se pe inovațiile din trecut, dar cu implicații mari pentru viitor: Agile și DevOps, Cloud Computing și Microservicii și apariția AI și Machine Learning.

La începutul anilor 2000, metodologiile agile au devenit populare ca răspuns la problemele cu metodele tradiționale de dezvoltare. Accentul pe dezvoltarea iterativă, colaborare și flexibilitate a permis echipelor să se adapteze rapid la schimbările de afaceri sau ale pieței. Acest lucru a dus la creșterea sau nevoia de abilități DevOps, care își propune să apropie dezvoltarea și operațiunile.

DevOps a avut un impact asupra modului în care construim și implementăm software, făcând procese precum testarea și dezvoltarea mai rapide și mai fiabile. Rădăcinile acestor practici datează din primele zile ale dezvoltării de software, unde nevoia de viteză și fiabilitate a condus la crearea de noi instrumente și metode. În urmă cu zece ani, aproape toți dezvoltatorii făceau și sarcini DevOps rulând pipeline-uri sau instrumente CI/CD, în timp ce astăzi aproape toți inginerii DevOps folosesc abilități de dezvoltare, instrumente de bază de zi cu zi.

În The Infinite Game, Simon Sinek vorbește despre importanța adaptabilității într-o lume în schimbare: "Capacitatea de a fi adaptabil și rezilient este capacitatea de a fi puternic și deschis la schimbare". Nu putem fi siguri că Simon s-a gândit la Agile și DevOps în timp ce scria această afirmație, dar exact despre asta sunt Agile și DevOps: să fii gata să te schimbi și să te îmbunătățești continuu.

Tranziția la Cloud computing a fost una dintre cele mai transformatoare și profitabile tendințe în dezvoltarea de software din ultimul deceniu. Trecerea de la serverele on-premise (sau serverele "bare metal", numite astfel de pasionații de tehnologie) la infrastructura bazată pe cloud a fost, de asemenea, un moment propice. Astfel, a fost mai ușor și mai ieftin pentru companii să-și extindă sau să-și reducă aplicațiile în funcție de cererea de afaceri, sezoanele de cumpărături și de tendințele pieței. Servicii precum Amazon Web Services (AWS), Microsoft Azure și Google Cloud sunt acum vitale pentru dezvoltarea de software modern și sigur, devenind cruciale în curriculumul de formare al fiecărui inginer software.

Ideea de cloud computing nu este nouă, ci datează din epoca mainframe-ului, unde sistemele de partajare a timpului permit mai multor utilizatori să acceseze simultan resursele de calcul. În anii 1990, tehnologia de virtualizare a pregătit terenul pentru platformele cloud de astăzi.

Cloud computingul a deschis, de asemenea, calea pentru creșterea sau nevoia de arhitectură tip microservicii. În loc să construiască aplicații monolitice, microserviciile permit dezvoltatorilor să creeze servicii mici, independente, care pot fi implementate și scalate separat.

Cloud computing și microservicii au permis companiilor să continue să crească într-un mod durabil și să se adapteze într-o lume VUCA în schimbare rapidă. Tema principală este cea a ideii lui Sinek de Joc infinit: cei care evoluează vor reuși.

În ultimii ani, AI și Machine Learning au devenit prioritare pentru dezvoltarea modernă de software, făcând posibilă construirea de aplicații inteligente care pot învăța din date, pot face predicții și chiar se pot adapta în timp. AI este folosită în orice, de la procesarea limbajului natural (cum ar fi chatbots) la sisteme de viziune computerizată și recomandări. Putem vedea implementări AI și ML încorporate perfect în companii și în scenarii casnice.

Revoluția AI se bazează pe decenii de cercetare în domenii precum rețelele neuronale. Dezvoltarea de hardware puternic, în ultimii ani, în special GPU-uri a permis antrenarea modelelor complexe pe seturi mari de date, ceea ce a dus la descoperiri în învățarea profundă.

Ideea lui Sinek că "Principalul beneficiu al jocului infinit nu este ceea ce obținem sau câștigăm în cele din urmă, ci modul în care ne îmbunătățim și evoluăm pe parcurs." se confirmă și aici. AI și ML nu sunt doar obiective finale, ci sunt instrumente care ne ajută să îmbunătățim continuu software-ul.

Privind înainte în arta posibilului și a viitorului, mai multe tendințe emergente sunt susceptibile să remodeleze dezvoltarea de software sau cel puțin să o schimbe semnificativ. În timp ce aceste tendințe sunt construite pe inovațiile anterioare, ele reprezintă, de asemenea, noi moduri de gândire care vor cere dezvoltatorilor să schimbe modul în care proiectează, dezvoltă și implementează software.

Având în vedere complexitatea subiectelor vom enumera aici doar domeniile principale, atribuind cititorului sarcina de a investiga mai departe dacă interesul există:

Pe măsură ce ne gândim la viitorul dezvoltării software, este important să ne amintim că tehnologia nu este singurul factor în joc. Nu există tehnologie fără intervenție umană. Sapiens al lui Yuval Harari susține că ceea ce ne diferențiază este capacitatea noastră unică de a coopera în grupuri mari, de a împărtăși idei și de a construi societăți complexe: "Homo sapiens conduce lumea pentru că este singurul animal care poate coopera flexibil în număr mare."

Acest lucru este deosebit de relevant pe măsură ce ritmul schimbărilor tehnologice accelerează. În timp ce instrumente precum AI, calculul cuantic și blockchain au un potențial uriaș, succesul și adoptarea lor vor depinde și de capacitatea noastră de a colabora eficient ca oameni în viitor.

Într-o lume în schimbare rapidă, în care apar în mod constant noi tehnologii, capacitatea de a lucra împreună în mod eficient între discipline, culturi și spații diferite va fi mai importantă ca niciodată. Construirea următoarei generații de sisteme AI sigure, algoritmi cuantici, rețele descentralizate - acestea sunt provocări prea complexe pentru a fi gestionate de orice individ sau echipă mică. Astfel, unitatea și colaborarea eficientă vor fi esențiale.

În această privință, concentrarea lui Harari pe mituri comune și convingeri colective este, de asemenea, relevantă în industria software. Mișcarea open-source, de exemplu, prosperă datorită credinței comune în colaborare și proprietate colectivă, în conformitate cu sentințele lui Harari: "Un număr mare de străini pot coopera cu succes crezând în mituri comune".

Viitorul dezvoltării de software va fi modelat de cei care înțeleg că adevărata noastră forță nu constă în vastitatea setului nostru de instrumente (instrumente AI generative, IDE, pluginuri, frameworkuri), ci în capacitatea noastră de a colabora și de a ne adapta împreună.

Concluzii pentru inginerii software

Ritmul rapid al schimbării înseamnă că abilitățile necesare astăzi ar putea să nu fie aceleași cu cele necesare în viitorul imediat. Acest aspect va avea un impact profund asupra seniorilor experimentați în domeniu, precum și asupra bobocilor care se alătură domeniului IT, deoarece fereastra de relevanță pentru abilități este de până la 2,5 ani[^10]. Va exista un echilibru delicat între lucrul la rezultate, precum și blocarea timpului pentru a fi la curent cu noile tendințe emergente și timpul pentru perfecționare sau recalificare.

Pe baza experienței noastre colective de-a lungul deceniilor de inginerie software la Cognizant România, subliniem următoarele idei pentru oricine dorește să se pregătească pentru viitor:

Nu încetați niciodată să învățați! Având în vedere că schimbarea este omniprezentă, trebuie să ne angajăm să învățăm continuu, fie prin cursuri online, certificări, la curent cu tendințele tehnologice sau experiență practică cu noi.

Fundamente: Noile tehnologii sunt interesante, dar sunt adesea construite pe aceleași principii de bază ale informaticii, deși ascunse de implementarea designului la nivel înalt. O înțelegere solidă a algoritmilor, a structurilor de date și a designului sistemului va fi importantă. Nu treceți cu vederea nici abilitățile umane: storytelling, mindset de consultanță, colaborare eficientă.

Experimentați cu noi tehnologii, dacă este posibil! Nu așteptați ca calculul cuantic sau blockchain să devină mainstream. Începeți să experimentați acum, cel puțin pentru a vă face o idee despre tehnologie. Testați instrumentele, limbajele și cadrele asociate cu aceste tehnologii și gândiți-vă la modul în care s-ar putea aplica proiectelor actuale acum sau în viitorul apropiat, pe baza cerințelor de afaceri sau a îmbunătățirilor potențiale în diferite domenii de datorie tehnologică.

Concentrați-vă pe colaborare! Pe măsură ce dezvoltarea de software devine mai complexă și sporită de instrumentele Gen AI, capacitatea de a colabora eficient cu alte părți interesate (de exemplu: dezvoltatori, cercetători de date, experți în domeniu) va fi din ce în ce mai importantă.

Investiți în următoarea generație! În aceste vremuri accelerate de creștere și inovație, inginerii juniori au o călătorie dificilă în față și sunt vulnerabili să fie lăsați în urmă fără o echipă de sprijin eficientă. Inginerii software și liderii au responsabilitatea de a crea o cultură a inovației, experimentării și învățării continue în cadrul echipelor și organizațiilor lor. În The Infinite Game, Simon Sinek afirmă: "Responsabilitatea conducerii este de a crea un mediu în care ideile mărețe să poată prospera". În cartea sa Sapiens, Yuval Harari subliniază că fundamentele unui astfel de mediu sunt colaborarea și efortul colectiv, coordonate care ne permit să realizăm ceea ce niciun individ nu ar putea realiza singur.

În concluzie, de la primele linii de cod scrise pe cartele perforate până la instrumentele de dezvoltare bazate pe inteligență artificială de astăzi, ne putem aștepta ca ritmul progresului să se accelereze.

Depinde de noi și eforturile noastre comune și de creativitatea colectivă să modelăm viitorul software-ului prin perfecționarea proactivă, recalificarea și pregătirea pentru provocările și oportunitățile viitoare.

NUMĂRUL 149 - Development with AI

Sponsori

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