Az előző blogbejegyzésünkben a hagyományos (waterfall) és az agilis, főképp Scrum modelleket hasonlítottuk össze és azt elemeztük, hogy milyen szempontokat érdemes mérlegelni, amikor módszertant választunk. A következőkben a Lean módszertan és az Agilis módszertanok egyike, a Scrum módszertan közötti különbségeket elemezzük. Érdemes megvizsgálni, hogy miben hasonlítanak és mely tulajdonságok alapján különböznek, hiszen ezek ma a legnépszerűbb menedzsment módszertanok közé tartoznak.

Fontos már az elején megemlíteni, hogy az ,,Agilis” elnevezés egy összefoglaló név, mely több módszertant magába foglal, ide sorolható a Scrum, a Kanban vagy XP. A Lean-t is gyakran a többi Agilis módszertan mellett szokták említeni, melynek oka, hogy fő alapelveik sok szempontotból megegyeznek egymással.
Scrum módszertan
A Scrum módszertan egészen 1986-ig vezethető vissza, amikor a Harvard Egyetem két látogató professzora, Hirotaka Takeuchi és Ikujiro Nonaka kiadtak egy tanulmányt ,,The New New Product Development Game” néven. Kiemelt hangsúlyt fektettek az interdiszciplináris, önálló projekt csapatokra és az egyes fejlesztési ciklusok átfedésére. Ez azt jelentette, hogy a projekt ciklusok hagyományos, lépésről lépésre való egymásra épülése helyett az egyik ciklus időben és feladatokat tekintve is átívelt a másikba. Ez fokozott intenzitású kommunikációt igényelt a csapat összes tagjától. Ennek eredményeképp a produktivitás növekedett és olyan problémákat már idő közben is ki lehetett javítani, melyek hosszú távon nagy valószínűséggel sokkal nagyobb kihívást jelentettek volna.
The New New Product Development Game: 1986-ban jelent meg a Harvard Egyetem magazinjában. A tanulmányukban 6 fő alapelvet emeltek ki:
Beépített instabilitás: A top menedzsment csak általános stretégiai irányvonalat és célokat fogalmaz meg és csak ezeket kommunikálja a csapat felé, amely nagy fokú szabadságot ad a csapattagoknak és nagy kihívás elé állítja őket.
Önszervező csapatok: Információ hiányában a csapatoknak egyedül kell kitalálni a fő irányelveket, mely során muszáj kísérletezniük és kockázatot vállalniuk. Ezek a csapatok olyan tagokból állnak össze, akik teljesen más háttérrel rendelkeznek és különböző területen dolgoznak pl. sales, kutatás és fejlesztés, design és szoftverfejlesztés.
A fejlesztési ciklusok átfedése: A különböző funkciót vállaló csapattagok munkája átfedi egymást, amely nagyobb flexibilitást, együttműködést és közös felelősségvállalást eredményez. Így annak is nagyobb a valószínűsége, hogy elkerülik az akadályozó folyamatok kialakulását.
,,Multilearning”: A csapattagok gyorsan tudnak reagálni a piaci változásokra, hiszen folyamatosan tanulnak külső információkból. Emellett fontos a csapaton belül a tudás átadása.
Megfontolt kontroll: A projekt csapatot nem szabad megakadályozni abban, hogy kreatívan kibontakozhasson a csapatmunkában, de ki kell alakítani úgynevezett mérföldköveket, hogy elkerüljék a félreértéseket és a káoszt. Fontos a megfelelő csapattagok kiválasztása, egy nyílt munkakörnyezet kialakítása, emellett tolerálni kell a hibázást, sőt, számítani is kell rá.
Tudás átadása a szervezeten belül: a projekteken szerzett tapasztalatokat a szervezeten belül érdemes átadni más projektek tagjainak is. Ez gyakran olyan formában történik, hogy kulcs tagjai a csapatnak más projektben is részt vesznek.

A Scrum módszertan a 90-es években lett ismertebb a szoftverfejlesztésben, habár igazi népszerűséget 2001 után nyert, amikor kiadták az Agilis kiáltványt, amit 17 szoftverfejlesztő dolgozott ki, 4 értéket és 17 főbb irányelvet megfogalmazva az agilis szoftverfejlesztés témájában. A Scrum módszertan szerint átlagosan 5-9 fős csapatok 2-4 hetes sprintekben dolgoznak, miközben a szolgáltató folyamatos kapcsolatban áll az ügyféllel annak az érdekében, hogy a szoftver funkcionalitását figyelembe véve megfeleljen az ügyfél által támasztott igényeknek.
Az Agilis Kiáltvány: ezen a weboldalon olvashatsz az Agilis Kiáltvány keletkezéséről, a Scrum alapelveiről, illetve a szoftverfejlesztőkről, akik részt vettek a kialakításában.
A Scrum különböző szerepeket határoz meg a csapaton belül, például a scrum master, termékmenedzser (product owner) és a scrum csapat tagjai, akik a fejlesztők és tesztelők. A csapat minden sprint elején összeül, megvitatják az igényeket és a feladatokat a következő ciklusra és emellett minden reggel tartanak egy rövid megbeszélést is. A Scrum módszertan fő alapelvei az ismételt, rövid ciklusok, a folyamatos értékelés és a transzparencia.
Lean módszertan
Míg a scrum módszertan közvetlenül összekapcsolható a szoftverfejlesztéssel, a Lean módszertan kezdete az ipari gyártásra vezethető vissza, a Toyota vívmánya a 1970-es évekből. A második világháború után a Toyota alapjában véve megváltoztatta a gyártási folyamatát, a veszteségek (waste) minimalizásával és azzal a szemlélettel, hogy kizárólag olyan termékeket gyártanak, melyekre a vásárlóknak szükségük van.
A Toyota modellt követően a Lean módszertan főbb alapelvei a veszteségek minimalizálása, a minőségre való összpontosítás, a folyamatos tökéletesítés és a gyors szállítás. A Lean szoftverfejlesztést először Dr Robert Charlette hozta létre olyan szervezetek kialakítása céljából, melyek jól reagálnak a változásokra, mivel egyre több szakértő kezdte megkérdőjelezni a tradicionális módszertanok hatékonyságát.
A veszteségek minimalizálása a legfontosabb Lean alapelv. Mit jelent ez valójában a szoftverfejlesztés kontextusában? Itt a legrelevánsabb pontokat szedtük össze, ezért a alábbi lista nem teljes:
- Túltermelés: ne töltsünk túl sok időt olyan kódolással, amit az ügyfél nem kért
- Defekt: Peter Middleton szerint ,,minél később találunk hibákat a szoftverfejlesztési folyamat során, annál drágább lesz a javítása”- ezért fektessünk nagyobb hangsúlyt a gyakori és korai tesztelésre
- Várakozás: kerüljük el a projektindítás késleltetését, az igények túlzott dokumentálását és a vizsgálatok, a jóváhagyások vagy a tesztelések miatti késlekedéseket
- Extra folyamatok: ne töltsünk túl sok időt felesleges folyamatokkal, pl. extra dokumentáció
Ezen kívül a Lean nagy hangsúlyt fektet a tanulás fontosságára és a szállítás gyorsaságára.
Mindkét módszertan sajátossága a folyamatok rendszeres ismétlése, a csapatmunka, együttműködés és mindenek felett áll az ügyfeleknek átadott termék kiválósága.
Peter Middleton: egyetemi adjunktus a belfasti Queen’s Egyetem informatikai tanszékén. 10 évig a informatika területén dolgozott a privát szektorban. Kutatásának fő szakiránya a szoftverminőség és az E-kereskedelem gyors fejlődése.
Mérlegelési szempontok
A legnagyobb különbség a két módszertan között a kialakulás körülményei. A Lean egy termelési környezetben alakult ki, olyan elveket követve, melyek az ipari folyamatokat teszik hatékonyabbá. A Scrum módszertan fejlődését az ipari termelési folyamatok inspirálták, de a cél az volt, hogy szoftverfejlesztési projektekben használják.
Mary és Tom Poppendieck azt írják, hogy ,,rengeteg próbálkozás, amely a Lean gyakorlatokat a szoftverfejlesztési folyamatokban próbálta átvezetni azért nem járt sikerrel, mert egy jó minőségű szoftver létrehozása nem egy termelési folyamat, hanem egy fejlesztési folyamat.” Szoftverfejlesztés során a folyamatos ismétlés értéket teremt, míg ipari termékek fejlesztése során az ismétlés veszteséget eredményez. Míg az Agilis módszertan eleve a fejlesztési folyamat optimizálását tűzte ki céljául, addig a Lean mindig is a termelési folyamat optimizálását tartotta fontosnak.
Mary és Tom Poppendieck: Mary Poppendieck a karrierjét folyamatszabályozási mérnökként kezdte, majd termékfejlesztési folyamatokat menedzselt. Évekkel később egy állami finanszírozású szoftverprojektet menedzselt, mely kapcsán először találkozott a vízesés (waterfall) modellel és ekkor bontakozott ki egy új szoftverfejlesztési módszer gondolata. Tom Poppendieck 25 éves tapasztalattal rendelkezik IT területen, korábban IT üzemeltetéssel és termékmenedzseléssel foglalkozott, majd tanácsadással különböző projektekben egészségügyi, logisztikai és pénzügyi területeken. 2003-ban Tom és Mary együtt adták ki a Lean módszertan alapelveiről szóló, népszerű könyvet.
Mikor azt vizsgáljuk, hogy a módszerek implementálása mivel jár a gyakorlatban, a Lean és Agilis módszertanok sok szempontból mégis hasonlítanak, mert megengedik, sőt ösztönzik a fejlesztési és tervezési szakasz elcsúsztatását, valamint az ügyféllel való folyamatos kommunikációt és visszajelzést.

Melyik módszertant válaszd? Ahogy a korábbi blogbejegyzésünkben írtuk, a megfelelő módszertan választása során több szempontot is szükséges mérlegelni: ezek közé sorolható az adott projekt mérete és komplexitása, a csapat, a tervezési folyamatok és az erőforrások megléte. A Lean elvek választása a veszteségek minimalizálását és a gyorsaság priorizálását jelenti, míg a Scrum nagyobb hangsúlyt fektet az emberekre és a rövid fejlesztési ciklusokra.
Ha szoftverfejlesztésben gondolkodsz és nem tudod, milyen módszertan mentén kezdj el dolgozni, vedd fel velünk a kapcsolatot és mi szívesen segítünk a módszertan kiválasztásában és akár a projekt megvalósításában is.
További források és érdekes tartalmak
Andrea Janes és Giancarlo Succi: Lean software development in action, 2014.
Nagyon hasznos könyv, amely kitér a szoftverfejlesztési projektek menedzselése során kialakult legfontosabb szempontokra. Összefoglalja, hogy milyen folyamatok nem voltak eléggé hatékonyak korábban, a Lean módszertan kialakulásának folyamatát, illetve említést tesz az agilis módszertanokról is.
Mary Poppendieck, Tom Poppendieck: Lean Software Development: An Agile Toolkit, 2003.
Mary és Tom Poppendieck aktívan részt vettek a Lean módszertan kialakításában. A könyvük átveszi a Lean módszertan és általánosságban a szoftverfejlesztés főbb alapelveit, melyeket hasznos, valós projektekből vett példákon keresztül mutatnak be. Tom és Mary Poppendieck interjút is adott a Lean alapelveiről, melyet ezek a linken keresztül találsz: Mary and Tom Poppendieck on #Lean Software & More — Lean Blog Interviews Episode #391
Peter Middleton, Lean Software Development: Two Case Studies, 2001.
Peter Middleton írása két esettanulmányt mutat be, melyeket két különböző csoporton folytattak, hogy megvizsgálják, hogy a gyakorlatban hogyan működik a Lean módszertan a szoftverfejlesztés területén.