Vizibilitate tuturor!

Sunt adeptul suprimării formelor fără fond cu precădere prin educație, viziune comună, focalizarea energiilor, obiectivism și foarte multă răbdare.

Gânduri despre agilitate. Ce înseamnă să fim agili?


Tu ți-ai face propria casă în agile? mă întreabă cineva în interviu. Înțelesesem din discuțiile cu el, că întrebarea își avea originile într-o întrunire a unei comunități de agile din București, sau ceva legat de management, unde nu știu ce șef al unui PMO dintr-o celebră companie de IT și-a încheiat prelegerea cu „eu nu mi-aș construi o casă în agile”. Adică, cum se putea să greșească un șef de PMO?

Când am scris primul articol despre instrumente simple, surdu’ n-aude, dar le potrivește, încercam să subliniez dificultatea oamenilor de a înțelege noi concepte când au capul plin de alte idei. Din acest motiv auzim doar ce vrem, nu ce se încearcă a ni se transmite. Și am scris despre acest lucru pentru că și mie mi s-a întâmplat. Dacă m-ați fi întrebat cât de agil eram în perioada 2008-2009, probabil că prin agile aș fi înțeles exact același lucru ca acel șef de PMO, și v-aș fi răspuns că sunt înarmat până în dinți cu agile. Acum pot să vă spun că înarmatul de la dinți până la creier a fost partea cea mai grea. Și erau în principiu două motive esențiale pentru care nu puteam răspunde altfel:

  • Pentru mine, să fii agil însemna viteză și un volum de lucru mai mari decât media. Excelent, nu?! Specificațiile erau destul de stufoase iar schimbările perimetrului funcțional invocau mereu o negociere lungă. Mai puțin conștient, dar adânc în esența mea, mă interesa mai mult succesul personal, urmat de cel al firmei și abia în ultimul rând al clientului.
  • Nu prea avem cum să ne dăm seama că un lucru (agile) este altceva, mai ales când și cei din jurul nostru au înțeles la fel. De fiecare dată repet la cursurile mele că în această perioadă am citit cărțile lui Craig Larman de cinci ori, și abia a patra oară nu mi-am mai schimbat părerea radical față de ceea ce înțelesesem a treia oară.

Dar ce înseamnă să fii agil (agile)?

În articolul despre „negocierea contractuală și despre regulile jocului”, spuneam că agilitatea constă în capacitatea organizației de a se adapta. Cu alte cuvinte, revenim la principiul darwinist conform căruia supraviețuitorii nu sunt neapărat cei mai inteligenți sau cei mai puternici, ci cei capabili să gestioneze cel mai bine schimbările. Bineînțeles că agilitatea presupune flexibilitate laolaltă cu inteligență și putere, iar modul în care reușim să îmbinăm aceste trei ingrediente ne poate indica gradul de agilizare.

Revenind la ideea construirii unei case pornind de la definiția de mai sus, cu siguranță aș vrea să fiu cât mai agil chiar și într-un astfel de caz. Fără nicio experiență în construcții, realizarea unei case necesită un proiect care urmează să fie executat. Indiscutabil, proiectul este prezentat, inspectat și adaptat de câte ori este nevoie, ceea ce ne duce cu gândul la procesele empirice omniprezente în organizațiile agile. Dacă eu sunt clientul, n-aș vrea să trec peste această etapă și să n-am niciun cuvânt de zis. De îndată ce proiectul este gata, se trece la faza implementării lui. Aici pot fi de acord că pare a fi vorba despre un proces definit. Cu siguranță este mai puțin predictibil ca atunci când programatorul are deja scrise liniile de cod, apasă pe un buton de compilare și instrucțiunile se asamblează într-un program, dar tot un proces definit rămâne. Însă să fie oare acest proces, mai puțin agil? Tot ceea ce contează este să putem adapta în cazul în care dorim. Dacă de-a lungul procesului identificăm niște probleme și din orice motiv vrem să schimbăm, trebuie s-o putem face. Din păcate, există și niște limite legate de inginerie, dar acestea vor fi depășite în timp. Putem lua ca exemplu pereții interiori pe care astăzi putem să-i configurăm așa cum vrem la costuri acceptabile. Sau, când mi-am renovat apartamentul

  • am zugrăvit de mai multe ori în anumite camere pentru că nu ne-au plăcut,
  • i-am chemat pe cei care au montat termopanele de nenumărate ori,
  • am refăcut instalația electrică și
  • multe altele.

Însăși posibilitatea renovării apartamentului înseamnă că se pot face adaptări proiectului într-un anumit grad. Am mai auzit pe alții:

  • că și-au montat un acoperiș nou,
  • că și-au mai construit un etaj,
  • că și-au mai adăugat 3 camere la casa existentă.

Dacă ne dăm seama că ceva este fundamental greșit când construim o casă, continuăm? Nu. Oprim proiectul, sau refacem anumite secțiuni. Va fi mai scump, dar nu continuăm fără să adaptăm. Firma care construiește casa și-ar putea trage învățămintele necesare ca problema să nu se mai repete, astfel încât să fie mai agilă pe piață (lean).

Când vine vorba despre industria software, instrumentele, practicile și tehnologia au evoluat suficient de mult încât să ne permitem să fim mai agili datorită costurilor relativ mici. Cu toate acestea, agilitatea își are și ea limitele ei, chiar și în această industrie. Nu putem începe un proiect utilizând Python/Django și să trecem oricând și oricum la Java/JEE. Acesta ar fi probabil un proiect nou, la fel cum am construi o nouă casă.

Construcția unei case, poate fi agilă?

Confuzia vine din asocierea procesului definit cu waterfall și a empirismului cu agilitatea, sau din faptul că proiectele agile nu au specificații, plan, concept de arhitectură, ș.a.m.d. Putem discuta despre diferențele dintre proces definit și proces empiric. Dacă vedem construcția unei case doar ca execuția proiectului, vorbim despre un proces definit. Însă dacă ne uităm în ansamblul său, este preponderent empiric. Un proiect agil nu înseamnă fără specificații, ci să nu specificăm mai mult și mai devreme decât avem nevoie. Dacă este nevoie să mergem până în cele mai mici detalii, o putem face, dar trebuie să merite.

Agilitatea nu vine din empirism, specificații la timp, cicluri de livrare mai scurte, etc. Acestea sunt doar efectele creșterii gradului de agilizare. De exemplu, unii au reușit să revoluționeze modul în care sunt create mașinile aducând agilitatea din software în automotive.

Da! Construcția unei case poate fi atât de agilă cât ne permite tehnologia și practicile de inginerie. Costurile mari asociate introducerii schimbărilor descurajează flexibilitatea dar nu o face imposibilă. Iar constructorii care reușesc acest lucru sunt cu siguranță mai agili decât ceilalți. Însă eu sunt de părere că în ceea ce privește construcția unei case, datorită instrumentelor software de proiectare din ce în ce mai evoluate, care permit nu doar proiectarea, dar și inspecția, adaptarea și vizualizarea virtuală a imobilelor, necesitatea introducerii schimbărilor va fi din ce în ce mai redusă, imobilele vor fi mai modulare, iar procesul de construcție în sine va fi mai automatizat.

Citește în continuare …

Gânduri despre agilitate. Ce înseamnă să fim agili?

Cornel FătulescuArticol scris de Cornel Fătulescu. Găsiți mai multe informații despre Cornel Fătulescu pe pagina membrilor AgileHub, în articolul despre mine sau la pagina de contact.

Comentarii

Comentarii