Múlt héten újabb szakmai eseményen vettünk részt, a Budapest Agile Group meetup-ján. A rendezvény Openspace formában került lebonyolításra, ami nagyon tetszett, még témát is javasoltam, és nagyon jó kis beszélgetések alakultak ki. A szervező csapatról röviden annyit, hogy az Agilis Szoftverfejlesztők Egyesülete áll a háttérben és igen jó a szakmai színvonal, nagyon sokat lehet tanulni.
Az én témám a következő volt: hogyan lehet a Scrum projekteket hatékonyan összehangolni a szervezeten belül, beleértve a projektek közti átlapolást, a felkészülést, az erőforrás konfliktusok feloldását. Annak érdekében, hogy kicsit jobban megértsük, miért ez a téma foglalkoztatott, a következő problémákat tudom felhozni:
- Van több párhuzamosan futó Scrum projekted, a csapatok lelkesen dolgoznak és ugye nem szabad őket megzavarni, a Sprint teljes gőzzel halad. De szükség van egy új projekt előkészítésénél az egyik vezető fejlesztőre 1/8-ad időben több héten keresztül, megbeszéléseken kellene részt vennie, stb. Hogy oldod fel ezt a konfliktust?
- Van 2 futó Scrum projekted, de persze nincsenek összehangolva napra pontosan a sprint-ek, hiszen az ügyfél határozza meg az időablakokat. Vagyis párhuzamosan futnak, de nem egyszerre kezdődnek / végződnek. Amikor jön az új projekt és abban mindkét csapat fejlesztőire szükséged van, úgy kell összeraknod az új csapatot, hogy közben valakinek várnia kell...
- Vagy vegyünk egy mindig fennálló problémát: a következő sprintek előkészítő megbeszélései (estimation meeting) mindig ütköznek az éppen futó sprintekkel.
Hogyan lehet ezeket jól megoldani?
Két tapasztalt és segítőkész agile master (ezúton is köszönöm: Paul és Imre) volt segítségemre a kérdések többségének megválaszolásában.
A legegyszerűbb válasz a 3) esetre, a következő sprintek előkészítő megbeszéléseire született: előre fix idővel becsülni kell őket, hiszen ekezre mindig lehet - és kell is - számítani. Vagyis ezeket akár külön task-ként, akár az össz óraszámba beleszámolva tegyük bele a sprintbe. Kész.
Bonyolultabb kérdés a projektek indítása, új projektekkel való összehangolása. Ennek kapcsán két új fogalmat tanultam:
Spike Solution: az eXtreme Programmingból származó megoldás:
- Egy kísérleti megoldás, ami technikai vagy tervezési problémákat célzott felderíteni
- A megoldandó feladat (User Story) méretének bizonytalanságát, kockázatait csökkenti
- Mindenképp fix időablakban készül el, fix erőforrás felhasználásával (mondjuk 1-2 hét alatt)
- Nem kerül felhasználásra a projektben, jellemzően eldobandó (ezért nem egy prototipus, mert az jellemzően tovább építjük)
Tracer Bullet: Dave Thomas Pragmatic Programmer című könyvéből:
- Egy kísérleti megoldás, ami architektúrális kérdéseket hivatott felderíteni
- Nem feltétlenül fix időablakban készül
- Nem feltétlenül kell eldobni, beépülhet a szoftverbe
Azért a lényeg mindkettőben ugyanaz, csak a technika más. A projekt előkészítést, azt a holtidőt, amit esetleg "várakozással" töltenénk - 2) eset - , ilyen kiscsoportos célzott feladatokkal, Spike-ok készítésével töltjük fel. Ezek nagyon sokat segítenek a projekt tényleges kezdeténél, abszolút nem kidobott munka, és az új projektre való ráhangolódást, a belerázódást is segíti.
Már csak az 1) esetre kell válasz, amikor szükséged lenne az egyik sprintben dolgozó vezető fejlesztő idejére. Ezt két "hagyományos" módszerrel lehet megoldani:
- A vezető fejlesztők idejére eleve hagysz némi buffert (pl. 20%-ot), az még akár a projektben is jól jöhet időnként :)
- Lehetőség szerint tartasz a szervezetben egy maintenance csapatot is, de legalább 1 maintenance embert, aki nem Scrum-ban dolgozik. Ha ez az ember vezető fejlesztő, akkor egyrészt gyorsabban fogja megoldani a beeső problémákat, másrészt jól használható a projekt átlapolásoknál is, vagyis megéri.
Ha esetleg nektek van a fenti kérdésekre más megoldási javaslatotok, tapasztalatotok, ne habozzatok megosztani velünk!
Most, hogy a NewTech és a Ruby mellett, úgy tűnik, hogy az Agile meetup-nak is visszatérő látogatója lettem, felmerül a kérdés, hogy nem leszek-e Meetup-függő? Mint David Fincher - Harcosok klubjában a főszereplő, aki csoportfüggő lett. Csak nehogy jöjjön Marla, és mindent tönkretegyen... ;-)