A hatékonyság optimalizálása és a költségek minimalizálása a szoftverfejlesztés lean megközelítésének két fontos összetevője, amelyet már számos informatikai vállalat kipróbált a gyakorlatban.
A megközelítés gyökerei a jól ismert Toyota autógyár történetéhez nyúlnak vissza, és annak problémamegoldó megközelítésén alapulnak. Lényege, hogy csak olyan változtatásokat hajtsunk végre, amelyek előnyösek, ugyanakkor minimális költséget igényelnek, és nem vesznek igénybe túl sok időt a megvalósításukhoz.
A Lean módszertannal a szoftverfejlesztéssel kapcsolatban először Mary Poppendieck és Tom Poppendieck foglalkozott, akik 2003-ban adták ki a “Lean Software Development” című könyvet. Ebben leírják a lean termelés hagyományos elveit a szoftverfejlesztéssel kapcsolatban, valamint egy 22 eszközből (gyakorlatból) álló eszköztárat és ezek összehasonlítását az agilis fejlesztési módszertannal.
Lean Software Development – nem a projektfejlesztés irányításának módszertana, mint ahogy az első látásra tűnhet. Ez egy olyan elvek összessége, amelyeket különböző projektekben használnak a fejlesztési folyamat javítására és hatékonyságának növelésére.
A Lean szoftverfejlesztés 7 alapelve
A lean fejlesztés középpontjában néhány fontos alapelv áll, amelyek az elmúlt évek során gyakorlatilag változatlanok maradtak. Próbáljuk meg röviden és egyszerűen elmagyarázni őket.
1. Szüntesse meg a pazarlást. Az alkalmazásfejlesztésben a pazarlás minden olyan dolog, ami nem hoz üzleti értéket az ügyfélnek, és nem javítja a fejlesztendő termék minőségét, illetve nem gyorsítja fel a projekt megjelenési idejét.
Más szóval, ez az, amire pénzt költünk, és amiből nem származik profit. Például a fel nem használt kód és a felesleges funkciók, amelyek nem hoznak többletértéket sem a felhasználó, sem az üzlet számára, viszont időt igényelnek a megbeszélésre, a fejlesztésre, a tesztelésre és a dokumentációra.
2. A tanulás felerősítése. Ahhoz, hogy a csapat olyan rendszert fejlesszen ki, amely üzleti értéket hoz az ügyfél számára, a készségek széles skálájával kell rendelkeznie. A csapatnak tudást kell gyűjtenie és megosztania, például az iteráció végén egy felülvizsgálat formájában.
Az új tanulás egy része technikai jellegű lesz, más részük viszont a nem funkcionális követelmények közé sorolható. Például annak megértése, hogy mit akar valójában az üzleti felhasználó, és nem azt, amit a fejlesztők elképzelnek. Ezért a csapatnak folyamatosan fejlődnie, tanulnia kell, és fel kell halmoznia a tudást. Ez lehetővé teszi a csapat számára, hogy a jövőben elkerülje a problémákat.
3. Döntsön minél később. A fő gondolat itt az, hogy várjunk az utolsó pillanatig, mielőtt bármilyen döntést hoznánk, különösen a visszafordíthatatlanokat. Ez különösen akkor igaz, ha olyan döntésekről van szó, amelyek jelentős hatással lehetnek a fejlesztés sikerére.
Minden döntést analitikus adatokkal és folyamatfigyelési eredményekkel kell alátámasztani, különben fennáll a veszélye, hogy a csapat túl sok változásban merül el, és megfeledkezik a projekt fő céljáról.
Minél később hoz egy döntést, annál több készséggel és megértéssel rendelkezik, és annál kevesebbet kell később újra megtennie.
4. Deliver as Fast as Fast as Possible. Ez az iteratív fejlesztés alapja. Minél gyorsabban megmutatja az alapmunkáját az ügyfélnek, annál hamarabb kapja meg a visszajelzéseit, így sokkal hamarabb kapja meg a terméket a szükséges javításokkal.
Egy érdekes üzleti funkció, amely néhány hónap alatt került gyártásba, végül teljesen haszontalannak bizonyulhat. De ha két héten belül kiadták, akkor az ügyfél számára hasznosnak bizonyulhat.
5. A csapat felhatalmazása. A szoftverfejlesztés szellemi munka folyamata, ezért kezelje az embereket hozzáértő, motivált szakemberekként, és ne olyan szakemberekként, akik szűk értelemben vett kódírási vagy diagramrajzolási készségekkel rendelkeznek.
Az emberek felelősségvállalása, motiváltsága és szilárd csapatként való munkája érdekében tisztában kell lenniük azzal, hogy milyen mértékben járulnak hozzá a fejlesztendő termékhez. Olyan körülményeket kell teremteni, amelyek között minden egyes személy az aktuális üzleti feladatra összpontosítva dolgozhat.
Bízzon a csapatában, és tisztelje azt. Az emberi tényező a sikeres szoftverfejlesztés egyik legfontosabb eleme.
6. Építse be az integritást. A lean fejlesztés alapelvei szerint egy problémát vagy a megjelenése után lehet megtalálni, vagy előre ki lehet küszöbölni a problémához vezető okokat.
A Lean Software Development szerzői azt javasolják, hogy a minőségi problémát közvetlenül a megjelenésekor oldja meg – kezdetben úgy, hogy a minőséget a termékbe helyezi, és nem hagyja a tesztelésre vagy a gyártásra a hibák azonosítását és javítását. Ehhez érdemes kis lépésekben haladni, és minden lépés után ellenőrizni a minőséget.
7. Lásd az egészet.
A problémák megoldásának fő módja, hogy kisebb problémákra bontjuk őket, és következetesen megszüntetjük a megjelenésük okait. Ahhoz azonban, hogy meglássuk a probléma gyökerét, a csapatnak jól kell ismernie az aktuális fejlesztési folyamatot, a fejlesztendő termék koncepcióját és stratégiáját.
Összefoglaló
Ebben a cikkben megismerheted a Lean szoftverfejlesztés alapelveit, amelyeket alkalmazhatsz, amikor a csapatodban projekteken dolgozol. Könnyen lehet, hogy ezáltal javíthatja a hatékonyságot és optimalizálhatja a folyamatokat.
Meg kell értenie, hogy elvekről beszélünk, és nem szigorú szabályokról. Ezért némi erőfeszítést kell tennie annak érdekében, hogy hatékonyan igazítsa őket az Ön projektjének sajátosságaihoz.
El akar indítani egy projektet?
Csapatunk készen áll arra, hogy megvalósítsa az Ön elképzeléseit. Vegye fel velünk a kapcsolatot most, hogy megbeszéljük az útitervét!