FreiMind 
Frei Dávid QA tesztmérnök

FreiMind 
Frei Dávid QA tesztmérnök

Agile 12 alapelve

2017.02.06. 23:00

Az Agile módszertanát azért keltették életre 2001-ben, hogy választ találjanak a hagyományos fejlesztési modellek hiányosságaira. 

Azt tudnod kell, hogy ezen alapelveket könnyű félreértelmezni elsőre. A összefoglaló alatt ezért igyekszem magyarázatot adni mindegyikhez.

A fordításért köszönet az Agile Meetup tagjainak. A kulcsszavakat magam alkottam hozzá, hogy könnyebben megjegyezhetőek legyenek ezek a gondolatok.

Ajánlom figyelmedbe a blogbejegyzés végén lévő extra videót is!

Az eredeti 12 alapelvet itt találod: 

1

Az ügyfél az első

Legfontosabbnak azt tartjuk, hogy a vevőnk elégedett legyen, mert értékes szoftvert szállítunk neki hamar és folyamatosan.

7

Ha működik, jól haladunk

Az előrehaladás elsődleges mércéje a működő szoftver.

2

Az igények változnak

Elfogadjuk, hogy a követelmények változhatnak akár a fejlesztés vége felé is. Az agilis módszertanok befogadják a változást a megrendelő versenyképességének érdekében.

8

Fenntartható fejlesztést

Az agilis módszertanok elősegítik a fenntartható fejlesztést. A szponzoroknak, fejlesztőknek, felhasználóknak korlátlan ideig képesnek kell lenniük az egyenletes sebesség megőrzésére.

3

Működő szoftvert gyakran

Gyakran szállítsunk működő szoftvert, pár hetes és hónapos időközönként, lehetőleg a rövidebb periódust választva.

9

Okos szakértők és okos tervezés az agilitásért

A folyamatos figyelem a technikai kiválóságra és a jó tervezésre fokozza az agilitást.

4

Napi szintű közös munka

A megrendelők, üzleti szakemberek és a szoftverfejlesztők dolgozzanak együtt minden nap a teljes projekt során.

10

Fókuszálj a lényegre

Az egyszerűség – az el nem végzett munkamennyiség maximalizálásának művészete – alapvető érték.

5

Építkezz agilis emberekre

Építsük motivált egyénekre a projekteket. Teremtsük meg nekik a számukra szükséges környezetet és támogatást, és bízzunk bennük, hogy elvégzik a munkát.

11

Önszerveződő módon lesz a legjobb

A legjobb architektúrák, követelmények és rendszertervek az önszerveződő csapatmunkából alakulnak ki.

6

Oszd meg személyesen

A személyes beszélgetés az információ átadásának leghatásosabb és hatékonyabb módja a fejlesztő csapaton belül.

12

Rendszeres visszacsatolást közösen

A fejlesztői csapat rendszeres időközönként megfontolja, hogyan válhatna hatékonyabbá és ennek megfelelően változtatja viselkedését.

Lássuk rövid magyarázatokkal is kiegészítve:

1. Legfontosabbnak azt tartjuk, hogy a vevőnk elégedett legyen, mert értékes szoftvert szállítunk neki hamar és folyamatosan. 

[Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.]

A megrendelővel szoros együttműködésben folyamatosan és viszonylag hamar szállítunk a számára legfontosabb követelmények szerint. A leszállítandónak működnie kell olyan értelemben, hogy kiértékelhető legyen az ügyfél számára és visszajelzést adhasson róla.

2. Elfogadjuk, hogy a követelmények változhatnak akár a fejlesztés vége felé is. Az agilis módszertanok befogadják a változást a megrendelő versenyképességének érdekében. 

[Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.]

Lehetőséget kell teremteni a változtatásra szemben azon hagyományos módszertanokkal, mely szerint egy elfogadott tervtől eltérni nem lehet. Ezen keretek elősegítik az ügyfelek versenyképességét, mivel gyorsabb választ tesz lehetővé a külső tényezőkre és így a kínálkozó lehetőségekkel szemben versenyelőnyre tesz szert.

3. Gyakran szállítsunk működő szoftvert, pár hetes és hónapos időközönként, lehetőleg a rövidebb periódust választva.

[Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.]

Minél gyakrabban kaphatunk visszajelzést az ügyféltől az eddig elkészült működő termékről annál nagyobb a valószínűsége, hogy az ügyfél elégedett lesz a végeredménnyel.

4. A megrendelők, üzleti szakemberek és a szoftverfejlesztők dolgozzanak együtt minden nap a teljes projekt során.

[Business people and developers must work together daily throughout the project.]

Az agilis szoftverfejlesztés alapelve a változtatások elfogadása és kezelése, valamint a könnyebb dokumentáció alkalmazása, amely a változtatásokat is elősegíti. Ezek miatt szoros együttműködés szükséges a fejlesztés és a megrendelő között az aktuális követelmények tisztázása érdekében.

5. Építsük motivált egyénekre a projekteket. Teremtsük meg nekik a számukra szükséges környezetet és támogatást, és bízzunk bennük, hogy elvégzik a munkát.

[Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.]

A bizalom az egyik kulcs pillére az Agile-nak. Motivált és megfelelő képességű csapat számára meg kell adni minden bizalmat, támogatást és környezetet, hogy jó munkát végezhessenek. Az egyének döntik el mely feladattal foglalkoznának szívesen külső befolyás, mikro menedzsment nélkül.

6. A személyes kommunikáció az információ átadásának leghatásosabb és leghatékonyabb módja a fejlesztő csapaton belül.

[The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.]

A direkt, személyes kommunikáció lehetővé teszi a problémák és félreértések forrásának hatékony feloldását.

7. Az előrehaladás elsődleges mércéje a működő szoftver.

[Working software is the primary measure of progress.]

Amíg nem készül el az első működő változata a szoftverünknek, addig a sok belefektetett energia a tervezésbe és kivitelezésbe nem eredményez közvetlen értéket az ügyfél számára. Az első működő szoftver verzió viszont már egy korlátozottan, de használható terméket teremt a megrendelőnek.

8. Az agilis módszertanok elősegítik a fenntartható fejlesztést. A szponzoroknak, fejlesztőknek, felhasználóknak korlátlan ideig képesnek kell lenniük az egyenletes sebesség megőrzésére.

[Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.]

Az Agile arra törekszik hogy mindenki a lehető leghatékonyabban fordítsa minden idejét az elvárt termék előállítására. Egy megadott költségkereten belül a csapat tagjai közösen hozhatnak döntéseket vezetői irányítás nélkül. A hatékony, kreatív közös munkaszervezés lehetővé teszi a túlórák és hosszú hétvégi munkák elkerülését.

9. A folyamatos figyelem a technikai kiválóságra és a jó tervezésre fokozza az agilitást.

[Continuous attention to technical excellence and good design enhances agility.]

Folyamatosan figyeljünk arra, hogy a megfelelő szakemberek dolgozzanak a megfelelő képességekkel a cél megvalósítása érdekében. Készítsünk olyan terméket, amelyre büszke lehetsz alapos, profi tervezéssel.

10. Az egyszerűség – az el nem végzett munkamennyiség maximalizálásának művészete – alapvető érték.

[Simplicity—the art of maximizing the amount of work not done—is essential.]

A Pareto 80/20-as szabály szerint tipikusan az eredményeid 80%-a a munkád 20%-ából származik. Az alapelv szerint fókuszálj a fontos 20%-os erőfeszítésedre, hogy megszerezd az eredményeid túlnyomó többségét. Fókuszálj a leglényegesebb feladatokra, hogy értéket teremthess.

11. A legjobb architektúrák, követelmények és rendszertervek az önszerveződő csapatmunkából alakulnak ki.

[The best architectures, requirements, and designs emerge from self-organizing teams.]

A csapatnak az alapelv szerint önálló döntéshozási joga és felelőssége van, hogy a kitűzött célokat elérje és egyben felelőssége meghatározni, hogy miként végezhető el a feladat teljesen.

12. A fejlesztői csapat rendszeres időközönként megfontolja, hogyan válhatna hatékonyabbá és ennek megfelelően változtatja viselkedését.

[At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.]

Az agilis fejlesztés szerint a követelmények változnak és fejlődnek, ami több elemzést és tervezést igényel a folyamat közben. Ezen elemzések és tervezések során külső tényezők is változhatnak, amelyeket figyelembe kell venni.

Végül egy nagyon jó előadás hogyan lehet az Agile-t félreértelmezni: