Clienți
Situația e în continuare dezastruoasă. Aud de la alte business-uri că au nevoie de 6 – 12 luni să-și facă site-ul. O grămadă de timp. Lucrez cu niște aplicații care deservesc un domeniu și e clar de la prima utilizare că oamenii acolo nu înțeleg domeniul. Fiecare complică un concept inutil și îi aruncă niște etichete care n-au nici o logică. O fi și problema că lucrez cu Europa unde engleza e o necunoscută. Am conceptul de „Property” pe care ei îl folosesc cu semnificația de imobil. După aia am o serie de entități care au proprietăți („properties”). Fun!
Toate se mișcă foarte încet aici, contracte ce durează ani de zile să fie negociate, toată lumea e încântată de soluția pe care le-o oferi, nimeni nu vrea să intre în horă cu tine. Că așteaptă să vadă că ai tu alți clienți. În rest laude și urale.
Organizare internă
Dezastru. Clienți care nu înțeleg cum funcționează procesul de dezvoltare software. Nu știu să vină la o discuție și să ceară ce vor. Trebuie alții să-și dea seama. Nimeni nu își cunoaște procesele interne. Ironic, și omul responsabil cu procesele interne nu are nici o documentație. Când e să raporteze ceva nu știe să scrie aplicația, pagina, seria de pași pe care să-i faci ca să ajungi la problemă dar nici ce vrea nu poate descrie coerent.
Trebuie să facem modificări în interfață, avem un designer, dar nu, eu programatorul primesc cererile direct. Avem un reprezentant dar nu, fiecare vorbește unu la unu cu fiecare. Mă trezesc cu lucruri făcute că a vorbit X de la clienți cu Y de la programatori. Fără o discuție, un task definit, ecrane și descriere. S-a făcut ceva. Punct.
Multă muncă inutilă. Că clienții au folosit ceva Google SEO Tools care a zis că dacă facem fundalul la filtre mai negru o să crească rata de conversie. Aia e prioritatea. Dar faptul că toată aplicația crapă când avem 200 de vizitatori simultan nu e o problemă.
Lumea cere micro-management. Știu, toată articolele de pe LinkedIn comentează că trebuie să-ți lași oamenii să lucreze independenți, să nu-i freci la cap toată ziua. Oamenii noștri nu, că le trebuie cineva să-i țină de mână la fiecare task. Că nu înțeleg ce au de făcut. Ok, avem un canal de chat și doi oameni mereu pregătiți să vă îndrume. Ați întrebat acolo? Păi, nu.
Programatori
Oh, Doamne! Atâția ochi dați peste cap că aș putea genera curent electric doar din asta. Că nu lucrează cu PHP că e pentru babalâci. Că nu scriu query-urile în Modele, că le scriu direct în Controller. Că folosesc ei o funcționalitate din framework că e doar o linie de cod când nimeni nu știe ce face framework-ul cu acel proces. Că ei scriu condensat codul ca să avem puține linii de parcă pe mine mă interesează altceva decât un cod ușor de citit.
Cel mai tare e când mi se zice că ei nu implementează ce li s-a cerut. Că ei vor să facă aplicația future-proof și ce am făcut în design nu e bine. Da, au stat cel puțin 7 oameni să facă acele ecrane și vine un oarecare din echipă și zice că suntem șapte tâmpiți. Și când întreb cum vor să o facă future-proof fie nu știu, fie îmi dau exemple care nu se pupă cu realitatea proiectului.
E o foarte mare de problemă cu orgoliile. Toți vor să ajute, dar nu am mai găsit om care efectiv să facă ce îi cer. Toți vor să arate cât de mult pot și îmi bagă pe gât tot felul de soluții de care nu am nevoie.
Toți țin de cod cu dinții. Cum adică să scriem cod care după 2 săptămâni să-l aruncăm la gunoi? Că nu, că trebuie să facem mai multe ședințe, cu mai mulți oameni, să scoatem cod de calitate. Dude, am nevoie de ceva scris repede în 2 zile să văd dacă direcția e bună. În plus rolul programatorului e să scrie cod. Că e bun sau rău decid persoanele cu acea responsabilitate.
E foarte greu să progresezi, lumea ascunde munca, în loc să fie făcute commit-uri zilnic, nu se trimite nimic toată săptămâna, apoi dintr-o dată am un mega-merge de 50 de fișiere modificate și alte 50 noi. Cod complicat inutil, neverificat, rulat în condiții optime și când arăt că același query e rulat de 160 de ori în aceeași pagină primesc răspuns: păi trebuie să îți pui baza de date local, nu la 30 de milisecunde distanță. Că 160 x 30 sunt aproape 5 secunde. Pe când la el 160 x 1 ms = 160 ms – nici nu se vede.
Tehnologie
Toți vor cel mai nou. Totul să fie doar Javascript cu tot felul de biblioteci și framework-uri care se schimbă la 6 luni. De când am început proiectul în Angular, au apărut două sau trei versiuni. Că e super-simplu să migrezi de la o versiune la alta îmi zice cineva din echipă și-mi arată un site cu vreo 50 de pași și verificări să trec de la o versiunea la alta. Nu, mersi.
Avem nevoie de o platformă stabilă, care și acum și peste 10 ani să meargă la fel. Nu avem resurse ca la fiecare 6 luni să luăm la puricat toate proiectele și să le modificăm la ultima versiune.
Mi-am băgat picioarele și am început să folosesc ChatGPT. Drăguț dar cam inutil. M-a ajutat să rescriu câteva lucruri, mi-a mai făcut o funcție aici și acolo, mi-a dat niște răspunsuri generice pentru unele probleme complexe, a crăpat de câteva ori. Trebuie să ai o aplicație foarte foarte rudimentară să poată fi folosit. Iar cineva care nu știe programare de la prima cerere o va da în bară. Da, sigur, scoate cod HTML în regulă, dar cam atât. I-am cerut să-mi facă o funcție care să îmi dea dimensiunea în rem pentru un text începând de la 2rem coborând până la ceva vizibil ca textul să îmi rămână citibil și pe o singură linie. Inițial am rămas uimit, dar apoi mi-am dat seama că treaba asta cu font-urile e peste puterile lui, dar mi-a dat mie niște idei cum aș putea-o rezolva.
Concluzii
Suntem într-o perioadă foarte tulbure. Tehnologiile au avansat foarte mult iar oamenii noi care intră în industrie în mare parte au luat varianta ușoară (Javascript + frontend). Probleme de optimizare a bazelor de date (toți vor NoSQL), simplitatea și expresivitate a codului, optimizare de bun gust încă de la scrierea codului, capacitatea de a lucra independent, să sumarizeze și să pună întrebările relevante sau pur și simplu să stea și să nu facă nimic câteva zile, toate astea lipsesc.
Dorința de afirmare și evidențiere e mai mare decât muncitul în echipă și urmărirea structurii de conducere. Nu, noi facem ce credem noi că e bine, indiferent ce se dorește.
Clienții, proprietarii sau finanțatorii sunt și mai în ceață. Pe lângă că nu înțeleg nimic din software-ul care îl cer mai au și o mână de oameni care mereu comentează și sunt nemulțumiți. Iar ei nu au cum să înțeleagă nimic din toate acestea. Proiecte simple durează luni de zile. Clienții se bazează pe designeri să le sugereze cum să arate paginile, apoi programatorii nu pot implementa design-ul că nu se poate în HTML/CSS ca pe urmă la code review se fac refactorizări la HTML/CSS de se schimbă 90% din cod. Patru pagini de imagini și text au generat un du-te-vino de trei luni.
Soluțiile simple nu mai pot fi puse în practică. Când înveți din prima Javascript și React/Angular/Vue, să faci o pagină statică cu text și imagini pur și simplu nu poți să te gândești că tot ce ai de făcut e să scrii un fișier .html.
Pur și simplu programatorii nu pot accepta că unele lucruri sunt simple și tot de ce e nevoie e un tabel cu o singură coloană și ecranele standard de Create, List, Edit și Delete.