Aktív fórum témákNavigáció |
Agilis szoftverfejlesztési technikák II
Ez az írás a napjainkban egyre nagyobb teret hódító Agilis szoftverfejlesztési technikák áttekintése. Az Agilis Fejlesztés egy gyűjtőnév, ami alá több konkrét módszertan is tartozik, ezek egy része szoftverfejlesztési módszertan, más része menedzsment-módszertan, és szinte mindegyiknek része egyfajta hozzáállás is.
Nem célom az, hogy miután ezt bárki elolvassa, zsupsz, fejest ugorhasson bele, és holnaptól már használhassa a neki szimpatikus technikákat, már csak azért sem, mert a hozzáállás nem változik meg egyik napról a másikra. A cél az, hogy egyáltalán az esély meglegyen arra, hogy bárkinek megtetsszen ez vagy az a technika. Aztán ha megtetszett, akkor utána lehet utánanézni alaposabban. Valamennyire törekedtem arra, hogy a legagilisebb, legrugalmasabb technikáktól haladjak a hagyományosabb, vízesés-szerűbb módszertanok felé. Scrum menedzsment A Scrum menedzsment jellemzői
A scrum-oknál van egy Scrum-Mester, akinek az a fő dolga, hogy elhárítsa a csapat útjában lévő akadályokat, amik meggátolják, hogy a tehetségüket használják. A Scrum Mester nem a csapat főnöke, lévén a csapat jobbára önszerveződő, de pufferként funkcionál a csapat között és a destabilizáló hatású befolyások között. A Scrum azzal segíti elő a csapatok önszerveződését, hogy bátorítja a kommunikációt a csapat tagjai között, meg egyáltalán mindenki között, aki csak a projektben van. A Scrum egyik fő alapelve, hogy alapvetően gyakorlati jellegű kihívásokat nem lehet pusztán tekintély-alapon megoldani. Ezért a Scrum elfogadja, hogy a problémát nem mindig lehet teljesen megérteni, vagy meghatározni, ehelyett inkább a csapat teljesítményét kell maximumig fokozni, hogy aztán a csapat agilisen és rátermetten oldja meg ezeket a problémákat. A Scrumnak nincs 'receptje' a sikeres projekt menedzsmentre, mert nem előre meghatározott előírásokban látja a projekt sikerét. A Scrum inkább egyfajta hozzáállás. Egyszerűsített Scrum Sok szervezet van, amelyik igencsak ellenáll a lentről jövő módszertani kezdeményezéseknek. A Scrum azonban könnyen bevezethető 'fű alatt' is. Ehhez három alapvető dologra van szükség:
Ezzel az eljárással, ami egyszerű józan ész, a Scrum módszerének a lényege meg van valósítva, és lehet rá építeni. Alkalmazkodó projektmenedzsment Manapság nem túl gyakori, hogy egy szolgáltató megmondja a projekt jellemzőit és követelményeit elsőre. Sokkal gyakoribb az inkrementális szállítás, vagy az, hogy az ügyfél nem veszi át az eredményt. Viszont senki sem akarhatja megkövezni az ügyfelet azért, mert nincs tisztában azzal, hogy pontosan mire van szüksége. Lehet, hogy az ügyfél nem is végfelhasználó. Az ilyesfajta sokszereplős helyzetekben gyakran csak agilis módszerekkel lehet sikerre vinni egy projektet, mert hiába határozta meg az ügyfél hajszálpontosan, hogy mi kell neki, ha a végfelhasználó közbeszól, és mindent megváltoztat.
A napi találkozók ütemezése A legjobb pillanat a napi találkozókra ebéd után van. A reggeli találkozó nem jó ötlet, különösen olyan cégeknél nem, amelyek flexibilisen dolgoznak. Általában ezek a találkozók nem tartanak sokáig, úgyhogy lehet csinálni 'állófogadást' is, amikor mindenki feláll, és odasétál egy táblához, aztán ott beszélgetnek egy kicsit. Az ebédszünet alatt az emberek általában úgyis megbeszélik az élet nagy dolgait, úgyhogy az ebéd utáni beszélgetéseket könnyebb a munkára koncentrálni, és az emberek is jobban oda tudnak figyelni. Ráadásul miután mindenki mögött fél nap munka áll már, ezért az eszük is jobban rááll addigra a feladatra. KristályTiszta elvek Kristály: emberközpontú, kommunikációban erős, kicsiket szállít, ön-adaptálódó. Az alábbi központi elemekből áll:
Ehhez igazából 3 dologra lesz előre szükséged, amiket némi utánajárással a netről, vagy könyvekből lehet összeszedni:
Egy képzeletbeli párbeszéd, ami segít megvilágítani, hogy miről szól a KristályTiszta gondolkodásmód (és egyben arra is rávilágít, hogy 'siker-recept' ennek a módszernek sem része - a ford.):
Ugyanakkor az is igaz, hogy az ön-alkalmazkodás nem csak alulról jöhet, egy rátermett menedzser is megtalálhatja a módját annak, hogy a munkavégzés módja alkalmazkodjon a körülményekhez. Az is megtörténhet, hogy bár az embereknek nem az a célja, hogy a munka el legyen végezve, de rá vannak kényszerítve, és viszont akkor már jobban megéri a lehető leghatékonyabban dolgozni. Olyan is van, hogy ők ugyan szeretnék, ha a munka el lenne végezve, de nem áll rendelkezésükre minden, ami a munka leghatékonyabb kialakításához kell - jogkör, információ, tapasztalat, vagy erőforrás is hiányozhat ehhez. A Kristály lényege tehát egyfajta decentralizált ön-alkalmazkodás, egy közös cél érdekében. Dinamikus Rendszerfejlesztési Modell (DSDM) (Úgy látom, ez a DSDM inkább üzleti, sőt talán kifejezetten ERP-jellegű bevezetésekről szól, tehát úgy tessék olvasni, hogy nem általános szoftverprojektről van szó. Ezzel együtt ez a legidétlenebb leírás mind között, próbáltam a faszságot kibogozni, de nem mindig volt lehetséges. Viszont az tuti, hogy az ERP projektek jó részének az a baja, hogy a tökéletes megoldást keresve kicsúsznak minden elképzelhető határidőből és költségvetésből. - a ford.) A DSDM alapelvei
A DSDM használatának előfeltételei A DSDM sikeres alkalmazásához szükség van egy-két dologra. Először is arra, hogy a csapat tagjai között, a leendő végfelhasználók között, és a felsővezetés között interaktív, kétirányú kapcsolat legyen. Ez azért kell, hogy elkerülhetők legyenek azok az ismert hibák, amik a felsővezetés motivációjának hiányából erednek, ésvagy a felhasználó közreműködésének hiányából. Másodszor is, a projektnek felbonthatónak kell lennie, vagyis lennie kell értelmes dekompozíciónak. A DSDM iteratív, inkrementális technikái csak elkülönülő részekre működnek igazán jól. Azt is meg lehet tenni, hogy a nagy projekt szétesik sok kis alprojektre, amelyek egymástól függetlenül használnak DSDM-et, vagy valami mást, és a nagy projektet kezeljük DSDM-mel. Harmadszor, a követelményeket egyértelműen meg kell határozni, és prioritás szerint sorba kell rendezni. A DSDM fázisai A DSDM három fázisból áll, a pre-projekt fázisból, a projekt-fázisból, és a poszt-projekt fázisból. A projekt-fázis a legbonyolultabb, ennek 5 állomása van, amelyek iteratívan, lépésről-lépésre közelítik meg a projekt célját. A pre-projekt fázis A pre-projekt fázisban először is meg kell határozni a lehetséges projekt-jelölteket, meg kell szerezni a támogatást a projekthez, és ki kell alakítani a projekt iránti elkötelezettséget minden résztvevőben. Azzal, hogy ezeket a dolgokat az elején elintézzük, sok fejfájástól kíméljük meg magunkat a későbbiekben. A projekt életciklusa Első állomás: a Megvalósíthatósági Tanulmány (Feasibility Study Ezen az állomáson azt kell megvizsgálni, hogy a projekt megvalósítható-e DSDM segítségével. A már említett előfeltételek meglétét kell megvizsgálni, olyan kérdéseken keresztül, mint például 'Ez a projekt alkalmas-e az üzleti igény kielégítésére?', 'Mik a legkomolyabb kockázatok és a legfontosabb célok?'. A legcélszerűbb erre a workshop-ok, műhelytalálkozók szervezése. A végeredmény pedig a Megvalósíthatósági Tanulmány és a Megvalósítható Prototípus, amelyek alátámasztják a projekt megvalósíthatóságát. Ezt ki lehet bővíteni még egy globális Körvonalas Tervvel, ami a projekt hátralévő részét írja le körvonalakban, és egy Veszélynaplóval, amelyik a legfőbb kockázatokat tartalmazza. Második állomás: az Üzleti Terv (Business Study) Az üzleti terv a Megvalósíthatósági Tanulmány kiterjesztése. Miután kiderült, hogy a projektet meg lehet valósítani DSDM segítségével, meg kell vizsgálni, hogy milyen üzleti eljárásokra van szükség, kik a felhasználói csoportok, és milyen igényeik és kívánságaik vannak. Itt is a műhelytalálkozók a leghasznosabbak, ahol a különböző résztvevők összeülnek, és megbeszélik a rendszert. Ezekből az ülésekből áll össze a végső igénylista, amelynek fontos jellemzője, hogy az igények prioritással együtt kerülnek rá. Az igények prioritására a 'Mükéné' rendszert javasoljuk. (Eredetileg MoSCoW - a ford.) Ez négy csoportba sorolja az igényeket: Muszáj; Kéne, ha lehet; Nem ártana, ha belefér; Nem kerül be, de majd később esetleg. Ezekre a prioritásokra alapozva készül el a fejlesztési terv, ami iránymutatóként szolgál a projekt teljes időtartama alatt. A terv kialakításának fontos része az időkeretek megállapítása. A DSDM sikere jórészt itt dől el, hiszen a végső cél az, hogy az időkereteken és a költségvetésen belül maradva sikerüljön elég jól megközelíteni a célt, a helyes időkeretek meghatározása tehát nagyon fontos. Lehet készíteni architektúra-tervet is, ami szintén iránymutatóként szolgálhat a fejlesztés során. Harmadik állomás: Funkcionális Modell Iteráció (Functional Model Iteration) Az igényeket, amelyeket az előző lépésben összegyűjtöttünk, most funkcionális modellé alakítjuk. Ez a modell egy működő prototípusból, és modellekből áll. (Esküszöm, ez van odaírva, pedig tényleg hülyeség - a ford.) A prototípus-készítés fontos része ennek a lépésnek, mert ettől függ a felhasználók bevonása a projektbe. A kifejlesztett prototípusokat meg kell néznie minden érintett felhasználói csoportnak. A minőség biztosításának érdekében a DSDM minden iterációs ciklusában szükség van tesztelésre. A funkcionális modell négy további lépésre bontható:
Az eredménye mindennek egy Funkcionális Prototípus, meg egy Funkcionális Modell, amelyek együtt képviselik azt a funkcionalitást, amit ebben az iterációban ki lehetett fejleszteni, és készen állnak a felhasználói tesztre. Aztán frissíteni kell a Követelménylistát, ki kell törölni, ami elkészült, és a maradék igények prioritását újra kell gondolni. Negyedik állomás: Tervezés és építés iterációi (Design and Build iteration) A lényege ennek az állomásnak, hogy a komponenseket, amik az előző fázisban létrejöttek, integrálni lehessen egy rendszerbe, amelyik a felhasználóknak megfelel. Itt kell gondolni a nem funkcionális jellegű követelményekre, amelyeket a rendszerrel szemben támasztunk. A tesztelés ennek az állomásnak is nélkülözhetetlen része. Ez az állomás is négy lépésre bontható:
A végeredmény egy Tervezési Prototípus lesz, amelyet a végfelhasználók tesztelhetnek, és Tesztelt Rendszer címszóval mehet tovább a következő állomásra. Ötödik állomás: Bevezetés (Implementation) A bevezetés során a tesztelt rendszert a dokumentációval együtt átadjuk a végfelhasználóknak, és betanítjuk a további végfelhasználókat. A kész rendszert átnézzük, hogy megfelel-e azoknak a követelményeknek, amiket a projekt elején állapítottunk meg. Ezt az állomást is négy lépésre lehet bontani:
A végeredmény egy Bevezetett Rendszer a végfelhasználók munkahelyén, és részletes felhasználói dokumentáció a rendszerről. Harmadik fázis: poszt-projekt A poszt-projekt fázis célja, hogy biztosítsa a rendszer hatékony működését. Ez karbantartással, javításokkal és bővítésekkel érhető el, a DSDM elveknek megfelelően. Akár új projekteket is lehet indítani a létező rendszer kibővítésére, vagy új rendszerkomponens kifejlesztésére. Tesztelésen Alapuló Fejlesztés Ezt már lefordítottam egyszer, tessék elolvasni itt. Funkcionalitáson Alapuló Fejlesztés Sajnos nem találtam ide bevezetőt, úgyhogy megpróbálok én összehozni valamit. A dolog lényege, hogy a projektet szakterületekre osztjuk, és minden szakterületnek van egy vagy több szakértője, és egy Vezető Programozója, aki maga is fejlesztő. Ezenfelül van egy architektúra-csapat, akiknek van egy Vezető Tervezője. Elsősorban ez is üzleti jellegű alkalmazásokra van, és egészen egyértelműen csak objektum-orientált rendszerekre működik. Nagy csapatokra van kitalálva, és nagy projektekre. Első lépés: Átfogó terv készítése Ehhez az egész projekt-csapat kell, és a Vezető Tervező vezényli ezt a lépést. Második lépés: Követelménylista készítése Ezt egy olyan csapatnak kell véghezvinnie, ami rendszerint a Vezető Progrmaozókból áll, de nem mindig. Az adott szakterületet Részterületekre bontják, azon belül Üzleti Tevékenységeket állapítanak meg, amelyek Lépésekből állnak. Minden lépés egy követelmény. Ezáltal a Követelménylista legfelsőbb szintje a szakterület, alatta a részterület, azalatt az üzleti tevékenység, és legvégül a lépések. Minden üzleti tevékenységhez tartozik egy kulcsfontosságú osztály, amelyik felelős az adott tevékenység végigviteléért. Ezenfelül további osztályok tartoznak hozzá, amelyek a lépések során játszanak szerepet. Harmadik lépés: Funkcionalitás szerinti tervezés A projekt menedzser, a fejlesztési vezető, és a vezető programozók megtervezik azt a sorrendet, amely szerint meg kell valósítani a funkcionalitást. A sorrend alapját a funkcionalitások közötti függőségek, a fejlesztőcsapat terhelhetősége, és a funkcionalitások bonyolultsága képezi. A lényeg nem az, hogy egy szigorú sorrendet határozzanak meg, hanem hogy együttesen vegyék figyelembe a követelményeket, tehát fokozatosan finomítsák a listát, és aztán megnézzék az egyes változások hatását a többi elemre. Tipikusan ez úgy megy, hogy megnézik a fejlesztés sorrendjét, aztán megnézik, hogy hogyan vannak az üzleti tevékenységek kiosztva a vezető programozóknak, és melyik kulcsfontosságú osztály melyik fejlesztőnek van kiosztva (ugye a vezető programozó is fejlesztő). Ha sikerült az egyensúlyt megtalálni, és a fejlesztés sorrendje megvan, és minden üzleti tevékenység valamelyik vezető programozóhoz van rendelve, akkor kell az osztályokat is kiosztani (kivéve a kulcsfontosságú osztályokat, mert azok már ki vannak eddigre osztva). Negyedik lépés: Tervezés Funkcionalitás Szerint Ezt minden funkcionalitásra meg kell csinálni. Ötödik lépés: Funkcionalitás szerinti építés Ezt minden funkcionalitásra meg kell csinálni. Források: Fordította, összeállította, átírta itt-ott: Wintermute
|
Friss blogbejegyzésekBelépésVörös RébékAz első album legjobb számai: Kicsi lovam Érdekes oldalakHírek, érdekességekOnline felhasználók
Jelenleg 0 felhasználó és 3 vendég van a webhelyen.
|
Friss hozzászólások
3 év 10 hét
3 év 11 hét
3 év 16 hét
3 év 16 hét
3 év 35 hét
3 év 35 hét
3 év 35 hét
3 év 35 hét
3 év 40 hét
3 év 40 hét