Lucrez în IT de mai mult de 10 ani și a fost, cu siguranță, distractiv și deopotrivă o provocare să observ și uneori să urmez tendințele în materie de metodologie în domeniu. Prin definiție industria IT implică un proces creativ, chiar dacă termeni din familia "Factory House" sunt des folosiți. În primul rând nu vorbim despre o "producție" de tipul celei pe care o vedem într-o fabrică (în definiția clasică), cu o linie de asamblare și muncă repetitivă, ci mai degrabă despre una creativă în care, totuși, încercările de standardizare a procesului de dezvoltare au fost prezente încă de la începuturi.
Dacă privim puțin în jur la peisajul din industria IT / software development și la modul de lucru al zilelor noastre, metodologiile Agile ocupă un loc important. Și sunt multe astfel de "arome" Agile.
Pare că autorii / semnatarii Manifestului Agile și-au creat fiecare metodologia proprie prin care să implementeze principiile descrise în manifest. Există XP, DSDM, Crystal, Adaptive Software Development, Advanced Development Methods, Scrum și încă altele, fiecare pornite de la aceleași persoane care au convenit la un moment dat asupra câtorva principii de bază dar nu s-au mai înțeles asupra unui mod unitar de implementare. Acest status-quo descrie destul de clar problema pe care o întâmpinăm cu toții astăzi. Dacă zece persoane nu au reușit să se înțeleagă cum să se facă un lucru, ce șanse avem noi, restul lumii?
Încercarea de standardizare printr-o metodologie oarecare a procesului creativ, care este dezvoltarea software, s-a dovedit foarte dificilă până acum; o dată din cauză că este foarte greu de standardizat creativitatea dar și din cauze ce țin de contextul specific acestui domeniu: tehnologia, cultura organizațională, mărimea echipelor sau a proiectelor și încă mulți alți factori.
Un alt aspect important în această ecuație este, în opinia mea, cel financiar: toți ne dorim eficiență maximă - produsul lansat în piață încă de ieri sau să scurtăm cât mai mult drumul de la idee la produsul finit. În general, industria IT a reușit să țină pasul (unii ar spune că de fapt a generat) cu viteza cu care se dezvoltă societatea de azi. Totul este mult mai rapid azi decât acum un deceniu, iar tendințele nu arată deloc o încetinire - ba din contră.
Există o întreagă piață pentru aceste metodologii, în care se investește și din care se câștigă mulți bani: se organizează traininguri, workshopuri, servicii de consultanță, conferințe, produse, instrumente, toate încercând să atragă utilizatori în a folosi o metodologie sau alta cu promisiuni de îmbunătățire a productivității, câteodată cu ordine de mărime impresionante. Grupuri largi de profesioniști au devenit vectori de comunicare în favoarea uneia sau alteia dintre metodologii; încercările de a-și "justifica" existența profesională a unora dintre acești profesioniști au condus în timp la numeroase dezbateri în industria IT: ce e bine și ce nu; cu ce e mai bună o implementare față de alta, care e cea mai eficientă implementare și așa mai departe.
Totuși, la o căutare rapidă dupa termenul "Agile", cele mai populare 3 variante sugerate de motorul de căutare sunt "Dead; bullshit; a cancer". La fel de mulți bani se pot câștiga predicând împotriva metodologiilor Agile ca și din promovarea acestora. Dar Agile este încă o noțiune nouă în istoria metodologiilor de Software Development. Privind puțin în urmă vom găsi și altele: Structured Programming (1969), SDM (or PANDATA in 1970s), SSADM (1980s), OOP (definită încă din anii 60' , dar care a cunoscut un avânt maxim în anii 90' ), RAD (1991), DSDM (1994), Scrum (1995), RUP (cu susținerea IBM din 1998), Extreme Programming (1999), iar lista este departe de a fi completă.
Istoria ne permite să observăm un șablon în comportamentul grupului nostru profesional: îndată ce apare o noutate în "piață" legată de felul în care ne-am putea organiza munca, aderăm la ea cu tot entuziasmul și aparent fără o analiză riguroasă; inevitabil ceva merge prost, cel mai probabil din cauza noastră, dar vina cade tot pe noua "modă" și nu pe cei ce o "poartă" zilnic; între timp cineva descoperă o nouă metodă revoluționară iar ceilalți o urmează sperând la ce e mai bun, iar ciclul se reia, fără ca (aparent) cineva să învețe din greșelile trecute. Trebuie să înțelegem că nu metodologiile sunt neapărat greșite, de cele mai multe ori implementarea pusă în practică de oamenii implicați este greșită - cu concursul unei întregi armate create în jurul acelui nou concept (amintiți-vă de toți trainer-ii, consultanții, conferințele despre care scriam mai devreme!). Noi, oamenii din IT, avem o memorie foarte, foarte scurtă!
Și totuși: de unde apare acest comportament? De ce inventăm lucruri noi numai pentru a le folosi o scurtă perioadă și apoi le aruncăm la gunoi? De ce acceptăm cu atâta ușurință noul, doar pentru că e cool, înainte de a fi siguri că vechiul este într-adevăr depășit? Răspunsul are, în opinia mea, cel puțin două părți.
Industria IT este încă, în întregimea ei, la început! Avem 50 sau 70 de ani - depinde pe cine întrebi, iar asta este nesemnificativ, în marea schemă a lumii. În comparație cu alte domenii, de exemplu industria manufacturieră, transporturile, cercetarea, medicina sau chiar avionica, industria IT este încă la început. Alte grupuri profesionale au avut timp să încerce, să cadă, să învețe din greșeli și să se adapteze.
Dacă am compara numai numărul de specialiști în domeniu, conform unui studiu făcut la nivel mondial de către IDC research, suntem aproximativ 11 milioane de programatori profesioniști, care își câștigă existența din asta, plus încă aproximativ 7,5 milioane de pasionați de IT. Comparat cu numărul total al persoanelor active din lume (mai mult de 2,3 miliarde), programatorii profesioniști reprezintă un procent insignifiant de 0,5%, însă impactul acestui mic procent este cu mult, mult mai mare!
Numai acest punct de vedere ar fi suficient să ne conducă la concluzia din titlul paragrafului: industria IT își caută încă un drum în viață; încă ne luptăm să ne creăm un standard care să funcționeze acceptabil, însă suntem constrânși să facem asta în ritmul accelerat al lumii în care trăim, la o viteză mult mai mare ca acum 50 sau 80 de ani! O încercare de a urca într-un tren care a pornit demult de la peron și trece cu viteză pe lângă noi. Nu-i deloc ușor!
Maturizarea cere timp iar timpul este exact ceea ce lipsește societății contemporane; vrem totul și vrem totul încă de ieri! Nu mai avem răbdare să creștem și aceasta se poate observa din păcate la toate nivelele societății.
Imaturitatea, în combinație cu viteza din ce în ce mai mare a cererii, se reflectă negativ în rata de succes a proiectelor IT la nivel mondial. Există numeroase statistici pe această temă, dar putem spune fără frica de a greși că proiectele IT eșuează în proporție de 30 - 60%, la diferite niveluri (nu sunt utilizate, cu depășiri uriașe de termene sau buget etc.). Câți dintre noi am cumpăra o mașină sau o casă, ori ne-am urca pe o masă de operație dacă am ști că există 30-60% șanse ca ceva să meargă foarte rău?
Din păcate, în relația cu industria IT, ceilalți se așteaptă ca noi să eșuăm, iar procentele de mai sus nu ajută (confirmă aceste așteptări). Oricând este adus în discuție un proiect IT se fac întâi planuri de contingență pentru eventualitatea unor depășiri ale bugetelor, fie că este vorba despre bugetul de timp sau de latura financiară a proiectului. A fi parte dintr-un grup profesional de la care ceilalți se așteaptă la un eșec, reprezintă pentru mine cel mai negru punct în cariera mea profesională.
Faptul că discutăm despre o soluție universală a problemelor noastre, ca profesioniști în IT, poate apărea ca un (alt) semn de imaturitate, dar din punctul meu de vedere are nevoie de un paragraf special.
Continuăm să căutam fără odihnă o rețetă perfectă care ar putea rezulta într-un proiect perfect, ceva care să ne asigure succesul și care ne facă fericiți ca echipă, pe noi, pe șefii noștri și pe clienții nostri. Dar, deși așa ceva nu există, și nici nu va exista vreodată, oamenii continuă să o caute! Și pentru orice există cerere, va exista și o ofertă! De aici întreaga pleiadă de metodologii, trainer-i și consultanți din jurul nostru. Toate acestea există pentru că există o nevoie, creată artificial, în opinia mea, de anumiți manageri care cred că de îndată ce compania / departamentul / echipa / proiectul va fi Agile / va prelua modelul Scrum / va prelua modelul Kanban / vor bea ceai din iarba-fiarelor culeasă la lună nouă și cu apă neîncepută din izvorul fericirii, se vor da de trei ori peste cap și toate problemele vor deveni istorie.
Am întâlnit adesea următorul "scenariu", în care echipa de management sau clientul doresc să "optimizeze" performanțele echipei pentru că prea mult timp se consumă "neproductiv" cu activități de planning, estimări sau în retrospective și decid să adopte Kanban în loc de Scrum (nu sunt activități de planning în Kanban, nu-i așa? Mai mult timp pentru programare ). Deciziile sunt luate top-down, cu puțină, dacă nu deloc, înțelegere a adevăratelor motive care au condus la eventuala slabă performanță a echipei.
Modul cum se fac lucrurile în industria IT are un impact minor în ziua de azi. Este pur și simplu mult prea devreme, încă nu am înțeles pe deplin De ce facem anumite lucruri și deja ne concentrăm pe CUM. Odată ce vom înțelege DE CE este nevoie (de exemplu) de team alignment, DE CE este importantă predictibilitatea în procesul de dezvoltare software, DE CE avem nevoie de feedback de la client, DE CE este nevoie de un sistem în care o echipă să-și exprime îngrijorările sau frustrările, soluția (CUM) va veni cu ușurință.
În încheiere aș spune că nu "rețeta" este ceea care are cea mai mare importanță! Să ne concentrăm asupra principiilor, să construim o cultură în care colegii să poată provoca regulile și care să permită găsirea celei mai bune răspunsuri la problemele de zi cu zi.
Cineva îmi spunea că cel care a "supraviețuit" mai mult de 6 luni în IT, ținând cont de gradul înalt de maturitate intelectuală necesar pentru a-ți îndeplini sarcinile zilnice, face parte din cei mai inteligenți 5% dintre oamenii din întreaga lume. Probabil vreau să cred asta pentru că lucrez și eu, la rândul meu, în IT . Și nu suntem departe de adevăr! În general în industria IT lucrează oameni cu inteligența peste medie, care vor găsi cea mai bună soluție pentru orice problemă le-ar sta în cale și mai bine decât oricare dintre consultanți. Convinge-i DE CE este nevoie de o soluție pentru îmbunătățirea (să zicem) a productivității și nu le mai sta în cale! Poate sună utopic sau flower-power, dar chiar funcționează!