Szoftverfejlesztés lépései

Egy szoftver fejlesztése több lépésből áll, az ötlettől egészen a kész programig. Ezeket az átláthatóság érdekében pontokba szedtem össze.

Ötlet, elhatározás és kapcsolat felvétel

Először mint minden applikáció, csak gondolatként ill. ötletként születik meg. Van ami egy vagy több probléma megoldására vagy egy bonyolult folyamat megkönnyítése érdekében jön létre. Többnyire üzleti érdek által vezérelve kerül a megvalósítás ösvényére. Ha már van egy jó ötlet azt nem szabad elpazarolni, viszont nem szabad megfeledkezni a részletes kidolgozásáról sem! A lényeg a részletekben rejlik!
Első sorban meg kell vizsgálni azt, hogy nem létezik-e már hasonló alkalmazás? Ha létezik, akkor miben különbözik a mi elképzelésünktől? Meg kell határozni a célközönséget is, ki fogja használni?
Először egy beszélgetés során meghatározzuk a valós célokat, és elkezdjük kidolgozni a projekt részleteit. Azt szoktam tanácsolni, hogy minden kósza gondolatot írjunk le akár egy darab fecnire is, a későbbiekben jól jöhet.

Tervezés, dokumentálás

Szoftver- és rendszertervezés, koncepcióterv

Elengedhetetlen egy könnyen használható és jövőálló alkalmazáshoz, hogy megfelelően legyen megtervezve és dokumentálva. Első sorban az ötlet kifejtése pár mondatban, amiből meghatározzuk, hogy hogyan is induljunk el a szoftver tervezésével kapcsolatban. Ezt szabadszavas leírásnak nevezzük, mivel csupán az irányt adja meg, de a mikéntjét nem határozza meg. Ezt a szabad szavas leírást is csatoljuk majd a végleges dokumentumhoz, hogy tudjuk miből is indultunk ki.
Ezután következik az ötlet kidolgozása, ami már leszűkíti ill. redukálja a megvalósítás felé vezető lehetséges utakat. Nyilván vannak olyan lehetséges megoldások is amik nehezen vagy egyáltalán nem valósíthatóak meg. Van hogy ellentmonsásos dolgokkal is találkozunk. Ezek közül a lehetséges megoldásokból válogatva - az ellentmondások kiküszöbölésével -, közösen megbeszéljük a lehetőségeket, és ezek közül a legoptimálisabbat választjuk ki. Vannak olyan esetek is, ahol több optimális megoldás is létezik, ezeket teljesen külön kell hogy kezeljük.
A szoftver vázlata után az ahhoz szükséges infrastruktúrát és futtatási környezetet is meg kell határozni. Itt nem csak a kiszolgáló szerverekre gondolok hanem arra is, hogy milyen típusú és verziójú készülékeken kell hogy fusson a tervezett applikáció.
Ezek alapján elkészítem a fejlesztendő alkalmazás vázlatát, más néven a koncepciótervet.

Árajánlat, szerződéskötés, ütemezés

A létrehozott koncepcióterv alapján elkészítem az árajánlatot, ami magában foglalja a szoftver esetleges hibáinak javítását és karabantartását az átvételtől számított 1 évig bezárólag.
Ha ez az árajánlat megfelelő akkor készítünk egy megbízási szerződést, ami magában foglalja többek között a fejlesztendő szoftverrel szemben támasztott követelményeket (mellékletként csatolva a koncepciótervet), a fizetési feltételeket és a határidőt is.

Szoftver követelmény specifikáció dokumentum

A koncepcióterv alapján részletesen kidolgozásra kerül a szoftver követelmény specifikáció dokumentum. Amiben a fejlesztéshez szükséges további pontosításokat és funkcionális specifikációt tartalmazza. Ami alapján el lehet kezdeni a szoftverfejlesztést.

Fejlesztés

A szoftver követelmény specifikáció dokumentum alapján létehozásra kerül a projekt a verziókezelő - vagy verziókövető - rendszerben és hozzáadásra kerülnek a megfelelően kis méretűre felbontott feladatok is fontosság és függőségek alapján. Ezek a feladatok az előzőleg meghatározott fontossági sorrend és egymásra épülés alapján kerülnek végrehajtásra.

Verziók, tesztelés és hibajavítás

Alapvetően 2 féle verziót különböztetünk meg, a teszt és az éles - publikus - verziót. A tesztverziókat csak egy szűkebb csoport érheti el és az a fő feladatuk és kitűzött céljuk, hogy a publikálás előtt a lehető legtöbb hibát megtalálják. Ezek a hibák felvezetésre kerülnek a hibakövető rendszerbe és ezek alapján javításra kerülnek.
A teszt verziónál általában van alpha és beta teszt is. Az alpha teszt egy szűk körű, kevés résztvevővel rendelkező úgynevezett belső teszt, amiben a legfrissebb módosítások szerepelnek. Ha itt nem található hiba tovább kerül a beta tesztre. A nagy számok szabálya szerint, minél többen tesztelnek, annál több hiba derül ki, így a beta tesztelők száma már általában nagyságrendekkel nagyobb mint az alpha tesztelőké. A beta tesztet más néven külső tesztként is szokták nevezni, ilyenkor a leendő vagy meglévő - esetleg kiváltságos - felhasználók csoportja veheti kezébe az új verziót. Itt is visszajelzések alapján szintén felvezetésre kerülnek a hibák a hibakövető rendszerbe.

Átadás, publikálás

Ha a tesztelés során az összes észlet hiba javításra került, megtörténik az alkalmazás átadása. Többnyire az átadást a publikálás követi, de persze vannak kivételek. Léteznek olyan alkalmazások (pl.: raktárkezelő) is amiket csak belső használatra tervezünk, ezeket az alakalmazásokat nem szokás publikálálni.

Karbantartás, továbbfejlesztés

Egy applikáció élete valójában nem a tervezéssel kezdődik, hanem az első éles verzió kiadása után.
Az informatikában napról napra történnek változások és újítások, ez a szoftverfejlesztésre is teljes mértékben jellemző.
Az éles verzió zökkenőmentes működéséhez szükség van annak folyamatos karbantartására és esetleg frissítésére is.