Scrum, avagy találkozás egy új szoftverfejlesztési módszerrel

Az alábbiakban nem a Scrum projektmenedzsment módszer bemutatkozására vállalkozok. Sokkal inkább az eddig alkalmazott módszertanunk továbbfejlesztésének lehetőségeit szeretném bemutatni.

Hagyományos projektmenedzsment módszerek problémái

A weboldal fejlesztési projektek eddig úgy zajlottak nálunk, hogy az ügyfél megkeresett minket egy igénnyel, a tanácsadó konzultációk sorozatán keresztül megpróbálta a legideálisabb megoldást megtalálni az online marketing eszközökkel, megtervezte, kiadta programozásra, majd a végeredményt átadta az ügyfélnek. Ezután természetesen jött még a tesztelés és finomhangolás. A terv azzal a szemlélettel készült, hogy próbáljunk mindent előre kitalálni, hogy lenne a legjobb, majd a tervet öntsük formába.

Azonban egyre több projektnél jelentkeztek olyan tünetek, hogy a tervezés hónapokig húzódik és a megvalósítás fázisában - amikor már valami kézzelfogható eredmény látszik - jut eszébe az ügyfélnek vagy a tanácsadónak egy nagyon hasznnos funkció, amit jó lenne beépíteni.

Találkozás a Scrum-mal

A 37signals Getting Real című könyvét olvasgatva kezdtem el azon gondolkodni, hogy fejleszteni kell a módszerünket. Az egyik hirdetésbne - amely a weboldalukon megjelenik - láttam, hogy olyan szuper programozót (rockstar developer) keresnek, aki járatos az Agile Development módszerben. Mivel az álláshirdetésben felsorolt paraméterek rám is illettek, mint pl. words: smart, capable, goal driven problem solvers :) , azonnal utánanéztem a témának. Innen egyenes út vezetett a Scrum-hoz, ami a gyors (agilis) szoftverfejlesztési módszer egyik projektmenedzsment eszköze.

Agile development

Az agilis szoftverfejlesztési módszer központi elképzelése, hogy a rendszeresen változó külső tényezőkhöz való alkalmazkodás lehetővé váljon a projekt tervezés és kivitelezés fázisában. Két fontos alapelv: egyszerűség és hatékonyság (minél kevesebb ablakon kidobott kidobott munkaóra). A módszer alkalmazásának fő célja, hogy olyan rendszert szállítson le, amelyik kielégíti a jelenlegi üzleti igényeket. A cél nem egy tökéletes üzleti rendszer leszállítása, amely minden elképzelhető igényt kielégít, hanem a projekt létfontosságú céljainak elérése.

Scrum mint eszköz

A Scrum eszközként használható az agilis szoftverfejlesztési szemléletmód alkalmazására a projektek menedzselésében.

Az alábbi ábra szemlélteti a Scrum alapján menedzselt projekt folyamatát.

Scrum process

A Scrum a Sprint-nek nevezett ciklus tevékenységen alapul. A sprint egy kb. 30 napig tartó összpontosított erőfeszítés egy kitűzött cél érdekében.

Scrum elemei

Product owner: az ügyfél hangja, biztosítja, hogy a Scrum Team üzleti szempontból a megfelelő feladatokon dolgozzon.

Scrum Master: ő a fejlesztőcsapat edzője. Feladata az akadályok elhárítása, hogy a kitűzött cél elérése érdekében a munkát el lehessen végezni. Ő érti a legjobban a Scrum módszert, ő finomítja, igazítja az adott céghez.

Scrum team: 3-9 emberből álló csapat, akik a tervben meghatározott feladatok kivitelezését végzik a sprint alatt. A Scrum szemléletmóddal készített projektek során több féle programozási módszer használható. Egy rövdi felsorolás a teljesség kedvéért:

Product backlog: a követelmények fontossági sorrendbe rakott listája, amelyben a feladatok sorrendje folyamatosan változhat. A Product Owner készíti el az igények és specifikációk alapján. Az ügyfél nyelvén van megfogalmazva.

Sprint tervezési meeting: a sprint elkezdése előtt közvetlen megtartott találkozó, amelyen eldöntésre kerül, hogy a Product backlog-ban meghatározott feladatok közül melyik lesz kivitelezve.

Sprint: kb. 30 napos ciklus, amikor a Sprint tervezési meeting-en meghatározott feladatok kivitelezésre kerülnek. A sprint közben minden nap fix időben 15-20 perces találkozó van, amelyen átnézik, hogy az utolsó találkozó óta mi lett kész, minek kell elkészülnie a következ találkozóig és milyen akadályok merültek fel.

A Scrum haszna

A Scrum módszerrel tervezett és végrehajtott projektek során szükségessé válik a funkcionalitások priorizálása, így a fontoabb funkciók készülnek el előbb. Minden ciklus (sprint) végterméke működő szoftver. A ciklus 2-5 hét hosszúságúak, így egy nagyobb rendszer fejlesztésénél is lehetővé válik, hogy a tesztelés, finomhangolás minél előbb elkezdődjön.

A módszer alkalmazásakor jóval nagyobb interakció szükséges az ügyfél és a fejlesztő cég között, mint a hagyományos projektvezetési módszerek esetében. Ennek előnye, hogy folyamatos a visszajelzés a projekt célját illetően és kisebb eséllyel fordul elő, hogy az ügyfél biciklit rendel és űrrepülőgépet gyártunk (jó esetben csak tervezünk) számára.

A tervezés végeredménye nem csak egy dokumentum, hanem jó esetben HTML képernyők, amelyek bizonyos szintig működnek. Emiatt az ügyfél sokkal jobban meg tudja fogni és érteni a végeredményt már a tervezés fázisában.

A módszer alkalmazásának tapasztalatairól folyamatosan beszámolok majd a blogban.

Hasznos olvasmányok a Scrum-ról:

Scrum and XP from the Trenches - a Scrum gyakorlati alkalmazásáról szóló ingyenesen letölthető könyv

Scrum in Five minutes - remek összefoglaló a Scrum módszerről

Toyota elvek a Scrum módszerben

Agilis Szoftverfejlesztők Egyesülete

Kedves György, olvasók!

Örülök, hogy egyre többen foglalkozunk a témával, egyre több a hazai tapasztalat, bár a "Kiáltvány az agilis szoftverfejlesztésért" megfogalmazása óta 7 év telt el. A tapasztalatcsere felgyorsítás érdekében hoztuk létre egyesületünket, amelyet ajánlok szíves figyelmetekbe: www.agilealliance.hu

Üdv,
Zsolt

Köszönöm az ajánlást

Nagyon örülök én is, hogy egyre többen foglalkoznak a témával.

A webhelyet a Drupal - egy nyílt tartalomkezelő rendszer - működteti