Laza talajra nehéz tartós várat építeni. Kellenek a jó alapok a mindennapjainkban, amikre tudunk építkezni. Olyan stabil állások, ami az előre nem várt terheléseket képesek kibírni. Ez a digitális termékek előállításánál sincsen másképpen. Egy app alapjai is ilyenek. Könnyebben módosíthatóak fizikai társaiknál, mert nem kőbe vésett alkotások. Mindazonáltal az alkotóiknak ugyan olyan pontosan kell eljárniuk az elejétől fogva, mint egy felhőkarcolónál.
A bevezetőben említett párhuzammal azt érzékeltettem, hogy bizony sok kidobott munkaórától kíméli meg magát az a szoftver fejlesztő, aki időt szán a részletek kidolgozására.
Folytatva az előző cikkben bemutatott Trivia Game kvíz mobil app alapjai után, bemutatom, hogy én hogyan szoktam nekifogni a részletek meghatározásának.
A funkcionalitás behatárolása
Fontos, hogy egy mobil alkalmazás egy feladatot oldjon meg, de azt jól tudja. Ez egy közhelyes kijelentés. Ez igaz a kezdeti időkre. Miért? Mert az első felhasználóink ebből fogják megtudni az üzenetünket, amit közvetíteni szeretnénk. Azt, hogy pontosan mit fog a mi app-unk megoldani nekik. Ennek jól felismerhetőnek és egyértelműnek kell lennie. Ez a UX (User eXperience) terülébe tartozik.
A Trivia Game egy kvíz játék alkalmazás, ami hétköznapi kérdéseket mutat meg, de a válaszok már korántsem egyértelműek.
Az alapok után aztán jöhet további meghatározás: többen is játszhatják; kihívások formájában; internet nélkül is működjön; motiválja a játékost közben, stb.
A legkisebb egység
Ezekből könnyedén látszik, hogy a legkisebb egység egy kérdés (trivia). Egy olyan kis adatszerkezet, ami köré szervezhető a termék.
Fontosnak tartom, hogy struktúrákban gondolkodjak. Ez olyan, mintha egy dobozt hordoznánk körbe. Az, hogy mi van a dobozban, nem lesz érdekes a postásnak. Csak a végén annak, aki megnézni. Kivehetek, beletehetek dolgokat (adatok) később bármikor. Ezt, a játék elemi egységét, egy kvíz “feladványon” keresztül mutatom be.
Egy kvíz “feladványhoz” a következő részleteket tárolom:
- kérdés egyedi, rendszer-azonosítója (1)
- kérdés címe (2)
- maga a megoldandó feladvány szövege, vagy egy kép (3)
- hány pont jár érte (4)
- mi a nehézségi szintje (5)
- milyen témákhoz tartozhat (tag) (6)
- mi a helyes megoldás hozzá (7)
- a különböző nyelvek jelölése (8)
Ezek nem elsőre, nem egyszerre kerültek meghatározásra, hanem a működés alapján, amit a következő fejezetben fejtek ki.
Mi a működési mechanizmus?
A játék menete az, hogy valahogyan a telefonra kerül a feladványok halmaza. Előre telepített, vagy az első induláskor, az internetről tölti le magának a játék. Ezeket azonosítani lehet (1).
A játékos beállíthatja magának, hogy milyen témában (6), milyen nehézségi szinten (5) játszik.
A program ezután elkezdi feldobálni a kérdéseket (2, 3) egy megjelenítő felületen. A válaszokat egyből kiértékeli a pontszám (4) és a megoldókulcs (7) alapján. Ebből összeáll a játszmán elért pontszám, és a játékos szintet léphet. Vagy kap egy jelvényt. Vagy amit csak beleterveztünk.
Azért, hogy ne legyen unalmas a játék, a már korábban játszott kérdéseket nem, vagy csak nagyon ritkán sorsolja be újra. Erről a kvíz azonosítójának (1) a megjegyzésével lehet gondoskodni.
Hogyan tovább az MVP után?
Az egyszerű működés később sokféle irányba elvihető. Nem gond az, ha picit túl van tervezve a játék. (Én legalábbis szeretek túltervezni.) Az a jó, ha ugyan azt az adatot 2-3-4-féleképpen fel tudom használni. Ez a “származtatott adatok” fogalma. Lehetőleg olyan dolgot tartsunk nyilván, amiből több minden eldönthető, és nem kell más adattal együtt módosítanunk. Ez eléggé ködös megfogalmazás, mutatok egy példát rá.
Ha tároljuk egy adatbázisban egy kvíz listáját, és van egy mező, hogy volt-e már játszva, akkor jobb, ha oda nem azt jegyezzük meg róla, hogy igen/nem. Helyette szerencsésebb, ha egy dátumot írunk, hogy mikor játszotta, egyébként pedig üres. 1 adattal máris több infót kaptunk:
- volt-e játszva?
- mikor volt játszva?
- milyen sorrendben játszotta őket?
- ha csinálunk egy versenyt belőle, és más játékoséval vetjük össze, akkor egy sorrend is felállítható, és így tovább.
Álljon itt egy jótanács:
Minél előbb kerekítsük le az elképzelést, és álljunk ellen a további funkciók hozzáadásának. Ez csak tovább fogja bonyolítani a megoldást, és elhúzza az első bemutatható változat időpontját.
A dokumentáció a segítségünkre legyen
Az ügyféltől jövő követelményeket a specifikáció dokumentuma írja le. Ebben főként a: “MIT? szeretnének elkészíteni” kérdésre kapunk választ. Ezt feldolgozva, megrágva egy szervező (architekt) által, kialakulnak elképzelések a: “HOGYAN? -ra” egy design dokumentum formájában.
Lényeges, hogy a szükséges alap infókat tartalmazza. Ne egy kisregényt írjunk, de adjon elegendő támpontot a később érkezőknek, akik csatlakoznak a fejlesztéshez. Érthető és lényegre törő legyen. Ha túl hosszú, és senki soha sem olvassa el, akkor haszontalan volt koptatni a billentyűzetet. (A témában a DigitalHungary.hu hasábjain írtam már.)
Remélem hasznosnak találtad a módszereimet, amiben leírtam egy app alapjai kialakításánál mire figyelek oda. Ha tetszett, tarts velem a következő részre. Akkor a felületek tervezésével, megoldásaival jelentkezem.
Borítókép: Icons8 Team / Unsplash.com
Borbély Viktor vagyok, több éves Projekt menedzsment tapasztalattal. Szabadúszóként Flutter és a Spring Boot vagy Firebase Backend alkalmazások tervezését és megvalósítását végzem.
Dolgoztam több vállalatnál, az autóiparon (Continental, Valeo), a távközlésen (Ericsson) át a mobil fejlesztésig (Combit zRt. – Grepton Csoport).
Amikor együtt gondolkozásra van szükség, mindig van egy ötletem, amivel előremozdítom a megoldást. Szívesen mentorálom a körülöttem lévőket.