1. Ce este SCRUM și dezvoltarea activă?
SCRUM este un cadru care ajută oamenii, echipele și organizațiile să genereze valoare prin soluții adaptive pentru probleme complexe. În loc să ofere oamenilor instrucțiuni detaliate, regulile SCRUM le ghidează relațiile și interacțiunile. SCRUM se bazează pe empirism și gândirea lină. Empirismul afirmă că, cunoașterea provine din experiență și luarea deciziilor pe baza a ceea ce este observat. Gândirea lină reduce risipa și se concentrează pe elementele esențiale.
SCRUM folosește o abordare iterativă, incrementală pentru a optimiza predictibilitatea și pentru a controla riscul, implică grupuri de oameni care au, în mod colectiv, toate abilitățile și expertiza pentru a face munca și a împărtăți sau dobândi astfel de abilități, după caz. SCRUM se bazează pe următoarele valori:
Angajament, Concentrare, Deschidere, Respect și Curaj
Stâlpii SCRUM sunt următorii:
- Transparența: procesul și munca trebuie să fie vizibile atât pentru cei care efectuează lucrarea, cât și pentru cei care primesc lucrarea. Transparența permite inspecția. Inspecția fără transparență este înșelătoare și irositoare.
- Inspecția: artefactele și progresul către obiectivele convenite trebuie inspectate frecvent și cu atenție pentru a detecta eventualele diferențe sau problemele
- Adaptarea: Dacă orice aspecte ale unui proces se abat în afara limitelor acceptabile sau dacă produsul rezultat este inacceptabil, procesul aplicat sau materialele produse trebuie ajustate. Ajustarea trebuie făcută cât mai curând posibil pentru a reduce la minimum devierile suplimentare.
Practicile active includ descoperirea cerințelor și îmbunătățirea soluțiilor prin efortul de colaborare al echipelor auto-organizate și multi-funcționale cu clienții/utilizatorii finali, planificarea adaptivă, dezvoltarea evolutivă, livrarea timpurie, îmbunătățirea continuă și răspunsuri flexibile la schimbările de cerințe, capacitate și înțelegere a problemelor care trebuie rezolvate.
Valorile manifestului activ sunt:
- Persoane fizice și interacțiuni asupra proceselor și instrumentelor. Instrumentele și procesele sunt importante, dar este mai important să avem oameni competenți care să lucreze împreună în mod eficient.
- Soluții de lucru asupra documentației vaste. O documentație bună este utilă pentru a ajuta oamenii să înțeleagă modul în care este construită soluția și modul de utilizare a acesteia, dar punctul principal de dezvoltare este crearea de soluții, nu documentația.
- Colaborarea cu clienții asupra negocierii contractelor. Un contract este important, dar nu înlocuiește colaborarea strânsă cu clienții pentru a descoperi ceea ce au ei nevoie.
- Răspunsul la modificare prin urmarea unui plan. Un plan de proiect este important, dar nu trebuie să fie prea rigid pentru a ține cont de schimbările tehnologice sau de mediu, de prioritățile părților interesate și de înțelegerea de către oameni a problemei și a soluției acesteia.
Cele mai multe metode de dezvoltare activă împart activitatea de dezvoltare a produsului în trepte mici, care reduc la minimum cantitatea de planificare și proiectare inițial. Iterațiile sau sprinturile sunt intervale scurte de timp, numite și timeboxes. Echipa lucrează în toate funcțiile: analiză, planificare, proiectare, codificare și testare. La sfârșitul iterației, un produs de lucru este demonstrat părților interesate. Acest lucru minimizează riscul general și permite produsului să se adapteze rapid la schimbări. O regulă importantă este ”eșuează adesea și devreme”, deoarece în stadiile incipiente, acest lucru este de obicei mult mai ieftin decât atunci când se aproprie de o data finală de lansare. Scopul este – desigur – să reușim la final. Dar eșecurile timpurii, cum ar fi neînțelegerile într-un stadiu foarte incipient, pot fi rezolvate mai bine prin implicarea constantă a părților interesate, iar costul și riscul eșecurilor într-un stadion prototip timpuriu este mai puțin important decât într-o soluție gata dezvoltată.
Principalele avantaje ale metodologiilor active sunt: viteza de intrare pe piață, atenuarea riscurilor și o mai bună satisfacție a clienților. Colaborarea strânsă cu părțile interesate și utilizatorii reduce timpul și costurile, precum și riscurile de proiectare a unui produs care nu îndeplinește cerințele utilizatorilor.
Sprinturile sunt bătăile inimii SCRUM, unde ideile sunt transformate în valoare. Sunt evenimente care asigură inspecția și adaptarea progreselor înregistrate în vederea atingerii unui obiectiv de produs. Atunci când orizontul unui sprint este prea lung, Obiectivul Sprint poate deveni invalid, complexitatea poate crește, iar riscul la fel. Se pot folosi sprinturi mai scurte pentru a genera mai multe cicluri de învățare și pentru a limita riscul de cost și efort la un interval de timp mai mic. Fiecare sprint poate fi considerat un proiect scurt.
Subiectele pentru fiecare sprint sunt:
- De ce este acest Sprint valoros? Proprietarul produsului propune modul în care produsul și-ar putea crește valoarea și utilitatea în sprintul curent. Echipa Scrum colaborează pentru a defini un obiectiv de sprint și de ce sprintul este valoros pentru părțile interesate.
- Ce se poate face în acest sprint? Prin discuții cu proprietarul produsului, dezvoltatorii selectează elemente din product backlog (practic o listă de dorințe ierarhizate a sarcinilor care trebuie efectuate într-un proiect) pentru a le include în tiparul curent. Selectarea poate fi o provocare, dar cu cât dezvoltatorii știu mai multe despre performanțele lor anterioare, capacitatea lor viitoare, și definiția lor de făcut, cu atât mai încrezători vor fi în previziunile lor Sprint.
- Cum se va realiza lucrarea aleasă? Pentru fiecare articol din Product Backlog selectat, dezvoltatorii planifică lucrările necesare pentru a crea un increment care îndeplinește definiția de făcut. Acest lucru se realizează adesea prin descompunerea elementelor din Product Backlog în elemente de lucru mai mici.
Echipa SCRUM este formată dintr-un SCRUM Master, un Product Owner și Developeri. În cadrul unei echipe Scrum, nu există sub-echipe sau ierarhii. Este o unitate coezivă de profesioniști axați pe un singur obiectiv la un moment dat, Obiectivul Produsului. Echipele sunt multi-funcționale și autogestionabile. Echipa este responsabilă pentru toate activitățile legate de produs, de la colaborarea părților interesate, la verificare, întreținere, operare, experimentare, cercetare și dezvoltare, și orice altceva care ar putea fi necesar.
SCRUM Master îi ajută pe toți să înțeleagă teoria și practica SCRUM, atât în cadrul echipei cât și în cadrul organizației. Ea/el este responsabil pentru eficacitatea echipei SCRUM să-și îmbunătățească practicile, în cadrul SCRUM. De obicei, ei vor face acest lucru prin instruirea membrilor echipei prin auto-management și multi-funcționalitate, ajutând echipa SCRUM să se concentreze pe crearea de incremente de mare valoare care îndeplinesc Definiția de Făcut.
SCRUM Master îl ajută pe Product Owner în definirea eficientă a obiectivelor produsului și gestionarea product backlog-ului, iar echipa Scrum înțelege necesitatea unor elemente clare și concise de pe piață. El/ea ajută la stabilirea unei planificări empirice a produselor pentru un mediu complex și facilitează colaborarea părților interesate.
De asemenea, SCRUM Masters conduc, antrenează și instruiesc organizația în adoptarea SCRUM-ului său, planifică și consiliează implementările SCRUM în cadrul organizației, ajută angajații și părțile interesate să înțeleagă SCRUM și înlătură barierele.
Product Owner este responsabil pentru maximizarea valorii produsului care rezultă din activitatea echipei Scrum. El/ea este, de asemenea responsabil pentru gestionarea eficientă a product backlog-ului, care include dezvoltarea și comunicarea explicită a obiectivului produsului, crearea, comandarea și comunicarea clară a articolelor din product backlog și să se asigure că product backlog este transparent, vizibil și înțeles. Pentru ca Product Owners să reușească, întreaga organizație trebuie să-și respecte deciziile.
Product Owner este o singură persoană, nu un comitet!
Dezvoltatorii sunt oamenii din echipa SCRUM care crează rezultatul. Adesea, competențele specifice necesare sunt largi, prin urmare multi- sau transdisciplinarea este o necesitate. Dezvoltatorii sunt întotdeauna responsabili pentru crearea unui plan pentru sprint, insuflând calitate, adaptarea planurilor lor la obiectivul sprint; și trăgându-se reciproc la răspundere ca profesioniști.