Agilis szoftverfejlesztés – Lendületet hozó szemlélet

2021. június 01.

A szoftverfejlesztők számára manapság a legnagyobb kihívást a gyorsaság jelenti. A környezet, az igények folyamatosan változnak, ezek pedig gyors reakciókat követelnek meg a fejlesztőktől. Ebből adódóan nem mindegy, hogy a fejlesztőcsapat milyen metódust követ a munka során. Az agilis szoftverfejlesztés pontosan a gyorsaság kérdésére ad választ. Nézzük, hogyan!

Az agilis megközelítés sokféle területen alkalmazható, ami ezekben közös, az az, hogy a célok világosak és egyértelműek mindenki számára, a cégen belül folyó tevékenységek pedig a leghatékonyabb módon szolgálják ezek elérését.

Mi az az agilis szoftverfejlesztés?

Egy olyan megközelítési mód, ami különféle módszerekre és technikákra épül, melyeket egy bizonyos szabályrendszer figyelembevételével alkalmaz. Lényege, hogy a komplex és hosszú folyamatot kisebb ciklusokra bontja, minden fejlesztési ciklus során egy-egy termékverzió készül el, ami az azt megelőzőnél részletesebb, újabb funkciókkal kibővített. Így fejlődik a szoftver a folyamat előre haladásával.

Az alapelvek

Agilis szoftverfejlesztés

Az agilis szoftverfejlesztés alapelveit az Agilis Kiáltvány foglalja össze. Ezek a következőkre terjednek ki:

  • Első az elégedett ügyfél, ami azzal érhető el, hogy minél gyorsabban kell szállítani a működő szoftvert.
  • A változás a folyamat velejárója, akár a végső fázisokban is. Ezeket kell versenyelőnnyé konvertálni.
  • Minél gyakrabban, hetente, havonta szállítani kell a szoftvert az ügyfélnek.
  • A siker az egyéneken múlik. Ehhez megfelelő körülményekre, támogatásra és bizalomra van szükség.
  • Az információmegosztás személyes beszélgetések révén adható át a leghatékonyabban.
  • A folyamat haladásának mérője a működőképes szoftver.
  • A cél a fenntartható fejlődés, és az, hogy beálljon egy minden szereplő által tartható fejlődési ütem.
  • Az agilitás magasabb szintre emelhető a tervek követésével és a műszaki minőség szem előtt tartásával.
  • Maximalizálni kell az el nem végzett munkák mennyiségét.
  • Azok a csapatok, melyek képesek az önszerveződésre, magasabb színvonalú architektúrákat, terveket állítanak össze.
  • A fő fókusz a hatékonyságon van, ezért a folyamatokat a csapat időről időre megvizsgálja, és ha szükséges, változtat rajtuk, hogy azok még hatékonyabbak legyenek.

Egy eszme, több módszer

Az agilis szoftverfejlesztés egy szemlélet, amit többféle módon lehet átültetni a gyakorlatba a helyzet specifikumaitól függően. Bemutatunk néhány keretrendszert, melyek az agilis eszmékre épülnek!

Scrum

Scrum

A Scrum lehetővé teszi a hatékony termékfejlesztést egy gyorsan változó környezetben is. A keretrendszer legfontosabb elemei a szereplők, akik különféle szerepköröket töltenek be. Van a Terméktulajdonos, aki a megrendelőt képviseli, a Fejlesztőcsapat, aki a fejlesztést végzi és a Scrum master, aki segít a Scrum módszertant érvényre juttatni. A fejlesztés során különféle események határozhatók meg, ilyenek például a nagyon fontos szerepet játszó meetingek (pl.: Daily Scrum), illetve vannak még a munkaanyagok, amik segítik a fejlesztést, ide sorolható például a Product Backlog, ami a Terméktulajdonos által készített lista arról, hogy mit kell tudnia a terméknek.

A Scrum előnye, hogy könnyen megérthető, mivel egyszerű és logikus. Központban az ügyféligények állnak, emellett pedig minden a hatékonyság alá van rendelve. Fontos, hogy a gyakori meetingek révén segíti a kommunikációt, ami csapatösszehúzó erővel is bír. Hátránya viszont, hogy egy bizonyos szintig könnyű elsajátítani, profin űzni azonban nagyon nehéz.

Lean

A Lean szoftverfejlesztés középpontjában az egyszerűsítés és a hatékonyság áll. Olyan célok érvényre juttatását írja elő, mint a pazarlás minimalizálása, a tanulás segítése, a lehető legkorábban és leggyorsabban előállni egy megoldással. A Lean jellemzője, hogy az embereket felhatalmazza, kiemelten kezeli a projekt integritását, amire egyébként komplexen tekint.

Kanban

A Kanban csakúgy, mint a Lean Japánból indulva hódította meg a világot. Célja többek között a készletek minimalizálása, az ügyfél igényeinek előtérbe helyezése és a folyamatos fejlesztés. A Kanban módszertan kártyákon alapul, melyek képesek az adott szakaszban csökkenteni a munka mennyiségét. Ebben a módszertanban nincsenek időkeretek, nagyobb ívekben gondolkodik, mint a Scrum. Középpontjában a feladatok állnak, nem pedig határidők.

Agilis szoftverfejlesztés - kanban

A Kanban tábla mutatja a folyamat haladását, mely az alábbi elemekből áll: célok, várólista, kidolgozás és elfogadás, fejlesztés, teszt, telepítés, kész. Mindegyik fázisba csak meghatározott számú feladat kerülhet, így biztosítják, hogy a fókusz ne kerüljön máshova, a csapat pedig ne ússzon el. A feladatok számát jellemzően a csapat mérete határozza meg.

Előnye, hogy az egyidejűleg végzett feladatok számának csökkentésével rövidíthető az elvégzéshez szükséges idő. Ha már van elegendő tapasztalat, akkor átlagosan meghatározható, hogy mennyi munkaórát tesznek ki az egyes szakaszok. Azáltal, hogy vizualizálja a projekt haladását és korlátozza az egyidejűleg végzett feladatok mennyiségét, növelni tudja a hatékonyságot és az ügyfél elégedettségét.

Extreme Programming

Az Extreme Programming (XP) egy rugalmas, minőségvezérelt fejlesztési keretrendszer. Öt értéket határoz meg:

  • kommunikáció (megfelelő mennyiségű és minőségű kommunikáció),
  • egyszerűség (a pazarlás elkerülése azáltal, hogy a lehető legegyszerűbb és legjobb eredményt hozó megoldást választja),
  • visszacsatolás (a folyamatos visszajelzéseknek köszönhetően azonosíthatók azok a pontok, ahol további fejlődésre van szükség),
  • bátorság (ez abban határozható meg, hogy a csapattag merjen lépni és változtatni a cselekvésén, ha arra szükség van),
  • tisztelet (a csapattagoknak egymás felé tisztelettel kell fordulniuk).

Fontos elemét képezik a különféle gyakorlatok, mint például a Tervezési játék, az Egyszerű design, a Tesztelés, a Páros programozás, a Folyamatos integrálás vagy éppen a 40 órás hét. Ezekről részletesebben Ron Jeffries oldalán olvashatsz bővebben, aki az XP módszertan egyik alapítója!

Az agilis szoftverfejlesztés tárháza igen bőséges. A fent bemutatott módszertanokon és keretrendszereken kívül ide sorolható még a Crystal módszer, a Dynamic System Development Method és a Feature-Driven Development is.

Előnyei

Ismétlés, ismétlés

A szoftverfejlesztés e típusa iteratív, vagyis a fejlesztési körök során mindig bővíti a szoftver meglévő funkcióinak körét, szükség esetén pedig javítja az előző hibákat. Ebből adódik, hogy a specifikáció, a tervezés, a fejlesztés és a tesztelés időben nem különül el. A folyamatos ismétléseknek köszönhetően egyre jobb és magasabb minőséget képviselő termék jöhet létre.

Igazodik az igényekhez

Mivel a szoftver aránylag hamar a fogyasztók kezébe kerülhet, így lehetőség nyílik arra is, hogy a userek visszajelzéseket adjanak. Ezek alapján még inkább a célcsoport igényeire szabható a program, ami növeli az elégedettséget és a projekt sikerét.

Gyors

Az agilis megközelítésnek köszönhetően hamar szállítható olyan szoftververzió, ami használható és elérhető. Ez a tervezett termék egy verziója, ami a jövőben is folyamatosan fejlődik. Például kezdetben csak egy funkciót tartalmaz, idővel pedig bővül egyéb hasznos felhasználási irányokkal.

A fejlesztés időtartama egyébként attól függ, hogy maga a projekt mennyire összetett. Ennek felmérését követően egy terv készíthető, ami a csapattagok számából és a szükséges fejlesztési órákból indul ki.

Költségkímélő

Ez a megközelítés a hatékonyságra alapszik, ami a költségek tekintetében is igaz. Üzleti szempontból rengeteg pénz és idő spórolható meg azzal, hogy kizárólag olyan funkciók készülnek el, amelyekre valóban van igény. Arról nem is beszélve, hogy a marketing költségek is csökkenthetők azáltal, hogy a fogyasztókat már korai fázisban bevonják, elkötelezetté teszik.

Az agilis szoftverfejlesztés igen előremutató, ezt pedig sokan fel is ismerték, ha arra gondolunk, hogy népszerűsége folyamatosan növekszik. Könnyedén csökkenthetők a hibák a megközelítés jellegéből adódóan, mivel egy nagy szoftvert kisebb részekre bontva épít fel. Ez hozzájárul ahhoz, hogy mind az ügyfelek, mind pedig a felhasználók sokkal elégedettebbek legyenek.

A szoftverfejlesztés fontos momentuma a bizalom, amit az ügyfél szavaz meg a fejlesztőcsapatnak. Ennek kivívása és megőrzése nem egyszerű, ezek a módszertanok azonban a folyamatos kommunikáció révén elősegítik kialakulását. A SynerinSoftnál különösen nagy hangsúlyt fektetünk arra, hogy az ügyfélkapcsolatokat ápoljuk, az igényeket pedig maradéktalanul beépítsük. Keresd kollégáinkat, ha kérdésed van a szoftverfejlesztéssel kapcsolatban! 

SynerinSoft

SynerinSoft
Sütihasználati tájékoztató

A honlappal kapcsolatos felhasználói élmény fokozásának érdekében, az adatkezelési tájékoztatóban foglaltak alapján, honlapunkon sütiket alkalmazunk.