A lean gyártásról először a Toyota kapcsán hallottam az üzleti működés órámon. Mindenkit, aki hozzám hasonlóan beleolvasott a lean elvekbe, teljesen lenyűgözött a pazarlás csökkentésének és a termelékenység növelésének koncepciója egy szándékos tervezés révén.
A termékfejlesztési folyamattal kapcsolatos lean elveket idővel számos iparág átvette, még a gyártáson kívül is, ami a szoftverfejlesztést is magában foglalja.
A lean fejlesztési elvek egy agilis megközelítés, amelyet a lean gyártási elvek alapján fejlesztettek ki. Ugyanezt használja a Toyota is, mint módszertant a járműgyártás folyamatának irányítására és optimalizálására a pazarlás minimalizálása és az ügyfélérték növelése érdekében.
Tudom, mire gondolhat. Ha a lean elvek a járműgyártás körül keletkeztek, hogyan illik bele a szoftverfejlesztés?
A lean agilis módszertan és a szoftverfejlesztés közötti kapcsolatot először 2003-ban mutatták be a “Lean Software Development” című könyvben: An Agile Toolkit” című könyvében Tom és Mary Poppendieck.
A könyvben Poppendieck értelmezték, hogyan lehet a lean elveket alkalmazni a szoftverfejlesztési folyamatban. Mind a szoftverfejlesztési, mind a gyártási folyamatok megismételhető struktúrákat követnek, és magas minőségi szabványokra támaszkodnak. Emellett nagymértékben függnek a csapatmunkától is a dolgok elvégzése érdekében.
A kérdés azonban az, hogyan lehet ezt megvalósítani. Ebben a cikkben azt vizsgáljuk meg, hogyan igazíthatjuk szoftverfejlesztési folyamatunkat a lean szoftver alapelveihez.
Tartalomjegyzék
- Melyek a lean agilis szoftverfejlesztés erősségei és gyengeségei?
- A Lean szoftverfejlesztés 7 alapelve
- A 7 Lean alapelv összehangolása a szoftverfejlesztési projektjeinkkel:
- A Lean szoftverfejlesztési alapelvek bölcs alkalmazása
- A Lean alapelvek alkalmazásának kihívásainak leküzdése
A Lean szoftverfejlesztés a termelékenység optimalizálása érdekében néhány alapelvet helyez működésbe. A szoftverfejlesztés több kulcsfontosságú jellemzővel rendelkezik, ami a legjobb folyamat a lean szoftverfejlesztés megvalósításához.
- Megismételhető folyamatok
- Team együttműködés
- Egységes szabványok
- Melyek a lean agilis szoftverfejlesztés erősségei és gyengeségei?
- A lean szoftverfejlesztés 7 alapelve
- A 7 lean elv összehangolása a szoftverfejlesztési projektjeinkkel:
- 1. A pazarlás kiküszöbölése
- 2. Tudás létrehozása
- 3. Építsünk minőséget
- 4. Gyors szállítás
- 5. Engedélyezze a csapatát
- 6. Késlekedés a döntések meghozatalában
- 7. Az egész optimalizálása
- A Lean szoftverfejlesztési elvek fázisok szerinti alkalmazása
- A Lean elvek alkalmazásának kihívásainak leküzdése
Melyek a lean agilis szoftverfejlesztés erősségei és gyengeségei?
A lean termékfejlesztési elvek erősségei közé tartozik:
- A racionalizált megközelítés, amely lehetővé teszi a funkciók korlátozott idő alatt történő átadását
- A felesleges tevékenységek megszüntetése, ami csökkentheti a költségeket
- A fejlesztőcsapat felhatalmazása, segítve őket a döntések meghozatalában, ami növelheti a morált.
A lean szoftverfejlesztési módszertan gyengeségei közé tartozik:
- Nagyban függ a bevont csapattól, így kevésbé skálázható más keretrendszerekhez képest
- A szigorú dokumentációra támaszkodik. Ennek elmulasztása súlyos fejlesztési hibákhoz vezethet.
A lean szoftverfejlesztés 7 alapelve
A lean szoftverfejlesztési megközelítésnek hét fő alapelve van, amelyek azzal a céllal dolgoznak, hogy gyorsítsák a szállítást és magas értéket nyújtsanak a végfelhasználóknak:
- Eliminate Waste
- Create Knowledge
- Build Quality In
- Fast Delivery
- Empower Your Team
- Delay in Making Decisions
- Optimalize the whole
Ezek a célok cum elvek teljesítéséhez olyan eszközöket használunk, mint például:
Készletgazdálkodás – Azt a gyakorlatot követjük, amikor az elmélet vagy a korlátozások vagy a sorban állás elméletének alkalmazásával csökkentjük az egy menetben folyamatban lévő műveletek számát.
Kanban – Ez egy pull projektmenedzsment rendszer, ahol korlátozzuk az egyszerre befejeződő feladatokat. Ez segít a fejlesztési folyamat túlterhelésének megelőzésében.
Value stream mapping – Ez egy vizualizációs módszer, ahol a fejlesztési ciklust – az ügyfél kérésétől a telepítésig – vizualizáljuk. Ez segít nekünk a tartásra és a tényleges feldolgozásra fordított idő bemutatásában és optimalizálásában.
Lássuk most, hogy vezető lean szoftverfejlesztő cégként hogyan hangoljuk össze a hét lean alapelvet a szoftverfejlesztési ciklusunkkal.
A 7 lean elv összehangolása a szoftverfejlesztési projektjeinkkel:
1. A pazarlás kiküszöbölése
A lean termékfejlesztés általunk elfogadott legfontosabb alapelve mindannak kiküszöbölése, ami nem hoz értéket a végfelhasználók számára. Az építendő termék értékének azonosításával kezdjük.
Ez megkönnyíti az olyan pazarlás azonosítását, mint a felesleges kód, a nem egyértelmű célok, a kiegészítő funkciók és az extra folyamatok stb.
A pazarlás az egyik legnagyobb digitális átalakulási kihívás. Tapasztalataink szerint számos területen megtalálható:
- A folyamatban lévő munka pazarlása, azaz a részleges munka. Ez csökkenthető a folyamatban lévő munka korlátozásával, a Kanban módszeren keresztül.
- A túltermelési hulladék pazarlása. Ezek akkor keletkeznek, amikor a visszacsatolási ciklusok túlságosan elhúzódnak, és egy sor extra funkciót követelnek meg.
- Folyamatok pazarlása. Ezeket a szoftverfejlesztő cégünk a páros programozási megközelítések és a jobb együttműködések révén kiküszöböli.
- Kézi hulladék. Ezt úgy oldjuk meg, hogy a csapatunk nem silóként működik. Szorosan együttműködő, keresztfunkciós csapatként dolgozunk, ami segít a hatékonyság növelésében.
- Szoftverhibák. A pazarlás hajlamos beszivárogni, ha a minőség nem válik a szoftverfejlesztő cég folyamatának részévé különböző egyensúlyokkal és ellenőrzésekkel.
2. Tudás létrehozása
A szoftverfejlesztési folyamat önmagában is erősen tudásgeneráló folyamat. Az Appinventiv a kezdetektől fogva rendkívül tudásközpontú vállalat volt. Ez az egyik fő oka annak, hogy az iparág bármely más szoftveralkalmazás-fejlesztő cégét megelőzve képesek voltunk a blokklánc- és AI-technológiát beépíteni a projektekbe.
Az elvet összehangoljuk a fejlesztési folyamatunkkal néhány kulcsfontosságú módszer bevezetésével, mint például: kódértékelések, képzések elvégzése, kódkommentárok, projektdokumentáció, páros programozás és megosztási ülések stb.
3. Építsünk minőséget
Szoftverfejlesztő csapatunk biztosítja, hogy a hangsúly mindig a magas minőségű termékek átadásán legyen. Mindig továbbfejlesztjük fejlesztési folyamatunkat, hogy a projektet az első lépéstől a végtermékig kiküszöböljük.
A termékminőség javítása érdekében különböző lean agilis szoftverfejlesztési megközelítéseket alkalmazunk:
- Páros programozás – a félreérthető pazarlás csökkentése és a maximális kimenet érdekében.
- Tesztelési kritériumok – a mérnököknek olyan rendszert kínálunk, amely biztosítja, hogy az megfelel a követelménynek.
- Kiegészítő fejlesztés – a minőség javítása az időszerű, következetes visszajelzések révén.
- Kisebb várakozási állapotok – a minőség védelme és a hatékonyság racionalizálása érdekében, miközben csökkentjük a tudáshiányt.
- Automatizálás – az olyan eszközök, mint a mesterséges intelligencia és a gépi tanulás felhasználása a fejlesztési folyamatok hibáinak csökkentésére és végül kiküszöbölésére.
4. Gyors szállítás
Az agilis fejlesztés alapjai nagymértékben összpontosítanak a szoftverfolyamatok gyors szállítására. A megközelítés részét képező Lean agilis elvek szintén a gyors szállításra helyezik a hangsúlyt. Ez egyszerűen azt jelenti, hogy a projektcsapatnak a mérföldkőterveknek megfelelően kellene leszállítania a modulokat.
A gyors alkalmazásfejlesztési idő elérése könnyebbé válik, ha van egy stabil munkafolyamat, amely segíti a csapatokat a folyamat értékének megértésében, és így elősegíti a gyors eredményeket.
5. Engedélyezze a csapatát
Ezt az egy lean alapelvet követjük csapattól és projekttől függetlenül. A startupok szoftverfejlesztésére összpontosító csapatunk megérti, hogy amikor együtt dolgoztok, tisztelnetek kell egymást. És amikor a dolgok rosszul mennek, vagy nem a terv szerint alakulnak, akkor a munkafolyamatban lévő hiányosságok ellenőrzésére kell összpontosítani, amelyek konfliktusokhoz és kihívásokhoz vezethettek.
A megalakulásunk óta arra összpontosítunk, hogy kedvező munkakörnyezetet teremtsünk, ahol példát mutatunk. A munkamorál javítása érdekében a kreatív szabadságot is lehetővé tesszük csapataink számára, lehetőséget adva nekik, hogy minden feladathoz a legjobb megközelítést találják meg.
6. Késlekedés a döntések meghozatalában
Tudjuk, mire gondol – a késlekedés a döntéshozatalban rossz ötletnek kell lennie.
De amikor a lean agilis elveket követjük, úgy gondoljuk, hogy a késői döntés nem egyenlő azzal, hogy felelőtlenné válunk. Sőt, arra ösztönzi a csapatot, hogy hosszú ideig tartsák nyitva a lehetőségeiket, hogy olyan adatokat gyűjthessenek, amelyek segíthetnek a fontos döntések meghozatalában.
Ez azt eredményezi, hogy a projektünk soha nem szenved olyan negatív hatásoktól, amelyek a rossz döntések miatt merülnek fel.
7. Az egész optimalizálása
A teljes fejlesztési folyamat optimalizálására törekszünk, ami nem csak a részfolyamatokra korlátozódik. Annak tudatában dolgozunk, hogy ha hozzáadott értéket adunk egy adott folyamatcsoporthoz, az a végtermékre is hatással lesz, és a végeredmény aluloptimalizált lesz.
Az al-optimalizálás kezelése érdekében ösztönözzük a jó munkakapacitásokkal való működést. Optimalizáljuk az egész folyamatot, ami lehetővé teszi az értékáramlások azonosítását az egész csapat számára, ami viszont értékes és időben történő szállítást ígér.”
A Lean szoftverfejlesztési elvek fázisok szerinti alkalmazása
A Lean elvek alkalmazásának kihívásainak leküzdése
Bár a cikk eddig a pontig arra hajlott, hogy a lean módszertan hogyan teszi előnyössé a zökkenőmentes szoftverfejlesztési folyamatot, mégis vannak olyan kihívások, amelyek uralkodnak, és amelyeket meg kell oldani.
- A csapattagoknak önirányítással kell rendelkezniük, és képesnek kell lenniük arra, hogy összetartó egységként dolgozzanak.
- Elképzelhető, hogy a követelmények folyamatosan növekednek anélkül, hogy a véglegesítés a láthatáron lenne. Ezeket az ügyfelekkel való beszélgetés során tapintattal kell kezelni.
- A Lean-módszer erősen összpontosít a folyamatos fejlesztésre. A megvalósítások ütemezése is általában hosszú. Ez viszont növelheti az időkeretet, amikor már képes lesz learatni az előnyöket.