SAFe. Continuous Delivery Pipeline

Principalul obiectiv al tuturor configuratiilor oferite de SAFe este crearea unor unitati foarte eficiente cu pipeline-uri de productie reale care ofera un flow de valoare continuu si sustenabil. Cat mai eficient din punct de vedere economic, in cea mai scurta perioada de timp si cu o atentie constanta in ceea ce priveste eliminarea blocajelor si intarzierilor.

Nov 6, 2019 75
Principalul obiectiv al tuturor configuratiilor oferite de SAFe este crearea unor unitati foarte eficiente cu pipeline-uri de productie reale care ofera un flow de valoare continuu si sustenabil. Cat mai eficient din punct de vedere economic, in cea mai scurta perioada de timp si cu o atentie constanta in ceea ce priveste eliminarea blocajelor si intarzierilor. Acest lucru este vizibil daca ne uitam la configurarea Program, acolo unde Agile Release Train este organizat exact in jurul ideii de implementare a conceptului de Continuous Delivery Pipeline impreuna cu cele 4 subprocese:

  • Continuous Exploration
  • Continuous Integration
  • Continuous deployment
  • Release on Demand

Conceptul de Continuous Exploration este coordonat in mare parte de catre PM. Acestia colaboreaza cu clientii pentru a le afla nevoile, analizeaza piata, parcurg studiile de cercetare precum si alte surse de informatii. Mai mult ei colaboreaza si cu arhitectii software pentru a defini cea mai buna solutie tehnica pentru a implementa acele nevoi si sintetizeaza toata aceasta munca sub forma de Vision, Roadmap si lista de Features prioritizate pentru a fi implementate de catre echipe in cadrul Agile Release Trains.

Procesul de Continuous Integration este munca facuta de echipe pentru a imparti Features in User Stories, pentru a le implementa, pentru a integra fiecare aspect al noilor functionalitati, pentru a le testa si pentru a le integra cu munca altor echipe pentru a reagrega Stories in Features. In acest punct PM-ul poate sa valideze presupunerile facute initial. O contributie majora o are automatizarea procesului de rulare a test suites in medii care emuleaza productia.

Legat de conceptul de Continuous Deployment, SAFe are o alta abordare fata de norma care, explicata pe scurt, inseamna ca ar trebui sa livrezi spre productie continuu. Indiferent daca nu este pe placul tau sau al clientilor, sau daca sunteti pregatiti pentru asta. In cadrul SAFe, deployment este diferit de release.

Continous Deployment este procesul care se ocupa de validarea noului sistem pe medii de dezvoltare care sunt 100%, daca acest lucru este posibil, similare cu mediul de productie real. Aceste deployment environments pot sa fie in anumite instante chiar mediul de productie. Dar acest lucru nu inseamna ca functionalitatile nou implementate trebuie sa fie disponibile pentru a fi folosite chiar atunci. Noile functionalitati sunt validate pe aceste medii individual, impreuna cu celelalte functionalitati implementate si verificand daca aceste implementari nu au afectat functionalitatile mai vechi. Daca etapa de deployment are loc in medii de productie reale exista tehnici precum feature toggles, canary releases si dark launches care ascund noile functionalitati de majoritatea utilizatorilor dar permit testarea lor in lumea reala in anumite conditii.

Atunci cand lucram cu sisteme complexe, etapa de release este de multe ori un pas care necesita un nivel ridicat de munca: dezvoltarea pachetului, actulizarea documentatiei, pregatirea utilizatorilor, obtinerea ok-ului din partea altor departamente si asa mai departe. Acest lucru inseamna ca in multe cazuri continuous delivery nu poate avea loc. Fiecare organizatie, insa, trebuie sa fie capabila sa activeze procesul de release atunci cand vine o asemenea cerere. Asa ca modelarea subprocesului de Release on demand este un aspect obligatoriu pentru toate organizatiile si toate celelalte trei subelemente ar trebui sa sprijine aceasta capacitate si sa faca procesul cat mai eficient cu putinta.

Unul din principalele obiective ale fiecarui Program SAFe ar trebui sa fie automatizarea completa a Continuous Delivery Pipeline legata de orice aspect de la integrare si mediul de testare pana la provisioning si deployment.

SAFe Continous Delivery Pipeline.jpg

Rolul de Release Train Engineer si Scrum Master in SAFe (Scaled Agile Framework)

Exista o discutie destul de lunga despre rolul de Scrum Master in Agile. Toate responsabilitatile, caracteristicile si functiile sunt valide si in cazul SAFe. Avand in vedere ca o echipa Agile nu este niciodata independenta, in SAFe acest lucru este si mai evident. O echipa ar trebui sa fie capabila sa lucreze autonom in majoritatea timpului, dar avand in vedere mereu legaturile cu celelalte echipe din Agile Release Train.

Asa ca functiile si responsabilitatile Scrum Master sunt legate de aproape fiecare alt rol, ceremonie sau proces din cadrul SAFe. Si pentru ca cineva trebuie sa se asigure ca mecanismele din cadrul Agile Release Train functioneaza la cel mai inalt nivel, s-a dezvoltat un nou rol care sa se ocupe strict de activitatile aferente Scrum Master-ului dar la nivel de Program. Acest rol se numeste Release Train Engineer si functioneaza ca un Chief Scrum Master. Persoana respectiva este principalul punct de escalare pentru Scrum Masters din fiecare echipa. Trebuie sa fie un facilitator foarte bun pentru ca este responsabil de ceremonii la nivelul programului. De asemenea ajuta si la eliminarea impedimentelor pe care un Agile Release Train le poate avea si actioneaza ca un coach.

Vrei sa adopti SAFe in organizatia ta? Descopera cursurile noastre.


Iulian Velea
Certified SAFe Program Consultant (SPC4)

Daca iti place acest articol, distribuie-l si prietenilor tai!




Luxoft Warsaw - Warsaw Spire, plac Europejski 1, 00-844 Warszawa
Dimitrie Pompeiu nr 5-7 , building C, Et. 5, sect 2, Bucharest, 014459

Contact phone:

021 371 4858
Luxoft Poland Wroclaw - Silver Tower pl. Konstytucji 3-go Maja 3 50-048 Wroclaw
Aleja Generała Tadeusza Bora-Komorowskiego 25, Quattro Business Park Five, 31-476 Kraków, Poland

Contact phone:

+48 122110650
Success
Iti multumim.
Inregistrarea ta a fost trimisa.