Mint ahogyan az építkezés során tervrajzot használnak, és az ételek elkészítésekor receptet követnek, úgy a hatékony szoftverfejlesztéshez is vannak követendő elvek. Ezek az alapelvek összefoglalják azt, amit általában szoftverfejlesztési módszertannak neveznek. A szoftverfejlesztési módszertan elengedhetetlen, mivel olyan eljárásokat tartalmaz, amelyek a szoftverfejlesztési projekt sikeréhez vezetnek.
Ha az építkezés során nem követjük a tervrajzot, az eredmény katasztrófával jár, és ugyanígy a megfelelő elvek követése nélkül a szoftvertermék építése is. Sok döntő fontosságú lépést fog kihagyni, és végül számtalan szoftverminőségi problémával fog szembesülni. Projektmenedzserként fontos tudni, hogy egy szoftverprojekthez számos megközelítést lehet követni, köztük a lean fejlesztési megközelítést is, és ha helyesen választjuk ki, a szoftverfejlesztési módszertan mindig kiváló minőségű szoftverterméket fog eredményezni.
Lean szoftverfejlesztés
A lean fejlesztési módszertan egyfajta agilis megközelítés, amely a lean gyártási elveken alapul. A lean gyártás rendkívül sikeres elveket foglal magában, amelyeket először a Toyota termelési rendszere alkalmazott gyakorlatként a járműgyártás folyamatának irányítására és optimalizálására a vevői érték növelése és a pazarlás minimalizálása érdekében.
Ha tehát a lean elveknek köze van a gépjárműgyártáshoz, akkor hová tartozik a szoftverfejlesztés? Tudjuk, hogy a gyártás és a szoftverfejlesztés különbözik – a gyártás fizikai termékek létrehozását jelenti, míg a szoftverfejlesztés terméke megfoghatatlan, és az értékét csak a fejlesztőcsapat fejében lehet érzékelni és létrehozni.
A lean gyártás és a lean szoftverfejlesztés közötti leképezés először 2003-ban született meg a “Lean Software Development: An Agile Toolkit” című könyvében Mary és Tom Poppendieck. A könyvben Poppendieckék értelmezik, hogyan lehet a lean gyártási elveket produktívan alkalmazni a szoftverfejlesztésben. Mind a gyártás, mind a szoftverfejlesztés megismételhető eljárásokat követ, és pontos minőségi szabványokat tesz szükségessé. Emellett a csapatmunkára is támaszkodnak. Így a hét lean gyártási alapelv alkalmazható és felhasználható a szoftverfejlesztésben.
Szoftverfejlesztésnél követendő hét lean alapelv
A szoftvertermékek gyorsabb fejlesztési módjának lehetővé tétele miatt az agilis fejlesztési megközelítések számos fejlesztő cégnél népszerűek. Az ilyen vállalatok már alkalmazzák a lean fejlesztési elveket. Íme a 7 lean alapelv, amelyet alkalmazhat a szoftverfejlesztési projektjeiben:
- Hulladék megszüntetése
A lean fejlesztés során követendő első alapelv, hogy mindent ki kell küszöbölni, ami nem hoz értéket a végfelhasználó számára. A szoftverfejlesztésben ez az elv úgy valósítható meg, hogy először azonosítjuk az elkészítendő szoftvertermék értékét. Ha ez megtörtént, könnyebbé válik a “pazarlás” felderítése – mindaz, ami nem ad értéket a terméknek és végül a felhasználóknak, beleértve a felesleges kódot, a nem egyértelmű követelményeket, az extra funkciókat és folyamatokat stb. A módszertan egyéb, értéket nem teremtő fázisait is el kell távolítani. A szoftverfejlesztés során a pazarlás azonosítására léteznek eszközök, köztük az értékáram-térképezés.
- Tudás létrehozása
A szoftverfejlesztés önmagában is egy tudásgeneráló folyamat. A tudás létrehozásának elve ezért arra ösztönzi a fejlesztőcsapatokat, hogy megfelelő struktúrákkal rendelkezzenek a megfelelő tanulás lehetővé tételéhez. Egyszerűen hangzik, de az elv teljes összpontosítást és elkötelezettséget igényel. Megvalósítható a képzés elvégzésével, kódvizsgálatokkal, megfelelő kódkommentárokkal, páros programozással, projektdokumentációval, megosztó ülésekkel és egyebekkel.
- Build Quality In
A lean fejlesztőcsapatnak gondoskodnia kell arról, hogy a termékben a minőség fejlesztésére összpontosítson. Ezért nem szabad, hogy a hibamentes végtermék biztosításának fogalmától függjön. Ezzel szemben a csapatoknak folyamatosan fejleszteniük kell a fejlesztési folyamatot, és a funkcionális végtermék érdekében már a kezdetektől fogva fel kell hagyniuk a hibák eloszlatásával a termékben.
- Gyors szállítás
Az agilis fejlesztési technikák a szoftver minél gyorsabb szállítására összpontosítanak. A lean fejlesztés, amely agilis megközelítés, szintén a gyors szoftverszállításra helyezi a hangsúlyt. Ez azt jelenti, hogy a projektcsapatnak a megfelelő időben kell egy célzott komponenst a felhasználókhoz eljuttatnia. A csapata számára hozzon létre egyenletes és stabil munkafolyamatokat, amelyek a folyamatérték megértéséből fakadnak a gyorsabb eredmények elősegítése érdekében.
- Elősítse a csapatát
A projektcsapat megerősítése megköveteli, hogy mindenkit tiszteljen – a csapatként együtt dolgozó embereknek tisztelniük kell egymást. Amikor a dolgok rosszul mennek, és a legtöbbször így lesz, ne hibáztasd az embereket. Helyettük ellenőrizze, hogy vannak-e olyan hiányosságok a folyamatban, amelyek kihívásokhoz és konfliktusokhoz vezethetnek. Teremtsen mindenki számára kedvező munkakörnyezetet, és mutasson példát. Emellett hagyjon innovatív szabadságot a csapattagoknak, hogy kiválaszthassák és azonosíthassák a megfelelő megközelítéseket és eszközöket minden kijelölt feladathoz.”
- Késlekedés a döntések meghozatalában
Tudom, hogy ez ellentmondásosan hangzik, hiszen hagyományosan hajlamosak vagyunk arra, hogy a lehető leggyorsabban hozzuk meg a döntéseket. Lean-elvként a későn döntés nem jelent felelőtlenséget a döntések meghozatalában. Ehelyett arra ösztönzi a projektcsapatot, hogy hosszabb ideig tartsa nyitva a lehetőségeket, hogy több adatot és információt gyűjtsön, amelyek segíthetnek a döntő fontosságú döntések meghozatalában. A döntés késleltetése több időt ad a tanulásra és a további tudás megszerzésére, ami még jobb döntéseket eredményez. Ennek következtében a projektje nem szenved el olyan negatív hatásokat, amelyek a rossz döntéshozatalból adódhatnak. Gondoljon bele, inkább hozna meggondolatlan döntést, amit később megbánna, vagy inkább szánna egy kis időt az információgyűjtésre és a helyes döntés meghozatalára?
- Optimalizálja az egészet
Mindig a teljes fejlesztési folyamat optimalizálására törekedjen, ne csak a részfolyamatokéra. Ha csak egy vagy csak néhány folyamathoz ad hozzáadott értéket, az hatással lesz a végtermékre, és az eredményei aluloptimalizáltak lesznek. Nem szabad gyengébb terméket piacra dobnia azért, mert nem volt elég ideje. Az aluloptimalizálás kezelése érdekében az optimalizálás mint egész elv az ördögi fejlesztési és tesztelési ciklusok megszüntetésére, és ehelyett sokkal jobb munkakapacitásokkal való működésre ösztönöz. Az egész optimalizálása lehetővé teszi a folyamat értékáramlásainak azonosítását egy teljes csapat számára, ami gyorsabb és értékesebb szállítást tesz lehetővé. Az optimalizálás elérése érdekében összpontosítson tehát a teljes értékáramlásra az elejétől a végéig.