Manapság nagy és kis vállalati szinten fejlesztés közben az agilis módszereket részesítik előnyben.
De mit is jelent az, hogy valami agilis? Az agilis szót leginkább hatékonynak lehet fordítani. De mitől lesz hatékony a szoftverfejlesztés?
Az egész a korábban említett vízesés modellig és annak rugalmatlanságáig vezethető vissza. Ez a modell a tervezéssel indul, ami a végtelenségig elhúzható, túlbonyolítható. Minél hosszabb a tervezési fázis annál nagyobb a valószínűsége annak, hogy a megrendelő változtatni fog valamin.
Éppen ezért előfordulhat, hogy nagyon sok kidolgozott rész és munka megy a levesbe a változások miatt. Megrendelői oldalról pedig a vízesés modell hátránya, hogy csak a végtermékkel szembesül a megrendelő. A végtermék létrejötte pedig eltarthat a szoftver bonyolultságától függően akár 1-2 évig is.
Ezen problémák hatására 2001 februárjában 17 szoftverfejlesztő találkozott a Snowbird Üdülőközpontban Utah-ban, hogy megbeszéljék a pehelysúlyú szoftverfejlesztési módszereket. Ennek eredményeként született meg az Agilis kiáltvány, ami hatalmas változásokat hozott a szoftverfejlesztés menetében.
A kiáltvány szövege:
„A szoftverfejlesztés hatékonyabb módját tárjuk fel saját tevékenységünk és a másoknak nyújtott segítség útján. E munka eredményeképpen megtanultuk értékelni:
- Az egyéneket és a személyes kommunikációt a módszertanokkal és eszközökkel szemben
- A működő szoftvert az átfogó dokumentációval szemben
- A megrendelővel történő együttműködést a szerződéses egyeztetéssel szemben
- A változás iránti készséget a tervek szolgai követésével szemben
Azaz, annak ellenére, hogy a jobb oldalon szereplő tételek is értékkel bírnak, mi többre tartjuk a bal oldalon feltüntetetteket.
Kent Beck, James Grenning, Robert C. Martin, Mike Beedle, Jim Highsmith, Steve Mellor, Arie van Bennekum Andrew Hunt, Alistair Cockburn, Ron Jeffries, Jeff Sutherland, Ken Schwaber, Ward Cunningham, Jon Kern, Dave Thomas, Martin Fowler, Brian Marick
© 2001, a fenti szerzők. Ez a nyilatkozat szabadon másolható bármilyen formában, de csak teljes egészében ezen megjegyzéssel együtt.”
Az Agilis Kiáltvány 12 alapelven nyugszik:
- Legfontosabbnak azt tartjuk, hogy az ügyfél elégedettségét a működő szoftver mielőbbi és folyamatos szállításával vívjuk ki.
- Elfogadjuk, hogy a követelmények változhatnak akár a fejlesztés vége felé is. Az agilis eljárások a változásból versenyelőnyt kovácsolnak az ügyfél számára.
- Szállíts működő szoftvert gyakran, azaz néhány hetenként vagy havonként, lehetőség szerint a gyakoribb szállítást választva.
- Az üzleti szakértők és a szoftverfejlesztők dolgozzanak együtt minden nap, a projekt teljes időtartamában.
- Építsd a projektet sikerorientált egyénekre. Biztosítsd számukra a szükséges környezetet és támogatást, és bízz meg bennük, hogy elvégzik a munkát.
- A leghatásosabb és leghatékonyabb módszer az információ átadásának a fejlesztési csapaton belül, a személyes beszélgetés.
- A működő szoftver az elsődleges mércéje az előrehaladásnak.
- Az agilis eljárások a fenntartható fejlesztést pártolják. Fontos, hogy a szponzorok, a fejlesztők és a felhasználók folytonosan képesek legyenek tartani egy állandó ütemet.
- A műszaki kiválóság és a jó terv folyamatos szem előtt tartása fokozza az agilitást.
- Elengedhetetlen az egyszerűség, azaz az elvégezetlen munkamennyiség maximalizálásának művészete.
- A legjobb architektúrák, követelmények és rendszertervek az önszerveződő csapatoktól származnak.
- A csapat rendszeresen mérlegeli, hogy miképpen lehet emelni a hatékonyságot, és ehhez hangolja és igazítja az működését.
Az agilis kiáltvány és munkaszervezésre leginkább két bejáratott módszertant alkalmaznak az iparban. Ezek a Scrum és a Kanban, illetve a két rendszer kombinációja a Scrumban.
Ezek ismertetésébe nem folynék bele, mert a könyv tematikája szempontjából nem is lényeges, illetve ezekről külön könyvet lehetne írni.
Ami viszont lényeges, hogy megértsük azt, hogy a vízesés modell papíron jól mutat, de gyakorlatban nem igen alkalmas nagy, komplex rendszerek kivitelezésére. Viszont a lépései, amiket definiál, azok alkalmazhatóak, csak iteratív módon.
Ez azt jelenti, hogy a szoftvert kisebb darabokra bontjuk és azokat vízesés szerint fejlesztjük le, így a felhasználó fix időközönként egy működő szoftvert kap aminek a tudása jó eséllyel folyamatosan bővül.