Scrum

A Wikipédiából, a szabad enciklopédiából.

A Scrum egy projektmenedzsment módszertan, az agile szoftver fejlesztés egyik eszköze.

Bár a scrum eredetileg szoftverfejlesztési projektek menedzselésére készült, szoftverkarbantartásra is használják.

Tartalomjegyzék

[szerkesztés] Kialakulása

  • 1986-os cikkükben Hirotaka Takeuchi és Ikujiro Nonaka leírnak egy módszert, ami nagyban felgyorsítja és flexibilisebbé teszi új termékek fejlesztését[1]:
    • A tradícionális módszert (vízesés model), amelyben az egymást sorban követő fejlesztési fázisokat más-más szakembercsapat kezeli, a váltófutáshoz hasonlítják, ahol egyszerre csak egy ember fut, és a futók egymásnak adják a stafétát.
    • Az új módszert, amiben a fázisok erősen átlapolódnak, és a különböző területeket képviselő szakemberek egy kis csoportja végig, minden fázisban együtt dolgozik, a rögbihez hasonlítják, ahol egyszerre az egész csapat fut, és egymás között passzolgatják a labdát.
    • Az esettanulmányok az autóiparból, a fényképzőgép-, számítógép-, és nyomtatógyártásból merítenek.
  • 1991-ben DeGrace és Stahl [2] hivatkozott rá először úgy, hogy scrum, amely egy rugby-s szakkifejezés, ami már Takeuchi és Nonaka cikkében is szerepel.
  • Ken Schwaber is használt scrum-szerű módszert az 1990-es évek elején. Ezzel egyidejűleg fejlesztett ki Jeff Sutherland egy hasonló módszert az Easel Corporation-nél [3]. Sutherland és Schwaber közös cikkben mutatták be a Scrum-ot az OOPSLA '96-on Austin-ban. Schwaber és Sutherland az azt követő években közösen dolgozott a megjelent írások, a saját tapasztalataik és az szoftveriparban látott gyakorlatok összegyúrásán, melynek eredménye a ma scrum néven ismert módszertan.
  • 2001-ben Schwaber könyvet írt Mike Beedle-lel közösen Agile Software Development with SCRUM címmel.

[szerkesztés] Jellemzői

  • story - a lényeges funkciók megrendelőközpontú leírása
  • product backlog - az implementálandó story, priorizált teendők
  • sprint backlog - konkrét feladatok a következő sprintre
  • backlog item - teendő
  • sprint - egy adott teendő végrehajtására szánt rövid iteráció (2-4 hét)
  • scrum - egy rövid napi találkozó, ahol megbeszélik az eredményeket, az akadályokat és a következő teendőket
  • sprint planning session - megbeszélés, amelyen a következő sprint teendőit definiálják
  • sprint retrospective - ahol minden csapattag reflektál az utolsú sprinttel kapcsolatban
  • burn down chart - kimutatás a napi eredményekről a sprint során

Van egy ScrumMaster is, akinek főleg az a feladata, hogy elhárítsa az akadályokat, hogy a csapat elérhesse a sprint célját. A ScrumMaster nem főnök, mert a csapat önszerveződő, hanem a csapat és a zavaró tényezők közötti lökhárító.

Az önszerveződés elősegítése végett a scrum arra ösztönöz, hogy a projekt résztvevői egy helyen dolgozzanak és szóban kommunikáljanak egymással.

Ellentétben a hagyományos, prediktív, tervezős módszerrel a scrum egyik alapelve az, hogy a megrendelő a fejlesztés során meggondolhatja magát azzal kapcsolatban, hogy mit akar. A scrum nem törekszik a probléma teljes megértésére és definiálására, hanem arra törekszik, hogy a csapat gyors legyen és reagáljon a változó követelményekre.

[szerkesztés] Szerepek

A scrum módszertan a szereplőket két csoportra osztja: disznókra és csirkékre. Ez egy állatos viccre alapul[4]:

A disznó és a csirke mennek az utcán. Egyszer csak a csirke megszólal: „Te, nyissunk egy éttermet!” Mire a disznó: „Jó ötlet, mi legyen a neve?” A csirke erre gondolkozik, majd azt feleli: „Nevezzük Sonkástojásnak!” A disznó erre: „Nem tetszik valahogy, mert én biztosan mindent beleadnék, te meg éppen csak hogy részt vennél benne.”

Tehát a disznók mindent beleadnak a szoftver megalkotásába, a csirkék pedig érdekeltek a projektben, de nem érdekli őket annyira, ha az elbukik. A csirkék igényeit, vágyait és ötleteit is figyelembe veszik, de nem hagyják, hogy azok akadályozzák a projektet.

[szerkesztés] Disznók

Azok a disznók, akik a saját sonkájukat viszik a vásárra.

Terméktulajdonos
A vásárlót reprezentálja.
Scrum Master (vagy Facilitator)
Arra ügyel, hogy a scrum folyamat működjön. Ő tartatja be a szabályokat és ő hárítja el az akadályokat.
Scrum Team
Egy 5-9 fős csapat, keresztfunkcionális képességekkel.

[szerkesztés] Csirkék

A csirkék nem részei a scrum folyamatnak, de figyelembe kell venni őket.

Felhasználók
Az agilis szoftverfejlsztés egyik fontos aspektusa, hogy bevonják a felhasználót a fejlesztési folyamatba, a tőlük érkező visszacsatolást figyelembe veszik a sprintek tervezésénél.
Stakeholder-ek
Azok az emberek, akik kellenek a szoftver létrejöttéhez, de nem vesznek részt közvetlenül a folyamatban. Ez az adminisztrátorokat és az igazgatókat is magába foglalja.
Tanácsadó szakértők
Ezek olyan szakértők, akikre nincs szükség minden sprinthez. Egy-egy sprint erejéig válnak csak disznóvá.

[szerkesztés] Adaptív projektmenedzsment

  • A megrendelő a fejlesztő csapat részévé válik.
  • Gyakoriak a köztes szállítások működő funkcionalitással, a fejlesztés inkrementális. A köztes állapotokat is validálják és ellenőrzik, hogy ne csak a végén derüljenek ki a problémák, legyen idő kijavítani őket.
  • Gyakori kockázatelemzés a fejlesztőcsapat részéről.
  • Napi státuszmegbeszélés, ahol mindenkit megkérdeznek, hogy:
    • Mit csinált tegnap óta.
    • Mit tervez holnapra.
    • Vannak-e problémái, amik meggátolják a célja elérésében.
  • Átlátható tervezés és modularizáció, azaz lássa mindenki, hogy ki miért felel és milyen határidővel.
  • Gyakori találkozók, amelyeken figyelemmel kísérik a haladást.
  • Semmi problémát nem söpörnek a szőnyeg alá. Mindenkit meghallgatnak, aki felismer és ismertet egy váratlan problémát.
  • A munkahely és a munkaidő legyen hatékony. A több munkaóra nem feltétlenül vezet több eredményre.

[szerkesztés] A napi státuszmegbeszélés

Népszerű időpont a státuszmegbeszélésre az ebéd után. A reggeli időpont problémás lehet. Ezek a megbeszélések rövidek, gyakran állva tartják meg tábla előtt. Az emberek gyakran elpillednek az ebédtől, tehát egy élénk állómeeting felfrissítheti őket, vélik a scrum szakértők. Azt is vélik, hogy mindenki dolgozott már ebéd előtt, ezért az emberek nem a privát dolgaikon gondolkoznak éppen, hanem a munkán.

[szerkesztés] Solo Scrum

A scrumot kis csapatokra tervezték. A csapattagok kommunikációját próbálja javítani. Sok szoftverterméket viszont egyetlen fejlesztő készít egyedül, de a scrum elvekből ő is tanulhat, erre találták ki a Solo Scrum nevű változatát a módszertannak.

[szerkesztés] Források

[szerkesztés] Külső hivatkozások

[szerkesztés] Referenciák

  1. ^ Takeuchi and Nonaka: The New New Product Development Game (Harvard Business Review, Jan-Feb 1986)
  2. ^ Wicked Problems, Righteous Solutions ([1])
  3. ^ http://jeffsutherland.com/scrum/FirstScrum2004.pdf
  4. ^ http://www.scrumforteamsystem.com/ProcessGuidance/Roles/Roles.html
A lap eredeti címe: „http://hu.wikipedia.org/wiki/Scrum
Személyes eszközök