Modul agil de lucru nu este doar un cuvânt la modă în lumea IT, ci o abordare de dezvoltare utilizată pe scară largă.
Dar ce anume îl face atât de eficient pe agile? Și de ce este atât de benefic să îl folosești în timp ce înveți programare? De asemenea, cum poți să îl incluzi în programul educativ?
În primul rând, să vedem de unde vine agile și să discutăm ce înseamnă cu adevărat.
Lumea a devenit agilă dintr-un motiv
Agile este o abordare colaborativă a dezvoltării de software în care nevoile de afaceri și soluțiile evoluează în timp prin iterații. Poate nu-ți vine să crezi, dar a existat o vreme când această abordare nu era atât de universal acceptată. Metodele de dezvoltare mai „tradiționale”, cum ar fi Waterfall, erau de bază, dar acestea omiteau adesea elementul „uman”. Ken Schwaber, co-fondator al Scrum și fondator al Scrum.org, a devenit renumit cu declarația sa că Waterfall „a făcut ca oamenii să fie văzuți mai degrabă ca resurse decât ca participanți valoroși” și că aceasta i-a „ruinat” profesia pentru totdeauna.
La începutul mileniului, dezvoltatorii simțeau de mult timp nevoia unui alt tip de metodă care să îmbunătățească modul în care oamenii dezvoltă software. Astfel, într-o noapte istorică din 2001, în afara orașului Salt Lake City, un grup de 17 dezvoltatori s-a reunit pentru a discuta despre soluțiile posibile. Toți erau reprezentanți ai unor metode diferite, precum Extreme Programming, DSDM sau Adaptive Software Development, și aveau un singur obiectiv în minte: dezvoltarea unui model organizațional bazat pe oameni și colaborare.
Au dorit să găsească un teren comun între diferitele lor abordări, iar rezultatul final este ceea ce numim acum „Manifestul pentru dezvoltarea agilă a software-ului” sau Manifestul Agile, care este ca o declarație de independență pentru comunitatea de programare. Deși Agile a avut o istorie foarte bogată cu mult înainte de manifest, acesta a fost cel mai definitoriu moment pentru această metodologie.
Ce înseamnă agile?
Agile se bazează pe echipe care se organizează singure și funcționează transversal, și reprezintă un mod mai reactiv și mai flexibil de a dezvolta software. Cele patru valori de bază în agile sunt:
- Indivizi și interacțiuni în locul proceselor și instrumentelor
- Software de lucru cu documentație cuprinzătoare
- Colaborarea cu clientul la negocierea contractului
- Răspunsul la schimbare în locul urmăririi unui plan
După cum poți vedea, agile acordă prioritate elementului uman și pune satisfacția clientului mai presus de toate. Și dacă ne uităm la cifre, este clar că funcționează cu adevărat. Mai mult de 70% dintre companiile din întreaga lume au adoptat agile, iar acesta a ajutat 98% dintre aceste companii să își atingă obiectivele de afaceri.
De ce? Pentru că permite echipelor de dezvoltare să creeze produse mai bune, modificând specificațiile și proiectele la timp. De asemenea, echipele pot obține feedback actualizat de la clienți și pot testa părți ale produsului pe măsură ce se desfășoară dezvoltarea. Greșelile sau schimbările la nivelul nevoilor de afaceri pot coexista pașnic cu planurile inițiale, iar totul poate fi rezolvat la timp.
Această filozofie generală duce la formarea de echipe mai productive, produse de calitate superioară și clienți mulțumiți.
Scrum este doar vârful icebergului
Pentru a implementa valorile agile poți utiliza o mulțime de cadre sau instrumente diferite. Ai putea folosi Scrum, Kanban, Extreme Programming, Lean sau Crystal – și lista poate continua. S-ar putea să fi auzit despre unul sau două, dar cel mai popular în rândul companiilor este cu siguranță Scrum.
Scrum se caracterizează prin:
– cicluri sau etape de dezvoltare – cunoscute sub numele de sprinturi
– transparență ridicată
– vizibilitate mai bună și
– calitatea excepțională a produsului final.
Scrum ajută echipele să lucreze mai bine împreună și îi încurajează pe toți cei implicați în proces să învețe prin experiență, acordând timp pentru a reflecta asupra beneficiilor și a pierderilor.
Să explorăm ceremoniile și cadrul Scrum în detaliu, verificând cum învață și lucrează studenții Codecool folosind această metodologie.
Beneficiile învățării cu Scrum
În prezent, majoritatea companiilor dezvoltă software într-un mod agil. Dacă vrei să începi o carieră în domeniul IT, ia în considerare posibilitatea de a învăța și modul agile de lucru, nu doar programarea. Ar putea fi super benefic să fii în cunoștință de cauză înainte de a aplica pentru primul tău loc de muncă în domeniul tehnologiei.
Cum? Învățarea prin practică poate fi și cel mai eficient mod de a învăța programarea. Credem că învățarea prin practică a programării în cadrul unor proiecte agile, împreună cu principiile agile și un cadru agile, este chiar mai bună.
Pe lângă dezvoltarea abilităților și a cunoștințelor despre tehnologii și limbaje de programare, lucrând în proiecte agile, poți dobândi experiență în modul în care lucrează programatorii în companiile agile.
Poți să-ți îmbunătățești competențele transversale prin exersarea și învățarea unui management agil al timpului, a unor prezentări eficiente și a unor tehnici de comunicare asertivă. Mai mult, această metodă te ajută să adopți o mentalitate de creștere și să înveți că a face greșeli, a le repara și a învăța din experiență este o parte naturală a procesului de dezvoltare.
Scrum în acțiune la Codecool
La Codecool folosim elementele de mai jos din metodologia Scrum aplicate la cursul nostru de Full-Stack Development:
- Sprinturi (cu ceremonii precum planificarea, ședințe de lucru, revizuiri, retrospective, demonstrații),
- Backlog de sprint și Backlog de produs și
- Scrum Master și Proprietarul Produsului.
Să vedem cum le încorporăm în metodologia noastră de învățare pentru a obține cele mai bune rezultate!
Sprinturi
Un sprint este o perioadă de timp în care o echipă scrum își propune să finalizeze o anumită cantitate de muncă.
La fel ca echipele de dezvoltare profesională, studenții noștri lucrează în cadrul unor sprinturi de una sau două săptămâni pentru a-și livra proiectele curente.
În săptămânile de autoinstruire, aceștia își aprofundează singuri cunoștințele, cu ajutorul mentorilor. Această configurație susține metoda noastră de învățare bazată pe măiestrie, deoarece îmbunătățește învățarea individuală și prezintă modul de asumare al responsabilității.
După săptămâni de autoinstruire, studenții lucrează în echipe, unde se apropie de cerințele unui loc de muncă. Ei planifică, lucrează și culeg roadele succesului împreună cu colegii de echipă și ajung să îmbunătățească competențe transversale valoroase, cum ar fi comunicarea eficientă, rezolvarea conflictelor și multe altele.
Planificarea sprintului
Echipele de dezvoltare fac împreună planificarea detaliată a sprintului pentru a da startul proiectului. În timpul planificării, echipa definește ce poate livra în timpul sprintului și cum va realiza acest lucru. Luni, Codecoolerii fac planificarea și creează backlogul de sprint.
Backlog de produs / backlog de sprint
Un Backlog de produs este o listă de priorități derivată din foaia de parcurs a proiectului și din cerințele stabilite în prealabil de echipă și de client. Cele mai importante sarcini sunt afișate în partea de sus a backlogului de produse. La Codecool, mentorii acționează ca Proprietari ai produsului, așa că, de obicei, ei creează și mențin backlog-ul produsului.
Backlog-urile de sprint conțin acele sarcini din Backlog-ul de produs care sunt planificate pentru a fi realizate în timpul unui anumit sprint. Backlog-urile de sprint la Codecool sunt create de echipele de studenți.
Scrum Master / Product owner
Acest titlu aparține persoanei care facilitează Scrum în cadrul echipei. Un Scrum Master se angajează să respecte valorile și principiile Scrum și se asigură că se respectă cadrul.
La Codecool, studenții selectează un Scrum Master dintre ei, după ce planifică sarcinile și prioritățile pentru sprint. Acest rol va reveni altui student prin rotație săptămânal, astfel încât toată lumea să-l poată juca.
Sarcina Scrum Master-ului este de a administra progresul echipei și de a păstra legătura cu Proprietarul produsului. În cazul în care apar întrebări sau dificultăți neașteptate, Scrum Master administrează și face ca lucrurile să avanseze. Scrum Masters în echipele Codecool fac și dezvoltare practică.
La Codecool, mentorii au rolul de Proprietari ai produsului și, de obicei, creează și mențin backlog-ul produsului.
Stand-up-uri zilnice
De marți până joi, studenții au zilele de implementare, când au ocazia să facă dezvoltarea planificată pentru sprint. În fiecare dimineață, au standup-uri zilnice, facilitate de Scrum Master, unde se aliniază asupra sarcinilor zilnice și discută despre stadiul proiectului.
Review-uri
În timpul recenziilor de sprint, echipele de dezvoltare au șansa de a verifica produsul sprintului și de a face o demonstrație a aplicației sau a caracteristicii de lucru pentru client.
Vinerea este dedicată zilelor de demonstrație la Codecool, iar aceste zile oferă o oportunitate de a reflecta asupra muncii care a fost depusă în timpul sprintului. Studenții prezintă rezultatul sprintului în fața colegilor de echipă și – în ultimele etape ale cursului de Full-Stack Development – în fața unor clienți reali (invitați din partea companiilor partenere de angajare ale Codecool).
În cadrul demonstrațiilor, accentul se pune întotdeauna pe exersarea abilităților de prezentare, pe oferirea de feedback detaliat și constructiv și pe discutarea învățămintelor.
Retrospective
Reuniunile retrospective sunt organizate pentru a reflecta asupra experienței. Acestea le oferă echipelor o șansă de a învăța din eșecurile pe care le-au întâmpinat și o oportunitate de a se îmbunătăți pentru viitor. Acestea au loc, de obicei, la sfârșitul sprinturilor.
După demonstrațiile de vineri, studenții organizează întotdeauna o ședință retrospectivă, facilitată de Scrum Master, în cadrul căreia extrag învățămintele pentru ei înșiși, din proiectul din sprint.
Învățați programarea în modul Codecool
Cursul nostru de Full-Stack Development este conceput pentru a simula scenarii de lucru reale, deoarece metoda noastră are ca scop să aducă școala mai aproape de locul de muncă. Și nu ai nevoie de competențe sau abilități speciale pentru a începe. Poți să urmezi cursul ca începător și chiar să profiți de combinația noastră de garanție a locului de muncă și de metoda de plată ulterioară pentru a-ți asigura viitorul!
Vei beneficia de ajutorul unor mentori profesioniști și experimentați pe tot parcursul călătoriei de învățare. Vei învăța cu o metodă care favorizează învățarea profundă și creșterea. Iar prin proiecte și scenarii inspirate din viața reală, vei învăța dezvoltarea de software în cel mai eficient și distractiv mod posibil.
Contactează-ne dacă ai întrebări, pentru că ne-ar face plăcere să vă auzim! Alătură-te Codecool și vei ajunge la o nouă carieră în IT într-un an.