Mi a baj a tradicionális szoftverfejlesztéssel?

Megosztás

Alapvetően semmi, amire létrehozták, arra tökéletes. Kérdés, hogy stratégiai szempontból célravezető-e.

Idei harmadik meetupunk egyik előadása és vitatémája ezt a kérdést járta körbe.

Mire is hozták létre az enterprise világ szereplői a hagyományos, konzervatív fejlesztési rendszereit?

  • Kontrollálni a folyamatokat (tervezhetőség, tervek teljesítése)
  • Minél nagyobb mértékben kihasználni az erőforrásokat (produktivitás)
  • Minőség garantálása és folyamatos javítása (folyamatosan bővülő QM checklist-ek)
  • Specializáció erősítése (komponens csapatok, erős technológiai szemlélet és koordináció)

Nézzük meg stratégiai szempontból az utóbbi évek változásait:

  • Gombamód szaporodó startup-ok
  • Az új technológiáknak köszönhetően, mint pl a cloud, az enterprise piacra a belépés sokkal könnyebbé vált
  • Sokkal kiélezettebb piaci verseny
  • Megnövekedett dinamika, egy cég egekbe felfutása vagy teljes eltűnése már akár 2-3 év alatt lezajlik
  • Drasztikusan lerövidült az új termékek és szolgáltatások piacra kerülésének ideje
  • A fő stratégia előnyök közé a gyorsaság és az innováció lépett

Ha ezen a szemüvegen keresztül szemléljük a hagyományos fejlesztési módszertant, meg kell állapítsuk, hogy a kiszámíthatóságnak, tervezhetőségnek, kontrollnak súlyos ára van. Mégpedig a versenyképesség, gyorsaság, time-to-market és innováció tekintetében.

Milyen lényeges veszteségek vannak a vízesés folyamatban? Néhány fontosabbat említsünk meg:

  • Legfájóbb veszteség a várakozás, amíg egyik csapat, szakértő vár a másikra, ez a szervezet méretével általában exponenciálisan növekszik, ennek köszönhető, hogy a nagy cégek évente legfeljebb 1-2 alkalommal jelennek meg új verzióval a piacon, átfutási idejük (lead time) pedig egy-két év is lehet
  • Készletezés: bár a készletek a szoftveriparban láthatatlanok, ennek ellenére léteznek és komoly veszteségeket okoznak, egyik legnagyobb ilyen a különböző fejlesztési branch-eken hetekig-hónapkig tartó munka és az utána következő egyetlen integráció
  • Tudás átadása (handoff): a tacit/implicit tudás átadásánál minden alkalommal jelentős veszteség keletkezik, minél több ilyen van a szervezetben, annál több információ vész el
  • Kihasználatlan innovációs potenciál: a top-down irányítás akadályozza az alulról jövő ötletek, kezdeményezések kibontakozását
  • Gyakori kontextusváltások: a több párhuzamos projekt, mellette a karbantartás mindig megszakítják a gondolkodást és újratanulást generálnak

Ezek összeadódnak és azt eredményezik, hogy a cég rugalmatlan lesz, lassú, az átfutási idők rendkívül hosszúak, a tanulási folyamat és az innováció mértéke is igen korlátozott.

Mivel segíthet az agilis és lean menedzsment eszköztára?

  • Keresztfuncionalitás: adott követelmények megvalósítására minden szükséges tudás legyen meg a csapatban, ezáltal csapatmunkában sokkal gyorsabban végighaladhat a munka a folyamaton. 
  • Flow, áramlat: a munkatársak produktivitása helyett inkább azt optimalizáljuk, hogy egyenletes nagyságú feladatok tudjanak minél gyorsabban áramlani a munkafolyamaton
  • Iterációk, munkatempó: a rövid iterációk lehetőséget adnak a gyors visszajelzésre, rugalmas változtatásra, a készletek minimálizálására és a folyamat állandó javítására, azaz a sebesség növelésére
  • Csapat autonómia: az önszerveződés és önállóság biztosítja, hogy a problémákat a legalacsonyabb szinten oldják meg, ahol a legtöbb tudás van a megoldásukra. Az autonómiának kiemelkedő szerepe van az innováció és motiváció növekedésében is.
  • Folyamatban levő munka korlátozása (WorkInProgress limit): erősíti a csapatmunkát, a közvetlen kommunikációt és kikényszeríti a folyamatos tanulást
  • Vizuális menedzsment eszközök: egy jól látható tábla a szobában az aktuális célokkal, feladatokkal erősíti a csapat fókuszát és mindenkit azonos információs szinten tart

Ha felkeltette érdeklődésed a téma, kövesd figyelemmel meetupjainkat és blogunkat!