Totul a inceput in ianuarie cand clientul, o companie multinationala care face e-commerce in 70 de market-uri din toata lumea, a decis sa ne schimbam modul de lucru in proiect incepand cu aprilie. Vom lucra Agile! Yey! De ce aceasta schimbare? Pentru ca se dorea ca de la doua release-uri pe an sa ajungem la unul pe luna, deci la sprint-uri de o luna. Am fost entuziasmat! Si inca mai sunt.
Buun, se stabilise! Trebuia sa ne pregatim cum se cuvine, deci au urmat o saptamana de workshop, sedinte peste sedinte, planificare release-uri, resurse, Product Owneri, echipe etc, ce mai, tot tacamul. Overview: 3 Product Owneri, 3 Agile Project Manageri de la noi, 3 echipe de Development, Scrum of Scrums. Fiind o implementare foarte mare aveau sa fie trei echipe implicate, fiecare avand in jur de 5-7 oameni. Suna bine, I was so excited!
Product Ownerii au pregatit backlog-ul, format din lista de imbunatatiri plus tichetele de suport si cerintele specifice market-urilor. Echipele au fost create, backlog refinement s-a facut, totul parea in regula, doar ca… luni incepea proiectul si abia in vinerea de dinainte s-a facut o sedinta cu absolut toata lumea pentru a li se comunica oficial noul mod de lucru. Ce s-a mai facut? Release planning pana la final de an si a fost stabilita structura fiecarui sprint cu activitatile pe care trebuia sa le efectuam. Structura foarte complexa de altfel, nu intram in detalii, doar ca am observat ca nu avem niciun buffer in caz de evenimente neprevazute, deci orice nu merge bine, duce la intarzieri, adica presiune suplimentara.
Well, sa trecem peste, luni incepea sprint-ul cu planificarea, am facut poker planning cu echipa, am estimat user stories in story points (si ideal days), am vazut care pot intra in sprint pe baza capacitatii disponibile si a prioritatii, eram gata de treaba.
Si pornim, cum am spus, cu entuziasm! Daily stand-ups, sync cu Product Owner-ul pentru ca este in afara tarii, incercam sa facem cum trebuie. Doar ca mai sunt destule lucruri neclare, am pornit cam brusc. Lucruri tehnice, release-uri, coordonarea cu celelalte echipe nu mergeau chiar cum ar trebui si am inceput sa ne poticnim pe ici pe colo. Nu-i nimic, suntem agili, le rezolvam din mers, e primul sprint. Totusi ne dam seama ca nu am facut ceva cum trebuie: nu am spart user story-urile in task-uri. Of, hai ca si asa e presiune pe timp, facem din sprintul 2.
Dupa vreo saptamana, unul din developeri a constatat ca e blocat pe un user story de un bug, pe care il valideaza impreuna cu echipa de testare. Anuntam Product Ownerul si spre stupoarea generala a echipei aflam ca stia de bug si ca exista chiar si in JIRA. Pai bine “frate” si de ce ne pui sa facem story-ul daca stiai ca nu se poate? Plus ca depindeam si de una din celelalte echipe, era la ei. Lipsa de sincronizare intre Product Owneri, ar fi trebuit sa fixam bugul in primul sprint si abia apoi sa dezvoltam story-ul, in sprintul 2. Pfua, uite cum am pierdut noi 25% din timpul alocat pe dezvoltare!
Si mai si adauga un story mic ca e presiune de la market si trebuie. Zic, pai nu se poate, ca nu e ok, el zice, te rog sa intelegi, s-a escaladat, of, bine….ati inteles ideea.
Ne regrupam, si continuam lucrul. Observ pe masura ce inaintam in sprint ca usor usor, moralul echipei scadea, pentru ca nu prea se vedea progres (remember, nu am detaliat task-urile?). Story-urile grele de altfel, eu incercam sa le tin moralul sus, doar ca le scadea iar pentru ca veneau inapoi de la QA tot felul de probleme in ciuda celor doua runde de code review obligatorii. De astea am aflat mai tarziu, dupa planificare, deci iar am avut impact asupra capacitatii. Le rezolvam, nu e bai, dar imi era tot mai clar ca va fi imposibil sa atingem ceea ce ne propusesem cu totii la inceput. Am incercat sa lucrez la moral, l-am mai stabilizat, mici succese care ne tin pe linia de plutire.
Product Ownerii au venit la Bucuresti pentru cateva zile in ideea de a petrece mai mult timp fata in fata cu echipele, sa simta si sa vada cum lucram, sa discutam diverse aspecte. Hai ca e bine, lumea s-a mai relaxat, si Product Ownerii si noi, atmosfera imbunatatita per total.
Doar ca, brusc, apare o alta problema de moral puternica la QA. Aflu ca sunt nemultumiti, overhead pe testare pentru ca au de verificat 3 versiuni. Am uitat sa precizez, in paralel cu ce faceam se mai intampla si testarea unor build-uri pentru hot fixes de productie care afectau vanzarile, mai exista o versiune intermediara la care se facea deploy de catre alta echipa pe mediile de productie, plus versiunea actuala din sprint. Am stat de vorba cu ei, le-am ascultat pasurile, le-am explicat situatia, care sunt problemele, de ce se intampla asta, o sa fie mai bine in sprint 2. Motivationale multe, se parea ca functioneaza.
Colac peste pupaza, apar inerentele intarzieri, ceea ce bineinteles, iar au dus la frustrari, toata lumea tragea in directia in care sa fie incluse in build cat mai multe user stories. Evident ca se lucra pe repede inainte, QA-ul era overloaded, trebuia sa inceapa UAT-ul. Product Ownerii puneau si ei presiune, eu le-am zis clar oamenilor sa nu faca overtime si sa livram fix cat putem.
Am facut si refinement pentru sprint 2 si sprint review (aici a iesit chiar bine, desi echipa era sceptica), am facut chiar si retrospectiva. La restrospectiva a fost ceva interesant pentru ca inainte cu o zi am avut o discutie in contradictoriu cu Product Owner-ul care facea comparatie intre numarul de stories livrate de noi si numarul de stories livrate de celelalte doua echipe. I-am explicat ca nu se face o astfel de comparatie niciodata, si ca nu poti compara mere cu pere. Dar la restrospectiva s-a declarat multumit per total.
Aceasta a fost doar o parte din ceea ce am facut si simtit in primul sprint, acum privim cu optimism spre al doilea. Astept comentariile voastre, poate discutam ce am facut gresit si ce bine. Si imi doresc sa revin cu o noua poveste peste o luna, dupa ce terminam sprintul al doilea.
Mi-a placut in principal felul detaliat dar cursiv in care ai scris articolul. Parca am citit S01E01 si acum astept Episodul 2 :). Asa ca hai cu sprint-ul doi si zi-ne ce s-a imbunatatit fata de primul.
Multumesc frumos pentru apreciere! S01E02 e in curs de pregatire, suntem pe final de sprint.