Hogyan dolgozik egy szoftver-fejlesztő cég?

Gábor Németh

2021-01-25

Hogyan készülnek a website-ok stúdiónkban? Hogyan készülnek a mobil applikációk nálunk az Arteries-nél?

Ezzel a blog-bejegyzéssel szeretném bemutatni Neked azt, hogy az Arteries-nél milyen folyamatok vezetnek el oda, hogy ügyfeleink – akár Te is – önfeledt mosollyal az arcodon szoríthasd magadhoz kívánt website-odat, vagy mobil applikációdat! 🙂

Főzz le egy kávét, míg megiszod, pont el tudod olvasni ezt a posztot. Ígérem hasznos lesz! Indulhatunk?!

Minden a bizalmas szakértő-megrendelő viszonyon alapul.

Fontosnak tartjuk, hogy megismerjük azt, aki hozzánk betér. Nem dolgozunk akármilyen témában, és akárkivel. És azt gondolom, hogy fordítva is igaz: nem mindenkinek mi vagyunk az ideális fejlesztőcég. Ennek kiderítéséhez beszélgetnünk kell!

Általában én, a cég ügyvezetőjeként be szoktam mutatni a csapatot, és korábbi releváns munkáinkat, mesélek kicsit a cégünkről, a kultúránkról, és előrevetítem, hogy hogyan zajlik nálunk az adott igényhez illeszkedő fejlesztési folyamat. Kicsit azt mondom el, amit ebben a bejegyzésben is elolvashatsz most. (Engedd meg, hogy egyes szám második személyben írjak, mintha Te ülnél előttem!)

Miután nagyvonalakban megismertük azt, amiért felkerestél minket (gyors projekt briefing), szeretjük megkérdezni az a céljaidat a fejlesztendő termék/szolgáltatás kapcsán. A félelmeidet, aggályaidat, fenntartásaidat is meg akarjuk ismerni! Fontos nekünk, hogy korábban milyen tapasztalatot szereztél szoftverfejlesztőkkel, mert szeretnénk ebből tanulni is, és úgy dolgozni, hogy ezúttal minden negatív tapasztalatot megcáfoljunk, eloszlassunk!

Úgy tapasztalom, hogy az őszinteség ezen a ponton nagyon fontos mindkét oldalról, ezt mi nyitottsággal, érdeklődéssel és természetességgel próbáljuk elősegíteni. Nyíltan beszélünk sikereinkről, de esetleges kudarcainkról, korábbi tapasztalatainkról is. Ha ezt Te is megosztod velünk, sokkal közelebb leszünk a jó megoldáshoz, és a kölcsönösen kellemes együttműködéshez.

Fontos, hogy körültekintően megtervezzük a projektet, és előre gondolkodjunk

Kölcsönös szimpátia esetén sem szabad azonnal belevágni a fejlesztési munkába! Első lépésként fontos, hogy körüljárjuk a projekt apróbb részleteit is, mert sokszor ezek jelentik a munka nagyrészét. Ha jól átgondoljuk, és megtervezzük, akkor a munkánk hatékonysága is kiváló lehet.

Sokat segít, ha előkészített briefing-gel érkezel (ehhez készítettünk neked egy briefing segédletet). Ez alapján adunk egy becslést a megoldás megtervezésére, és erre külön szerződünk.

A tervezési folyamat sok-sok kommunikációt igényel: elérhető kell legyél! A legtapasztaltabb szakértőinket vonjuk be, a munkát egy senior szakterületi vezető, vagy egy projekt manager koordinálja – attól függ milyen komplexitású, és hány szakterületet érintő feladatról van szó.

A tervezési szakaszban jellemzően UX tervet, UI tervet, részletes rendszerspecifikációt, üzemeltetési specifikációt készítünk.

Specifikációink formátuma követi az iparági szabványt: SRS – Software requirements specification IEEE 830. A dokumentumban az egyes elemeket számozzuk: felhasználói esetek, üzleti követelmények stb. – így lehetővé téve a követhetőséget. Maga a dokumentáció formátuma változó: lehet docx, rst, html vagy valamilyen markdown jellegű szabvány. Az utóbbi időben már online dokumentációkat vezetünk, ennek sok előnye van.

Gondoskodni kell a csapat hatékonyságáról, az idő optimális kihasználásáról!

Ez projekt management feladat. A legkisebb megbízásnál is kulcsfontosságú, hogy milyen a kommunikáció a csapattagok között, és Veled – az ügyféllel. Minél komplexebb egy projekt, annál fontosabb szerepe van a projekt menedzserének, aki átlátja a teendőket, összefogja a szakterületek különböző munkatársait, rendszerezi és priorizálja a teendőket, és utánajár a felmerülő kérdéseknek. Proaktívan elhárítja a megvalósítás elől az akadályokat, és odafigyel a projekten dolgozókra – hogy azok lelkesen, motiváltan dolgozzanak a projekt legvégéig. A jó manager időt és pénzt spórol a megrendelőnek! Nem „overhead” az Ő munkája.

Managereink hagyományos „waterfall” jellegű projekt ügymenetben, de agilis (nálunk Scrum) projekt módszertanokban is rutinosak. Minden projekt esetében javaslatot teszünk a megfelelő módszertan alkalmazására tervezési szakaszban.

A hatékony kommunikációhoz, feladatok rendszerezéséhez, és a sikeres projekt management munkához számos tool-t használunk (szoftveres eszközöket, mint dokumentum management felületeket, valós idejű üzenetküldőt, feladatkezelőt, verziókezelőt, teszt-management és tesztelési eszközöket, szimulációs és teszt környezeteket, vagy time-tracking eszközt… stb.). Ebből több használatába Téged is bevonunk, hiszen fontos, hogy Partnereink számára teljesen transzparens legyen a projekt, és annak pontos státusza, befektetett effortok mértéke.

Precíz, kontrollált fejlesztési folyamat – a második projekt-szakasz

A tervezési projekt-szakasz végén pontosított árajánlatot kapsz, és ez alapján megrendelheted a kivitelezési munkát.

Megjegyzés: amennyiben agilisan dolgozunk (tehát a végcél nem pontosan definiálható), ebben az esetben is a belátható célokhoz idő és költségbecslést csatolunk.

Fejlesztőink az általunk legjobbnak vélt fejlesztőeszközökkel, és szoftverekkel végzik munkájukat.

Ami a fejlesztési és éles üzemeltetési infrastruktúrát (értsd: szervereket, futtatórendszereket) illeti: minden esetben egy leválasztott „fejlesztési környezetben” dolgozunk, az itt elkészült produktumok egy ún. „tesztelési környezetbe” kerülnek át, majd innen egy „staging”, és innen ún. „production” (éles) környezetbe, ahol már a végfelhasználók is elkezdhetik a használatát. Ennek a folyamatnak a részleteit a szükséges mértékig megbeszéljük, ismertetjük. De bátran ránk bízhatod ezt, rengetegszer megcsináltuk már, hidd el, hogy jó kezekben van. Ezen környezeteket az Arteries teljeskörűen biztosítani tudja minden ügyfelének. Házon belül ezen környezetekért a DevOps csapatunk felel.

Fejlesztőink az évek során kicsiszolt verziókövetési szabályokat követve gondoskodnak arról, hogy az elkészült megoldás, és annak módosításai megfelelően kezelve legyenek, mindig tudjuk, hogy mire mit építettünk, ha valamiért bizonyos funkciók esetében vissza kellene térni annak korábbi verziójára, az is megoldható.

Fontos, hogy naponta többször menjük az adatokat külső helyszínen üzemeltetett adattárházba, ezzel védjük a terméket, és a folyamat során befektetett értékes munkánkat.

Automatizmusokat (robotokat) is használunk a programozók által készített kódok ellenőrzésére, minőségi követelményeink betartatására. A QA (Quality Assurance – tesztelői) csapatunk a fejlesztőkkel párhuzamosan készítik az egyes felhasználási esetekre a teszteket, amik lehetnek manuális tesztesetek, de egyre gyakoribb, hogy automata/robotizált teszteket is programozunk, hogy az ismétlődő minőségellenőrzési feladatokat gyorsítsuk, és az emberi hibákat kiszűrjük a folyamatból. Ezeket a teszteket ún. teszt-management rendszerben tartjuk nyilván, és az élesítési folyamatainkba ezeket a robotokat bekötjük: amikor elkészül egy új szoftver verzió, akár több száz automata ellenőrzésen megy át, mielőtt élesíthetőnek címkézzük.

Átadási esemény után terméktámogatást is vállalunk, így a folyamatos support feladatok sem Téged terhelnek!

Egy ponton azt tudjuk mondani, hogy elkészültünk. Ez történhet egy előre definiált funkcionalitás elérésekor, de akkor is, amikor egy agilis projektben egy adott részfunkcionalitást szeretnénk a felhasználóinknak elérhetővé, kipróbálhatóvá tenni (verzió release), és szeretnénk látni/lemérni a piac reakcióját a megoldásra.

Megjegyzés: a fejlesztési folyamat során sokszor mérőkódokat, analitikákat kötünk be a programba, hogy tesztelhetővé tegyük a megoldás kapcsán feltett hipotéziseket. Ez a Lean szemlélet nagyon hatékony termékfejlesztést tesz lehetővé.

Amikor elkészültünk valamivel, akkor először Neked mutatjuk meg. Ezeket az eseményeket általában DEMO-nak hívjuk. Amennyiben minden stimmel, és úgy döntünk, hogy ezt a felhasználóknak is látni kell, elindítjuk az élesítési folyamatokat, és adminisztratív módon is zárjuk ezt a projekt-szakaszt.

A munkának a legritkábban van vége ezzel. Leginkább csak átalakul az együttműködés, és ettől a ponttól ún. „terméktámogatási” szakaszba lépünk át: a felmerülő igényeidet újabb tervezési és fejlesztési szakaszokban valósítjuk meg, mindeközben pedig figyelünk arra, hogy a már piacon élesben használt megoldás működőképes maradjon (szervergazdai feladatok, verziókövetési, platformkövetési fejlesztési feladatok, felhasználók által jelzett hibák javítása, garanciális feladataink ellátása…stb.)

Igény esetén támogatjuk marketing kampányaidat, sokszor grafikus csapatunk segít is ezekben: új kreatívokat, képeket, animációkat, videókat készítünk a különböző felhasználási esetekre. Akár nyomdai termékek tervezését és nyomdai előkészítését is vállaljuk ezen csapatunkkal.

Sok-sok ügyfelünket a fenti folyamatok mentén már évek óta támogatunk. Igyekszünk rugalmasan reagálni az igényekre, és kreatív megoldásokkal szolgálni azokra. Őszintén elmondjuk, ha valamiben nem tudunk segíteni, mert nem a mi szakterületünkhöz tartozik, de ami a mi kompetenciánk, abban teljes mellszélességgel ott vagyunk Melletted, és támogatunk Téged.

Ha szeretnél egy ilyen fejlesztési folyamatot indítani az Arteries-szel, keress minket bizalommal!

Szeretnél még hasonló tartalmat olvasni a jövőben?

Ha tetszett cikkünk, iratkozz fel hírlevelünkre!