CodeGym /Java blog /Véletlen /Minden, amit a szoftverfejlesztési módszerekről tudni kel...
John Squirrels
Szint
San Francisco

Minden, amit a szoftverfejlesztési módszerekről tudni kell: trendek, alapelvek és buktatók kezdőknek

Megjelent a csoportban
A szoftverfejlesztés összetett üzleti folyamat. Ez azt jelenti, hogy az informatikai szakembereknek beszélniük kell az optimalizálás, a tervezés és a költségszámítás nyelvét. A vezetési koncepciók ismerete nagy előnyt jelent mind a munkaadóknak, mind a fejlesztőknek, és segít az együttműködés új szintre emelésében. Minden, amit a szoftverfejlesztési módszerekről tudni kell: trendek, alapelvek és buktatók kezdőknek - 1

Figyelem kezdők! Modellek, módszertanok és általános zűrzavar

Kezdésként egy fontos tisztázást kell tennünk: a szoftverfejlesztési modellek és a szoftverfejlesztési módszertanok elkülönülnek egymástól. A modellek megjósolják, hogyan fog viselkedni egy rendszer. Módszerek szükségesek ahhoz, hogy a rendszer megfelelően működjön. A szoftverfejlesztési modellek és módszertanok összetévesztése minden IT-kezdő számára szokásos működési eljárás, így ez nem tekinthető nagy baklövésnek. A modellre példa a klasszikus vízesés-modell , amelynek lineáris előrehaladása, az egyes szakaszok céljainak világos meghatározása és a határidők szigorú ellenőrzése. Egy másik modell a spirálmodell, amelynek középpontjában a projektkockázatok korai felismerése és mérséklése áll. A spirális fejlesztés kicsiben kezdődik, először helyi problémákat old meg, majd halad a bonyolultabbak felé. Végül egy másik modell az iteratív és növekményes fejlesztés (IID) , amelyben a projekt életciklusa iterációk sorozatára van felosztva, amelyek mindegyike egy "mini-projekthez" hasonlít. Általában a modell a szoftverfejlesztési folyamat leírása . A módszertanok azonban a kijelölt feladatokon végzett munka ellenőrzésére, értékelésére és monitorozására szolgáló rendszerek. A módszertan a modern kor botja és sárgarépa, amely a fejlesztési folyamat minden lépésének irányításához szükséges. Kiválasztásuk a projekt iránya, költségvetése és a végtermék megvalósításának határideje alapján történik. Sőt, a módszertanokat a projektvezető és csapata temperamentuma alapján lehet kiválasztani. Akár a cég vagy az ügyfél filozófiája alapján. Vessünk egy pillantást a legnépszerűbb módszerekre.

1. Scrum

A Scrum egy agilis projektmenedzsment módszer. "Sprinteken" vagy rövid iterációkon alapul, szigorúan korlátozott időben (általában 2-4 hét). Ez minimálisra csökkenti a találkozók időtartamát, de növeli azok gyakoriságát. Minden sprint az iteráció végére elvégzendő feladatok listájából áll, és mindegyiknek megvan a maga "súlya". A megbeszélések során a csapat megbeszéli, hogy a csapattagok mit csináltak, mit terveznek, és milyen problémák vannak. A Scrum lemaradást használ a tervezéshez. Ebben a megközelítésben a csapatoknak általában van egy scrum mestere. Ez a személy segíti a csapat megszakítás nélküli munkáját, és kényelmes környezetet teremt a csapat számára. A projektben lesz valaki a terméktulajdonos szerepében is. Ez a személy a fejlesztés vezetője, felügyeli a terméket, és fő kapocsként működik a vevő kérései és a csapat által készített termékek között.

Előnyök:

  • képes gyorsan elindítani egy projektet a lehető legalacsonyabb költségvetéssel;
  • a haladás napi nyomon követése, gyakori projektbemutatók;
  • a projekt során történő módosítások képessége.

Hátrányok:

  • szerződéskötési nehézségek a rögzített költségvetés hiánya miatt;
  • nem dolgozik egy tapasztalatlan csapatnak, vagy ha a határidőket vagy a költségvetést alulbecsülik;
  • a sprintek közötti folyamatos változtatások képessége zavart kelthet.

Kinek lesz?

Egy ilyen rendszer akár tíz fős projektekhez is alkalmas, akár függetlenek, akár nagyvállalatokon belül léteznek. Ez kényelmes, ha a csapatnak sok munkája és hosszú életciklusa van, ami változásra és az új piaci feltételekhez való alkalmazkodásra kényszeríti őket.

2. Kanban

A Kanban legfontosabb jellemzője a projekt életciklusának megjelenítése. A munkaelemek végrehajtásához oszlopok jönnek létre. A munkadarabokat egyénileg kezelik. Az oszlopokat a következő állapotok jelzik: Teendő, Folyamatban, Kód felülvizsgálata, Tesztelés alatt, Kész (természetesen az oszlopnevek változhatnak). Minden csapattag célja az első oszlopban lévő munkaelemek számának csökkentése. A Kanban megközelítése intuitív, és segít megérteni, hol vannak a problémák. A Kanban szerkezete nincs véglegesen és visszavonhatatlanul rögzítve: a projekt sajátosságaitól függően rögtönzött oszlopokat is hozzáadhat. Például egyes csapatok olyan rendszert használnak, amelyben meg kell határozni a kész szabályokat egy munkaelemhez a végrehajtás előtt. Ebben az esetben két oszlop kerül hozzáadásra: Specify (adja meg a paramétereket) és Implement (munkavégzés).

Előnyök:

  • rugalmasság a tervezésben. A csapat csak az aktuális munkára koncentrál, egy-egy feladat prioritása is meghatározásra kerül;
  • láthatóság. Ha minden résztvevő hozzáfér az adatokhoz, a globális problémák könnyebben észrevehetők;
  • magas szintű részvétel a fejlesztési folyamatban. A folyamatok vizualizálása növeli az önszerveződést és az önkontrollt.

Hátrányok:

  • nem dolgozik öt főnél nagyobb csapatokkal;
  • nem hosszú távú tervezésre szolgál;
  • nem alkalmas motiválatlan csapatnak. A Kanban nem rendelkezik minden munkatételre határidővel. A módszertan nem ír elő szankciókat sem a késésekért.

Kinek lesz?

A Kanban nagyszerűen működik olyan vállalatoknál, ahol a csapat motivált a növekedésre és az eredmények elérésére. Ennek már nyilvánvalónak kell lennie – ez egy kis csapatnak szól. Talán egy különítmény vagy egy csapat egy része.

3. Rational Unified Process (RUP)

A RUP módszertana iteratív fejlesztési modellt használ. Minden iteráció végén (amely 2-6 hetet vesz igénybe) a csapatnak el kell érnie a tervezett célokat, és be kell szereznie a projekt működő, bár ideiglenes verzióját. A RUP a projekt négy szakaszra osztását kéri . Minden fázisban a termék következő generációján dolgoznak: bevezetés, kidolgozás, felépítés és átállás. Egy fázis végén a projekt mérföldkövét érik el. Az a pillanat, amikor a csapat értékeli eredményeit, a projekt mérföldkövének tekinthető. Ez azt jelenti, hogy a módszertan azt jelenti, hogy a fő funkciókat az első fázisban adják ki, és a kiegészítéseket a következő fázisokban adják hozzá.

Előnyök:

  • lehetővé teszi a változó feladatok kezelését, mind az ügyfél részéről, mind a munkavégzés során felmerülő változásokat;
  • biztosítja a termék folyamatos fejlesztését. Az iterációk során alaposan kiértékelheti a projektet;
  • lehetővé teszi a kockázatok azonosítását és kiküszöbölését a munka korai szakaszában, valamint a fejlesztés minőségének hatékony ellenőrzését.

Hátrányok:

  • Ez a módszertan meglehetősen összetett és nehezen kivitelezhető egy kis csapatban vagy vállalatnál;
  • a szakértők feladatmeghatározási képességétől függ;
  • a követelmények túlzott dokumentálására van szükség.

Kinek lesz?

Nagy projektek világosan meghatározott követelményekkel és jól megértett kockázatokkal, amikor a terméket a lehető leggyorsabban ki kell adni. Még a funkcionalitás rovására is, hogy gyorsan elfoglalhassa a rést, és csak később adja hozzá az utolsó simításokat.

Számos módszer létezik, de egy irányzat

A tagadhatatlanul népszerű, agilis elveken alapuló scrum és Kanban , valamint a szívós, iteratív RUP módszertan mellett a vállalatok a módszertan számos változatát alkalmazzák. Egy cég közelebb állhat az extrém programozáshoz, és a leggyorsabb és legegyszerűbb döntések meghozatalához. Egy másik közelebb állhat a tesztvezérelt fejlesztéshez. Egy másik továbbra is előnyben részesítheti a gyors alkalmazásfejlesztést (RAD). Ennek ellenére van egy erős, megkérdőjelezhetetlen tendencia a több módszer egyidejű alkalmazása felé. Vagy akár modellek és módszertanok egyesítése egyedi irányítási rendszerré. Napjaink vállalatai a bürokratikus akadályok felszámolására és az egységes csapatmunka légkörének megteremtésére törekszenek a szervezeten belül anélkül, hogy a felelősséget áthárítanák az osztályok és a szervezeti egységek között. A Scrum Alliance szerint, az IT-cégek 70%-a használ scrumot. Vannak köztük olyan óriások, mint a Google, az Amazon, a Salesforce, a Microsoft és az Adobe. A startupok és a fiatal projektek inkább a Kanban felé hajlanak, de a Toyota és például a Wargaming játékosai is használják. A Scrum egy tervezési eszköz, míg a Kanban a haladás nyomon követésére szolgál. Ami a RUP-ot illeti, leggyakrabban nyugati cégek használják 50-200 alkalmazottal és 1-10 millió dolláros bevétellel. Az IBM azonban módosította a RUP-ot, hogy közelebb kerüljön az agilis elvekhez, és kiadta az OpenUP módszertant (RUP, de agile). Ez a dicsőített agilis módszertan vezeti most az IT világot . Ez nem csak egy múló hóbort – még mindig innovatív, és valójában sok nagyvállalat alkalmazza. Az Agile-t a Szilícium-völgyben használják. A Facebook és az Uber használja.

Alsó vonal

Minden projektnek megvan a saját szoftverfejlesztési módszertana, amely a csapattól, a finanszírozástól, a határidőktől és az ügyfelek igényeitől függ. Nincs univerzális irányítási technika: még a rendkívül népszerű agilis módszertan sem tudja biztosítani a fejlesztési folyamat legjobb megközelítését. Ennek eredményeképpen a módszertanokat körültekintően választják meg, néha még elvi alapon is. Olyannyira, hogy a módszertanát áttekintve következtetéseket vonhatunk le magáról egy cégről, vagy a vevőiről. A módszertanokat keverik, modellekkel egészítik ki, adaptálják. Olyannyira, hogy új megközelítéseket szülnek. Ennek ellenére az irányítási terület végül a scrum és a Kanban kezében marad, a vízesés-modell vagy az iteratív RUP-módszer nem várt elemeivel.
További olvasnivalók:
Weboldalak: Könyvek:
  • Andrew Stelman, Jennifer Greene: „Agilis tanulás”;
  • Per Kroll, Bruce MacIsaac: „Agility and Discipline Made Easy: Practices from OpenUP and RUP”;
  • Mike Cohn: "Sikeres az Agile: Szoftverfejlesztés Scrum használatával";
  • Robert C. Martin: "Agilis szoftverfejlesztés: alapelvek, minták, gyakorlatok";
  • Marcus Hammarberg, Joakim Sunden: "Kanban in Action";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Egységes szoftverfejlesztési folyamat".
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION