Scrierea unui software de calitate nu este o sarcină ușoară. Există multe situații neașteptate la care trebuie să fii cu ochii în patru. Gama posibilelor dificultăți este cu adevărat infinită și poate varia de la înțelegerea greșită a cerințelor reale ale proiectului și pierderea unor oportunități bune de design, până la a nu avea o interacțiune corectă și eficientă cu restul membrilor echipei.
Lucrurile devin și mai neplăcute în cazul proiectelor complexe, iar simplul fapt că nu îți place limbajul de programare ales pentru dezvoltare poate fi proverbiala picătură care umple paharul.
Vă invit să identificăm caracteristicile disciplinelor de dezvoltare software care înlesnesc membrilor echipelor de dezvoltare să se simtă bine şi să fie implicați în scrierea unui software de calitate.
Începem studiul nostru analizând:
Să începem cu starea de bine și implicarea (în această ordine) şi să discutăm mai apoi despre calitatea software-ului şi considerațiile practice imediat ce contextul va fi potrivit. .
Ați observat cum toată lumea (sau poate aproape toată lumea) nu ratează nicio ocazie pentru a se implica cu plăcere în spargerea bulelor de aer de pe foliile de ambalat (bubble wrappers)? De ce se întâmplă asta? Ce face ca ambalajul cu bule de aer să fie atât de atractiv încât oamenii spun adesea că îi ajută să se relaxeze și că este o activitate nestresantă? Oare forma fină cu multe bule este cea care îl face interesant, sau este altceva?
Răspunsul este destul de surprinzător, neavând de a face de fapt cu ambalajul sau cu bule de aer în sine, ci cu însăși disciplina necesară pentru spargerea bulelor!
Dar cum poate fi vorba despre o disciplină, când, după cum bine știm, o disciplină presupune existența unor reguli și restricții care nu îți permit întotdeauna să faci cu plăcere ceea ce este necesar? Dacă gândiți așa, tocmai ați descris o disciplină care nu este pentru oameni. O disciplină pentru oameni trebuie să inducă ordine și armonie între produsul care este creat și persoana sau persoanele care îl creează.
În fascinanta carte "Creativity: Flow and the Psychology of Discovery and Invention" , Mihaly Csikszentmihalyi descrie caracteristicile acestui tip de experiențe pozitive.
Când toate cerințele de mai sus sunt satisfăcute, oamenii se simt bine executând acel task, iar implicarea (ceea ce autorul denumește flow) nu este decât la un singur pas:
Ca de obicei, indicațiile și sugestiile potrivite ne fac să vedem faptele într-o lumină nouă și putem să analizăm în continuare efectele spartului bulelor de aer drept efectele unei discipline având caracteristicile de mai sus.
Evident, există scopuri clare la fiecare pas, deoarece ceea ce trebuie să faci este să spargi câte o bulă pe rând (sau două sau trei, nu te oprește nimeni), poți doar spera că folia nu va rămâne niciodată fără bule.
Există feedback imediat pentru acțiunile tale, faptul că o bulă se sparge înseamnă că ești pe drumul cel bun, acest feedback simplu îți dă sentimentul de confort și relaxare (care acționează eliberând stresul).
Există un echilibru între provocări și competențe pentru că provocările pot fi soluționate prin utilizarea degetului mare și a aplica o oarecare presiune pe ambalaj.
Fiecare acțiune este conștientizată. Ești atent la ce se întâmplă cu ambalajul cu bule. Dacă o bulă nu se sparge, poți oricând să încerci din nou prin aplicarea unei presiuni ușor mai mare.
Sunt eliminate sursele de distragere a atenției. Imaginați-vă că folosiți ambalajul și cineva vă întreabă dacă îl poate împrumuta (astfel de încercări pot pune capăt prieteniilor!).
Nu există teama de eșec. V-a fost vreodată teamă că nu veți reuși să spargeți o bulă? Pariez că nu. Teama de eșec este una dintre modalitățile cele mai bune de a ne inhiba capacitățile cognitive, de aceea trebuie evitată.
Fiecare dintre cele șase caracteristici este necesară pentru ca starea de bine să apară. Este suficient să ignori numai una dintre ele și lucrurile se pot schimba dramatic. De exemplu, există anumite ambalaje cu bule în care bulele comunică (bulele nu sunt izolate unele de altele), astfel încât prin aplicarea presiunii asupra unei bule, aerul va fi transferat către bula următoare, făcând imposibilă spargerea manuală. Aceasta cauzează un ușor dezechilibru între provocări și aptitudini, transformând sarcina într-una cu adevărat frustrantă, pentru că bulele nu se vor mai sparge fără ajutorul unui instrument adecvat. Eu cred că această observație simplă confirmă ideea că stare de bine și implicarea nu se datorează ambalajului, ci disciplinei din spatele activității respective.
Poate că vă întrebați ce legătură aceasta cu disciplina dezvoltării de software. Răspunsul este chiar în fața noastră. Nu ar fi frumos ca job-ul fiecăruia, poate contrar așteptărilor, să fie un motiv de relaxare? Aceasta situație nu este rezervată doar celor norocoși. Pentru a te bucura de proiectul tău și a deveni implicat total în el, mai întâi, cele șase principii trebuie să fie ținta disciplinei tale. Odată ce aceste principii sunt acolo, după cum se întâmplă adesea în lumea reală, trebuie să fii atent și să faci ajustări pe parcurs, astfel încât, pe cât posibil să nu deviezi de la ele pe parcursul proiectul. Acesta necesită antrenament și nu este numai sarcina managerilor, ci a întregii echipe, deoarece cu toții suntem responsabili pentru a face ca timpul petrecut în cadrul proiectului să merite.
[O scurtă notă despre Agile: unul din principalele motive pentru care modul de lucru Agile este atractiv este pentru că manifestul său ne permite să punem preț pe interacțiunea umană și pe software-ul funcțional și din nou pe interacțiunea umană fiind pregătiți oricând pentru a face față schimbărilor ce pot apărea (așa că nu ar trebui să vă îngrijorați cu privire la eșec). Agile ne promite o disciplină a dezvoltării software-ului care implementată bine conduce la satisfacerea celor șase principii]
În concluzie, starea de bine și implicarea aduc beneficii uriașe proiectelor și persoanelor care lucrează pentru a le transforma în realitate (gândiți-vă de exemplu la îmbunătățirea creativității și a capacității de inovare). Fiecare dintre noi trebuie să lupte pentru a le realiza, acordând atenție felului în care ne planificăm și executăm sarcinile zilnice în conformitate cu cele șase principii.
În articolul următor vă invit să descoperim cum putem îmbina starea de bine și implicarea pentru a crea o disciplină în scopul dezvoltării unui software de calitate.
de Cristian Pup
de Alin Luncan
de Corina Pip