Ca programator, lucrezi prea rar în IT

Într-o discuție recentă am fost întrebat legat de industria IT. Și recunosc, nu lucrez în industria tehnologiei, și foarte puțini oameni pe care îi cunosc o fac. Marea majoritate lucrează în cu totul alte industrii, doar că folosesc un set de unelte care sunt denumite, generic, IT.

Poate asta e greșeala numărul unu a unui programator, să creadă că nu lucrează alături de clientul său în industria lui. Când el e prea preocupat de unelte (vreau angular 11, vreau Blablascript, vreau tehnologii) în loc să fie preocupat de soluția pe care o livrează clientului. Când programatorul vrea să împingă o soluție tehnică în loc să rezolve problema clientului ai o problemă.

Asta nu înseamnă că programatorul nu trebuie să vină cu soluții tehnice superioare. Nu înseamnă că programatorul trebuie să devină un expert în domeniul pe care îl sprijină, dar trebuie să-și asume faptul că e și el parte din acel domeniu. Faci un site de prezentare pentru o firmă? Măcar un minimum de înțelegere a domeniului publicității((el însuși foarte versatil, pentru că la rândul lui un publicitar are o responsabilitate similară cu programatorul)) e necesar. Lucrezi la o soluție de suport pentru un spital? Poate că e bine să știi cum se scrie imunoglobulină, să vezi chiar tu eroarea când apare.

Și sigur, nu o să fii expert, după ce lucrezi pentru un spital nu o să poți pune tu diagnostice. Dar ce e important e că înțelegi jargonul, terminologia, poți să fii de ajutor în loc să te plasezi contra utilizatorului final. Și din păcate cei mai mulți programatori români nu fac, încă, lucrul ăsta.

Vreți dovada? Uitați-vă la tot softul (și hardware-ul, că se aplică) executat în România. Dacă nu e controlat de un manager de produs foarte strict, rezultatul e lipsit de suflet, funcțional dar anti-utilizator. Și genul ăsta de rezultat se vede; se vede în momentul în care ai utilizatorii confuzi, în momentul în care nu înțeleg ce se întâmplă, de ce un lucru se întâmplă altfel decât se așteaptă. Asta, cel mai des, e pentru că programatorul nu a dorit să fie un utilizator, nu a dorit să lucreze în domeniul pe care îl slujește cu uneltele sale. Practic, în loc să fie un electrician, omul s-a uitat că folosește și un ciocan și a decis să fie cel mai bun ciocănar din univers, uitând faptul că ciocanul e doar o unealtă din multe pe care trebuie să le folosească pentru a rezolva problema.

De-asta mi se pare înspăimântător faptul că văd o mulțime de oameni tineri acumulând tot felul de titluri gen „expert Angular”. Ai scris tu măcar 2% din framework-ul ăla? Atunci cum ai ajuns un expert? Și cui îi pasă? Clientul tău are nevoie de o soluție cu Angular, sau are nevoie de o soluție care să vândă mai multe tricouri publicului larg? Cât de satisfăcut va fi că principiile de programare emise de Icsulescu sunt respectate, când omului i se încarcă pagina în 10 secunde, și 95% din oameni închid tabul înainte să li se încarce pagina?

Un exemplu: la un moment dat cineva mi-a recomandat un site pentru o arhivă de documente istorice la care firma lui lucrase. Se lăudau foarte tare cu proiectul respectiv, era un motiv de mândrie, îl afișaseră ca pe un proiect de mare succes. Prima pagină (și singura pagina) era un buton de search cu două bare de defilare (evident, neintenționate). O căutare pe domeniul respectiv returna zero rezultate relevante. I-am întrebat pe oamenii ăștia care au făcut produsul dacă ei vorbesc serios, dacă ăla e produsul, și ei explicau foarte fericiți cum folosesc tehnologia Oracle în spate, și site-ul e făcut cu Angular. „Băi, nu vă merge o căutare de bază, și e singurul lucru pe care îl face site-ul vostru!”. Nu am primit nici până azi un răspuns la întrebările pe care le-am pus, iar site-ul respectiv rămâne un mare succes în mintea programatorilor de-acolo, și o mare gaură neagră pentru toți cei care îl utilizează.

Da, programarea e o treabă complicată, pentru că trebuie să devii un real cameleon – trebuie să te integrezi în domeniul țintă, să înțelegi cum gândește cel care va utiliza produsul, să-i înțelegi jargonul, să îi înțelegi business-ul; acesta e lucrul cel mai greu din meseria asta pentru 90% din cei care o au. Ăsta e motivul pentru care nu pot să am foarte mare încredere când vorbesc cu „programatori Java” sau „programatori Angular”, sau „experți în framework-ul X”; pur și simplu sunt niște ciocănari, foarte dedicați meseriei de a lovi cu ciocanul dar care, în cele din urmă, nu pot să creeze decât niște produse lipsite de suflet. Ca programator, lucrezi prea rar în IT, faci prea rar unelte pentru alți programatori, și cel mai des, oamenii cu care interacționează produsul tău așteaptă cu totul altceva. E un lucru de care prea puțini țin cont, și pe care ar trebui să-l învețe cu toții.