Scrum (programare)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Scrum este o metodă de gestionare a proiectelor caracteristică programării agile.


Istoria metodei Scrum[modificare | modificare sursă]

Prima abordare a acestei metode a fost descrisă de Takeuchi and Nonaka în „The New Product Development Game” (Harvard Business Review, Jan-Feb 1986). Ei au scris că de-a lungul timpului proiectele care folosesc echipe mici care au posibilitatea de a transfera una de la alta sarcini produc cele mai bune rezultate. De asemenea ei au asemănat aceste echipe performante cu grămada folosită în rugby (în engleză „scrum”), referindu-se la această metodă de organizare a proiectelor ca Scrum.

În 1991, DeGrace și Stahl, în „Wicked Problems, Righteous Solutions”, fac referire la această abordare a gestionării de proiecte. Ken Schwaber a folosit această abordare în compania lui, Advanced Development Methods, la începutul anilor 1990. În același timp, Jeff Sutherland, John Scumniotales și Jeff McKenna au dezvoltat o abordare similară în Easel Corporation, fiind primii care au numit-o Scrum. Jeff Sutherland și Ken au prezentat împreună o lucrare care descria Scrum la OOPSLA'96 în Austin, lucrarea fiind prima de acest fel prezentată publicului. Ken și Jeff au colaborat în următorii ani la contopirea lucrărilor pe această temă, a experiențelor lor și a celor mai bune practici din industrie ajungând astfel la ceea ce numim noi astăzi Scrum.

Deși Scrum a fost menită să fie o metodă de gestionare a proiectelor de dezvoltare a programelor, ea poate fi folosită și în echipe de mentenanță sau ca o abordare de gestionare a programului: Scrumul scrumului.

Caracteristicile metodei Scrum[modificare | modificare sursă]

  • Un set de sarcini nerezolvate care descriu ceea ce trebuie făcut și în ce ordine
  • Îndeplinirea unui set fixat de sarcini nerezolvate în serii scurte numite sprinturi
  • O întâlnire scurtă în fiecare zi (o ședință scrum) în care este stabilit progresul efectuat, munca ce urmează și eventualele impedimente
  • O scurtă sesiune de planificare a sprintului în care vor fi definite sarcinile nerezolvate ce vor fi incluse în sprint
  • O scurtă retrospectivă a sprintului în care toți membrii echipei reflectează asupra sprintului încheiat

Metoda scrum este implementată cu ajutorul unui ScrumMaster (stăpânul scrumului), a cărui sarcină principală este de a înlătura problemele ce împiedică echipa să atingă țelul sprintului. ScrumMaster-ul nu este conducătorul echipei, ci are rolul de intermediar între echipă și influențe care ar putea distrage echipa de la atingerea țelului.

Scrum permite crearea de echipe cu organizare proprie încurajând mutarea membrilor astfel încât să fie în același spațiu fizic și comunicarea verbală între membrii echipei să fie de preferat altor metode.

Un principiu cheie al metodei Scrum este admiterea ca provocările fundamentale nu pot fi adresate într-o manieră tradițională predictivă. Având în vedere acest lucru, Scrum adoptă o abordare empirică, acceptând ca problema nu poate fi complet înțeleasă sau definită, concentrându-se pe maximizarea abilității echipei de a livra rapid și a răspunde eficient la cerințe noi.

Terminologie Scrum[modificare | modificare sursă]

Scrum Master: Persoana care conduce scrumurile zilnice (ședințele) și este la curent mereu cu starea proiectului (echivalent cu un manager de proiect). Mai este referit și ca Lord de Scrum.

Porci (Pigs): Cei care au sarcini nerezolvate atribuite lor (programatorii, testorii, administratorii de baze de date, etc...)

Găini (Chickens): Cei care sunt implicați, dar nu au sarcini atribuite (proprietarii proiectelor, lorzii de scrum, etc ...).

Butuc (Back log): Sarcină nerezolvată

Sprint: O perioadă de 2 până la 6 săptămâni în care un set fixat de sarcini trebuie terminat

Burn Down: Progresul zilnic al sprintului raportat la lungimea lui

Scrum Toon: Un desen folosit pentru a explica scrum și implicațiile sale asupra echipei; este folosit la prima implementare a scrumului

Bibliografie[modificare | modificare sursă]