“Képzeld el a bőröndöd: ez jelképezi a rendelkezésedre álló keretet. Az időt vagy a pénzt vagy mindkettőt. Képzeld el, van egy elképzelésed arról, mi mindent akarsz majd elvinni magaddal az utazásra. Ez jelképezi a funkciókat és epikeket. Nem tudom megmondani, mennyi fér a holmikból a bőröndbe – tekintve, hogy nincs tételes listád, és egyébként is biztos, hogy csomagolás közben még eszedbe jut egy csomó minden. Nem tudom megmondani, elég nagy-e a bőrönd, mert nem tudom, mit kell bele tenni.”
Ezt az egyik ügyfelünknek mondtam miután hosszas magyarázás után sem volt számára komfortos, hogy nincs értelme a projekt elején megpróbálni megbecsülni a funkciókat, mert még nem tudjuk, igazából mit tartalmazzanak a funkciók és úgy is változni fognak még. Ráadásul mindennek nincs is jelentősége, mert a helyes koncepció éppen fordítva van.
Optimalizálni és egyszerűsíteni
“Nem az a lényeg, beleférünk-e a bőröndbe. A csomagolási módszer a lényeg, ami biztosítja, hogy beleférjünk. Addig fogunk sakkozni a hellyel és a holmikkal, amíg bele nem férünk. Ezt csináljuk minden nyaraláskor.”
Ez szoftver-fejlesztésre lefordítva azt jelenti, hogy a funkciókat és epikeket optimalizálni, és egyszerűsíteni fogjuk egészen addig, amíg a lényeg még működik, az üzleti modell a piacon tesztelhető, de a szoftver fejlesztése már belefér a keretekbe.
“Nem akkor alkottál tökéleteset, ha már nem tudsz mit hozzátenni, hanem ha már nem tudsz mit elvenni belőle.” – Antoine de Saint-Exupéry
“Mindig a legfontosabb holmit tesszük be először, ami nélkül nem jön létre az utazás lényege, például az útlevelet. Ha az megvan, akkor vesszük a következő legfontosabbat, például a pénzt. Ha a fényképezőgép túl sok helyet foglal ahhoz képest, amilyen fontos, akkor lehet, inkább a kompakt gépet visszük, vagy a telefonnal fogunk fotózni. Cserébe befér a biciklis nadrág. A sífelszerelést nem visszük, ha nem fér be, ráérünk majd bérelni, ha odaértünk. Addig ügyeskedünk a hellyel és a holmikkal, amíg mindaz belekerül a bőröndbe, ami kell a jó utazáshoz. Az a lényeg, hogy tudjunk jól variálni, nem az, mekkora a bőrönd, vagy mennyi holmink van, amit jó lenne elvinni.”
Mindig lehet kisebb!
Mindig lehet vágni a funkciókból. Egészen extrém módon minimalista megoldásokkal is piacra lehet lépni. Kínosan egyszerűkkel is. Persze, azért nem csinálunk ilyet, mert kínos, de van rosszabb annál, ha valami kínos: ha valaminek a kifejlesztése felesleges pénzkidobás.
Mindenre létezik egyszerűbb megoldás. Például egy webshopban a megrendelés funkció lehet extrém bonyolult, kupon kedvezmény számítással, mennyiségi kedvezmény számítással, szállítási költség számítással, fizetési mód választással, regisztrációval, belépéssel, nem regisztrált vásárlással, SMS értesítéssel, bankkártyás fizetéssel, paypal fizetéssel, stb. Vagy lehet csak egy email az adminnak, hogy XY felhasználó venne egy pár zoknit, és az admin majd rendszeren kívül (pl.: telefonon) intéz minden mást. És lehet a kettő között bármi.
OK, igaz, nem mondtam még az egyik lényeges összetevőt: A funkciókat extrém aprókra kell összevágni.
Apróra vágott funkciók
A múltkor az ügyfél szerette volna, hogy tudjunk kupont adni az ügyfeleknek. Persze más fajta kupon jár a nagyvállalati ügyfeleknek, a kisvállalati ügyfeleknek a magán ügyfeleknek, és teljesen más a folyamat is. Ahelyett, hogy lett volna egy nagy kupon funkciónk, szét vágtuk háromba. Aztán rájöttünk, hogy az induláskor igazából a magán ügyfelek kuponja fontos, a többi ráér később. Aztán a magán személy kupon funkciót is szétvágtuk úgy, hogy kupon beváltás funkció, kupon létrehozás funkció és kupon adminisztráció, majd kis gondolkodás után rájöttünk, hogy az induláshoz elég a kupon beváltás, akkor még úgy is csak egy kupon fajta lesz, azt pedig kézzel beírjuk az adatbázisba. Ezzel a kupon kezelést extrém leegyszerűsítettük. Majd élesítés után fejlesztjük ki a többit, akkor, ha a piac visszaigazolta, hogy érdemes még ezekre is költeni – mert mondjuk az emberek megőrülnek az üzletünkért és talicskával hordják hozzánk a pénzt.
A lényeg nem az, beleférünk-e a bőröndbe, hanem az, hogy olyan módszert használjunk a követelmény-elemzésben és -priorizálásban, ami biztosítja, hogy beleférjünk. Ez a lényege az agilis termék fejlesztésnek.