Új termékek létrehozása és az ötletek gyors kipróbálása. Az üzleti potenciál kihasználása és a meglévő határok feszegetése. Az eredményekből való gyors tanulás. Néhány hangzatos hívószó, ám az e-kereskedelem egy olyan terület, ahol erre valóban mind szükség van, ha eredményesen szeretnénk innoválni. Ezért az OANDER-ben egy olyan közeget teremtettünk, ahol az ügyfeleinkkel valódi, egyenrangú együttműködésben alkotunk új dolgokat. Ebben az egyik legnagyobb segítőtársunk az a módszertan, amely ahogy az egész szoftver iparágat felforgatta, úgy nálunk is teljesen új fejezetet nyitott.
Milyen problémára válaszol az agilis szoftverfejlesztés?
A nagy volumenű fejlesztési projektek egyik csapdája, hogy mindent egy lépésben és egyszerre szeretnénk megvalósítani. A valóság ezzel szemben az, hogy a projekt kezdetén sosem látható előre tökéletesen az a műszaki tartalom, amire végül szükségünk lesz és a szállítandó szoftver követelményei menet közben változnak. A fejlesztés közben akár extrém mértékben is megváltozhat, hogy ténylegesen mire lehet szükség.
Aki részt vett már komplex IT projektben az bizonyosan tapasztalta már, hogy bármilyen alapos is a tervezési előkészítés, az eredetileg elképzelt és specifikált igényhez képest a végeredmény sokszor eltér, a megrendelő nem pont azt kapja, amire eredetileg szerződést kötött. Ennek az az oka, hogy az eredménytermékkel szemben támasztott követelmények menet közben természetszerűen változnak és a projekt már-már követhetetlenül sok változáson megy keresztül. Számos digitális szegmensben egy fél évvel ezelőtt készült üzleti specifikáció már elavultnak számít. Így fordulhat elő, hogy a fejlesztés kezdetekor szükségesnek ítélt és gondosan megtervezett funkciócsomag élesítéskor már nem helytálló. Ez gyakorta okoz konfliktust szállító és megrendelő között.
Gondolkozz nagyban, kezdd kicsiben és szállíts gyakran!
Az innováció és helyes termékfejlesztés egyetlen útja, ha teret engedünk a követelmények változásának. Olyan munkafolyamatra van szükség, ahol új funkciókat és követelményeket gyorsan hozzá lehet adni a fejlesztési tervünkhöz, másokat pedig gyorsan el lehet távolítani belőle. Ehhez első lépésben érdemes elfogadnunk, hogy a követelmények változhatnak akár a fejlesztés vége felé is. Miközben fejlesztjük a terméket, új ötletek merülnek fel, a konkurencia egy váratlan húzása átírja a terveinket vagy éppen változik a szabályozói környezet. A változás bekövetkezik, ha akarjuk, ha nem.
Azért, hogy minderre reagálni tudjunk, az agilis szoftverfejlesztésben rövid iterációkon keresztül egy minél gyorsabb piaci bevezetést igyekszünk elérni (MVP – Minimum Viable Product). A rendszeres funkciófrissítések – a folyamatos szállításnak és a rövid termékfejlesztési ciklusoknak köszönhetően – pedig lehetővé teszik a korai tanulást és növelik a befektetés potenciális megtérülését. Vagyis az agilis szoftverfejlesztés során a minél hamarabbi piacra lépésén dolgozunk, majd a terméket gyors release ciklusokban fejlesztjük tovább a valós felhasználói visszajelzések alapján.
Az agilis módszertannal minimalizáljuk annak a lehetőségét, hogy olyan, eredetileg fontosnak vélt fejlesztéseket csináljunk, amikről – mire sorra kerülnek – kiderül, hogy valójában annyira nem is fontosak és helyettük akár teljesen új igényeket is kiszolgáljunk, amikre a projekt kezdetén nem is gondoltunk. A projekt üzleti követelményeit definiáljuk ugyan, ám a pontos műszaki tartalmat menet közben, közösen alakítjuk ki.
Build, measure, learn
Az agilis szoftverfejlesztés szemlélete az, hogy nem a tökéletes megoldást keressük és fejlesztjük nagyon hosszú időn keresztül, hanem mindig az eggyel jobb változatot adjuk ki a szoftverből, amelyet aztán minél gyorsabban eljuttatunk a felhasználónak. Ezáltal hamarabb kapunk visszajelzést az felhasználótól, hogy az adott szolgáltatást szereti-e használni, jó-e neki, vagy sem. Így ha kell, tudunk rajta változtatni, méghozzá elég gyorsan. Az agilis szoftvfejlesztés tehát a build-measure-learn folyamatot követi.
Pontosabb kép arról, hogy mit célszerű fejleszteni
Különböző kutatások 20-40% közé teszik a webes portálok azon funkcióhalmazát, amit a felhasználók ténylegesen használnak. Ha minden ma elképzelt műszaki követelményt egy lépésben lefejlesztünk, akkor a pénzünk 60%-át kidobtuk. Ne készítsünk olyan megoldásokat, funkciókat amelyekre nincs bizonyított felhasználói igény! Teszteljük az ötleteinket kicsiben, adjunk ki minél gyakrabban önmagukban is értéket jelentő funkciókat, és akkor invesztáljunk beléjük komolyabban, ha már bizonyítottak!
Azonnal használható terméknövekmények
Agilis szoftverfejlesztés mellett nem kell előre sokrétű üzleti funkcionalitást és azok egymásra gyakorolt hatását átgondolni, ami amúgy sok idő, illetve drága dolog. Azt a legfontosabb üzleti inkrementumot keressük, ami az elkövetkező hetekben a legfontosabb számunkra és a felhasználóinknak. Ez nem jelenti azt, hogy ne gondolkoznánk hosszú távon. Csak miközben tervezünk, szállítunk is. Azokat az igényeket, amik éppen nincsenek fejlesztés alatt, lehetőségünk van addig kitalálni, és priorizálni, amíg az előző igényeket már szállítjuk.
Gyors reagálás a változásokra
A gyakori szállítás eredményeképpen ha valamilyen üzleti igény vagy prioritás megváltozik, gyorsabban tudunk reagálni rá és a változás tényleg gyorsan el is jut a felhasználóig. 2 hetes sprintekben dolgozunk, amelyek meghatározzák, hogy milyen fejlesztéseket készítünk el az adott két hét alatt. Azt, hogy a munka mivel folytatódjon, a kétheti sprintfordulón döntjük el a megrendelővel közösen. Így a product owner kézben tartja az irányítást, és ha változnak a prioritások, a tervező csapat munkája gyorsan tud azokhoz igazodni. Ez a kompetitív e-kereskedelemben azért fontos, mert az igények és prioritások ténylegesen gyakran és kiszámíthatatlanul változnak.
Komplex projektből átlátható fejlesztési folyamat
Hogyan lehet egyszerűen megoldani komplexnek tűnő problémákat? Úgy, hogy a munkát kisebb, könnyen belátható és gyakran átadható részekre bontjuk és az előrehaladást folyamatosan transzparensen tartjuk. A fejlesztési ciklusok (sprintek) végén demó tartunk, amelyek valójában ellenőrzési pontok. Az egyes sprintekben ténylegesen felhasználható terméknövekményeket állítunk elő, a gyakori demók által pedig a megrendelő gyakran visszajelzést tud adni, hogy tényleg az az elképzelése valósul meg, amit szeretne. Ráadásul a sprintről sprintre való tervezés révén a tesztelés, kipróbálás is könnyebb, amelybe felhasználók is bevonhatók. A projekt mindettől sokkal könnyebben menedzselhetővé válik.
Transzparencia és közvetlen munkakapcsolat
Az agilis módszertanban dolgozó kivitelező csapatainkkal nem egy elszigetelt ügynökségként vagyunk jelen a megrendelő projektjében, hanem folyamatos iteráció mellett tényleges részeseivé válunk. A projekt ideje alatt közvetlen megrendelői munkakapcsolat alakul ki az elemzőkkel, UX tervezőkkel, designerekkel és fejlesztőkkel. Ezzel minimalizáljuk a kommunikációs asszimetriát. A szoros együttműködés nemcsak abban segít, hogy éppen mindig azon dolgozzunk, ami a termék vagy üzlet szempontjából aktuálisan a leginkább hasznos, hanem inspirálja is a csapatot, mivel minden egyes apró feladat egy újabb sikerélményt eredményez.
SCRUM módszertan a gyakorlatban - Agilitás szótár
Sprintforduló
Backlog
User Story
- az applikáció mutatja azokat a sofőröket, akik online voltak az elmúlt 20 percben, és nincsen éppen folyamatban lévő szállításuk
- az applikáció csak 5 sofőrt mutat, akik a legközelebb vannak a felhasználóhoz
- a felhasználó minden sofőrnek a profilját meg tudja tekinteni, hogy milyen értékeléseket kaptak, képpel ellátva
- az egyes sofőröknél kijelzésre kerül a felhasználóhoz való megérkezés várható ideje
Story Point
Refinement
MVP
Keresztfunkcionális csapat
Product Owner
- Felelős a projekt üzleti sikeréért
- Képviseli a projektet a stakeholderek felé
- Kezeli és priorizálja a backlogot üzleti érték alapján
- Dönt arról, hogy mi lesz leszállítva
- Megfogalmazza az igényeket és a sikerkritériumokat
- Dönt arról, hogy a demón látott fejlesztés élesbe mehet-e