Care sunt problemele și provocările programatorilor? Ce cărți citesc? Cum reușesc să se adapteze metodologiei Agile dar și tehnologiilor aflate în continuă schimbare ? Sunt câteva din întrebările la care am încercat să găsim un răspuns în panelul de discuții Today Software Magazine. Partenerii de discuții au fost:
Claudiu Iluțiu-Varvara - Software Arhitect .NET (Siemens Romania R&D)
Claudiu Arseniu - Senior Java Developer (Siemens Romania R&D)
Daniel Jecan - Technology Researcher (jpard)
Ovidiu Mățan: Care sunt ultimele frameworkuri și limbaje de programare descoperite?
Dan Săbădiș: Ultimele frameworkuri au legătură cu Machine Learning și AI, dar și cu Big Data. Am descoperit în ultimul an Apache Kafka și frameworkuri de procesare de date precum Flink. Acesta din urmă este mai mult din zona Java. Acestea sunt frameworkurile cu care lucrez momentan.
Daniel Jecan: Menționez Quarkus, Helidon, Micronaut. Când vine vorba de limbaje de operare menționez zona Java, deși nu e foarte nou. Rust (menit să înlocuiască C++) a prins mai bine pe web development, fiind dus mai departe de Mozilla.
Claudiu Arseniu: Eu lucrez din 2008 cu QT, un framework/tool folosit pentru interfața de computer de board pentru BMW. Mi se pare cel mai bine documentat framework întâlnit vreodată. Documentația API-ului este mult superioară Java. Are multe exemple, forumuri unde se pot găsi răspunsuri. Nu există multe elemente thrid-party care să nu fi fost documentate. Mă ocup de menținerea unor softuri legacy fără a folosi elemente revoluționare.
Claudiu Iluțiu-Varvara: Eu am testat mai mult frameworkuri care permit crearea de aplicații mobile hibrid. Am ales REACT Native, deoarece performează la un nivel superior față de ceilalți competitori. M-am orientat către partea de soluții hibride în cloud, pentru a putea oferi eficiență și pentru a putea combina servicii diferite de la diferiți provideri de cloud.
În general se lucrează cu Agile. Ce părere aveți? Ce vă place cel mai mult? Ce nu vă place?
Claudiu Iluțiu-Varvara: Toți facem Agile, dar într-un stil propriu. Este un framework light-weight care nu specifică o serie de elemente care sunt necesare. Lucrând la produse cu cicluri mari de viață, am ajuns de la Agile-Scrum cu multe iterații la un Agile bazat foarte mult pe Kanban, dar respectând ceremoniile și principiile Agile. Avem un proiect care a avut o etapă de producție, unde s-a folosit Agile-Scrum cu multe iterații. Când am ajuns în producție a fost destul de greu să folosim iterații, deoarece trebuia să răspundem foarte repede solicitărilor din producție. Am migrat spre un Agile bazat pe Kanban, unde aveam iterații de deployment și un queue de issue-uri, dar aveam și ceremoniile Scrum, de exemplu, Planning sau Retrospective.
Claudiu Arseniu: Agile nu a adus un succes teribil în succesul proiectelor IT. Acum 10-12 ani am făcut un curs de OAD și prima întrebare a fost dacă știm câte proiecte IT eșuează. Răspunsul nostru a fost 20% - 30% - 40%, iar răspunsul trainerului a fost 70%. Momentan Google spune că doar 28% din proiectele IT sunt proiecte de succes. Agile nu a adus o îmbunătățire, dacă ne uităm la numere.
Daniel Jecan: Agile a început ca o abordare nouă, dar acum toți vorbesc de Agile ca de un standard. Nu pot vorbi din perspectiva proiectelor, dar avantajele pe care le văd eu în viața de zi cu zi sunt că se concentrează atenția mai mult pe echipă: ce se livrează, cum se livrează, cum se asumă responsabilitatea. Se creează un cerc nevicios, unde ești încurajat să rezolvi problemele ca o echipă, iar pentru că se lucrează în echipă, problemele se rezolvă mult mai ușor. Provocarea vine când echipa estimează în story points, iar clientul în man days.
Dan Săbădiș: Am păreri împărțite. Există o carte de Bertrand Meyer, creatorul limbajului de programare Eiffel, Agile - The Good, the Bad, the Ugly. La SDL se lucrează cu Agile, mai precis SCRUM-Safe. .
Când aveți timp liber, ce fel de aplicații scrieți?
Dan Săbădiș: Nu am timp liber, dar pot vorbi de serviciu. La SDL sunt proiecte foarte interesante, deoarece se lucrează foarte mult pe cloud. Se migrează logică și aplicații pe cloud. Eu am aprofundat AI și Machine Learning. Încerc să transpun cât mai mult din logica Python sau algoritmi în .NET. Asta mă relaxează.
Daniel Jecan: În timpul liber încerc să îmi cultiv latura creativă, fiind pasionat de modelare și design 3D. Acolo se îmbină partea practică (a găsi proporționalitatea, locul potrivit la lucrurilor) cu partea creativă. În IT, creativitatea e greu de exprimat, deoarece multe din activități sunt repetitive, rutiniere. Mă ocup de design de spațiu interior. De asemenea, îmi place muzica și experimentez cu o variantă de Teremin adaptată pentru pian care permite efectuarea de vibratto sau slide-uri ca la chitara, clapele fiind de cauciuc. Aceste sunete nu sunt posibile cu pianul tradițional.
Claudiu Iluțiu-Varvara: Eu mi-am descărcat date de pe site-ul Agenției de Protecția Mediului din Cluj. Sunt date de pe ultimii 10 ani și încerc să găsesc insight în acest set de date. Folosesc algoritmi de Machine Leraning care să ofere predicții cât mai bune despre calitatea aerului. Încerc să coroborez rezultatele cu traficul, cu anumite evenimente calendaristice.
Care este ultima carte de programare citită sau ultimul articol? Care este ultima conferință interesantă la care ai participat?
Claudiu Iluțiu-Varvara: Am citit un articol despre diferite tipuri de algoritmi de Machine Learning care se pretează la predicții legate de nivelul de poluare a aerului. La capitolul conferințe, aș spune IT Days.
Claudiu Arseniu: Citesc despre AI și conducerea fără șofer. Nu știu până unde se va ajunge. Boeing a încercat să facă avionul mai inteligent decât pilotul și a ieșit exact pe dos. Trebuie să decidem cât vom lăsa mașinile să ne conducă.
Daniel Jecan: Îmi petrec cea mai mare parte din timp făcând cercetare pe ultimele tehnologii. Prin urmare, îmi place ca în restul timpului să revin la cărțile clasice. Una dintre ultimele cărți citite este The Mythical Amendment, care arată ce greu este să faci estimări când lucrezi cu oamenii. Oamenii nu sunt resurse și nu scalează așa cum ne imaginăm. Există un exemplu clasic care spune că o femeie poate naște un copil în 9 luni, dar 9 femei nu vor naște un copil într-o lună. Cartea are vreo 40 de ani, dar este extrem de actuală.
Dan Săbădiș: Ultima conferință la care am fost în afara Clujului a fost Web Summit în Portugalia acum doi ani. Citesc cărți de AI, cu exemple de cod.
Când lucram ca programator, lumea credea că programatorii lucrează 8 ore pe zi, dar de fapt, pentru mine erau doar 4 ore în care mă puteam concentra efectiv pe scris cod. Voi câte ore scrieți cod?
Dan Săbădiș: Media este de 4-5 ore, dar am și zile cu 12 ore sau doar 2 ore.
Daniel Jecan: Noi folosim tot timpul la maxim. Avem întâlniri non-formale la cafea, unde discutăm tot probleme tehnice.
Claudiu Arseniu: Media este de 4 ore.
Claudiu Iluțiu-Varvara: Media este de 5-6 ore, dar am început să apreciez foarte mult pauzele care îmi permit să văd lucrurile dintr-o perspectivă diferită. Am idei noi, sunt mai creativ. Pauzele mi-au permis să găsesc soluții foarte bune.
La IT Days am discutat despre îmbinarea artei cu programarea. Cum vedeți demararea de proiecte cu Facultatea de Artă și Design sau cu artiști?
Claudiu Iluțiu-Varvara: Am văzut recent picturi generate de AI. Programarea la un anumit nivel de abstractizare poate fi considerată ea însăși artă.
Claudiu Arseniu: Eu m-am apucat de pian acum doi ani. Am un pian digital și programe de soft muzical. Un program numit PianoTech modelează sunetul de pian matematic. PianoTech îți oferă o expresivitate mai mare, deoarece ai mai multe nivele decât programele înregistrare ce au doar 15-10 de nivele.
Daniel Jecan: Metodele de modelare de care vorbea Claudiu, adică cele care nu se bazează pe sampling, fac un fel de reversed engineering al instrumentului și fac un model pentru pian, astfel încât utilizatorul poate decide cât de mare să fie pianul sau cât de tare să bată ciocănelele. Pianul digital reacționează la ce cânți tu. Arta poate fi potențată cu dimensiuni nebănuite înainte. De exemplu, dacă ai un sunet cristalin pe care îl poți produce lovind o oală, poți încărca acel sunet și să modelezi un nou instrument pe baza lui.
Dan Săbădiș: Nu am un simț artistic foarte dezvoltat, dar îmi plac filmele și muzica. Cred că informatica a afectat calitatea artei, făcând-o să decadă. Cea mai apreciată muzică e a unor DJ care mixează cu ajutorul calculatorului niște sunete. Desenele animate erau mai demult o artă. Pixar a dat acces mai multor persoane la arta de a crea tehnic animații de calitate ireproșabilă, dar aceste persoane nu sunt neapărat talentate și nu au cele mai bune idei. Piața este suprasaturată cu elemente de calitate artistică îndoielnică. Oricine poate fi artist în ziua de azi, datorită computerului.
AI și Machine Learning permite efectuarea unor lucruri automat sau mai rapid. Cum vedeți slujba programatorului peste 10 ani?
Dan Săbădiș : Cred că însăși natura programării se va schimba prin AI. Vom avea modele generate din foarte multe date de către matematicieni, iar noi vom avea un rol de tester. Noi vom vedea dacă se potrivește setul de date, vom ajusta modelul, vom rula alte date dacă cele inițiale nu ne convin. Vom verifica acuratețea.
Daniel Jecan: Unii spun că AI va cuceri lumea. Studiile arată că oamenii nu sunt buni la lucrurile de rutină la care facem greșeli. În acest domeniu, AI-ul poate aduce un plus prin automatizare, deoarece ne va ajuta să facem lucrurile consistent. Ne va îndemna să petrecem mai mult timp pentru a face lucruri creative. Totul trebuie făcut cu pași mărunți.
Claudiu Arseniu: Eu cred ca este o bulă ce va exploda. AI este o chestiune supraevaluată. Orice startup ce folosește cuvintele "AI" sau "Machine Learning" va fi asaltat de investitori, dar întrebarea este când își vor recupera investitorii banii, având în vedere că 90% din startup-uri eșuează. AI nu va distruge lumea, pentru că nu va apuca.
Claudiu Iluțiu-Varvara: Sunt de acord cu ceea ce au spus colegii mei. Toate guvernele lumii lucrează la sisteme de armament autonome, lucru care poate duce la o zonă periculoasă. Pentru programatori este deja un domeniu foarte dinamic. Repetiția se va reduce.