Gondolatok a programozásról

 

 

Lehet, hogy sokan azt gondolják: szegény fejlesztőről lehúzzák a rókabőröket, odadobnak neki valami aprót, mint a koldusnak az aluljáróban, és a cápák felmarkolják a milliókat, pedig mindenki jobban járna, ha a kliens közvetlenül a programozó ajtaján kopogtatna” – nos, ez lehet, hogy jól hangzik, de szerintem a dolgok sajnos / szerencsére nem így működnek.

 

Programozás - művészet vagy sem?

 

Volt egyszer hol nem volt, volt egyszer elképzelésem a programírásról, mely időközben sokat változott. Csak a programozás iránt érzett „szerelmem“ nem változott, és az a meggyőződésem, hogy a programírás egyfajta művészet – olyan, mintha verset írnál.

Egy gondolatot idéznék:

“A legjobb gondolataim postosvesszőben végződnek.”

 

Sokan divatból végeznek el egy szakirányú főiskolát, egyetemet: “trendi” lett programozni, meg jól is fizetik. Ezért, az utóbbi időben egyre több a botcsinálta programozó, aki igazából nem szereti, amit csinál, és csak azért nem lett például vegyészmérnök, mert informatikusként kétszer annyit kereshet...

 

Véleményem szerint elhivatottság nélkül nem lenne szabad alkalmazásokat fejleszteni. Az, aki még soha nem írt egy programot csak úgy, “l’art pour l’art”, nem érzi át a dolog lényegét, igazából nem is neki való ez a hivatás.

 

Az IT mint iparág

 

A programírás nem csak abból áll, hogy nekiugrunk a billentyűzetnek, és hajrá! Számos egyéb tevékenységet von magával, melyek nélkül maximum egy házi feladat “project”-hez lehet hozzáfogni.

 

Az az igazság, hogy a szerencsétlen programozónak sem ideje, sem megfelelő ismeretei nincsenek ahhoz, hogy mindent megszervezzen.

 

Gondoljunk csak bele, nem mindegy, hogy Pista bácsinak írunk egy programot, mely figyeli, hogy kedves felesége mikor és hányszor lép be a "Kéjes vágyak" IRC-csatornára, vagy egy forgalmas kereszteződés forgalmi lámpáit irányító szoftvert kell megalkossunk!

 

A fejlesztés összetett tevékenységekből áll, melynek csak egy nagyon kis hányada maga a programírás:

- ügyfelek felkeresése, piackutatás, reklám

- üzlet megkötése, előleg megállapítása, garanciák vállalása, határidők egyeztetése

- követelmény elemzése – mi az, ami ténylegesen kell az ügyfélnek

- folyamatos kapcsolattartás az ügyfelekkel

- tervezés – a program átfogó tervének elkészítése, folyamatábrák, use-case-ek, osztály diagrammok

- működésbeli specifikációk meghatározása – avagy mit is tud a program

- dokumentációk készítése

- tesztforgatókönyv összeállítása, karbantartása, frissítése - a lehető legtöbb hibaeset lefedése (egészen szélsőséges esetek kezelése - pl. mi történik, ha a felhasználó írás közben kiszedi a floppy-t, vagy átvitel közben lehúzza a hálózati kábelt?)

- tesztprogramok írása

- átfogó tesztelés a fejlesztés különböző szakaszaiban (ún. V-Trace)

- minőségügyi, kódolási előírások betartatása / figyelése

- verziókövetés, (bináris) build-ek generálása

- felhasználói panaszok figyelése, kezelése, dokumentálása

- elérhetőség biztosítása (telefon, internet)

- marketing, termék reklámozása

- a dolgozók folyamatos képzése

- jó munkakörülmények, kellemes környezet biztosítása, (klímaberendezés, növények, üdítő, ásványvíz, különböző juttatások a dolgozók részére)

- hardver / szoftver-állomány karbantartása, frissítése, javít(tat)ása

- stb.

 

A felsorolt tevékenységek többségéhez nem elegendő a programozó tudása, a sok adminisztratív illetve jogi, üzleti jellegű tevékenységhez sem ideje, sem képesítése. A részfeladatok többségéhez általában méregdrága szoftvereket használnak (Rational Rose a tervezéshez, Rational ClearCase a verziókövetéshez, stb.), a fejlesztőeszközökhöz, operációs rendszerekhez, egyéb szoftverekhez licenc kell – akár több millió forintról beszélünk, és még hozzá sem fogtunk a munkához!

 

A programozó, ha nem áll mögötte egy komolyabb cég, nem tud megfelelni ezeknek a követelményeknek, sem tudásban, sem anyagilag.

 

Ha mindez adott, akkor sem leányálom a programozók élete, pedig a felsorolt feladatoknak csak egy kis részletét látják el. Általában közvetlenül a határidő előtt egy – két héttel (rossz esetben nappal!) derülnek ki az igazán durva vagy véletlenszerű hibák, esetleg a megrendelő úgy gondolja, hogy nem is erre a szoftverre van szüksége. Ebben az esetben, ha ügyesen kötöttük a szerződést, már nem tud kibújni a alóla. Ellenben ha csak szóbeli megegyezés történt, és még előleg sem volt, akkor feleslegesen dolgoztunk hetekig, hónapokig (saját tapasztalat L).

 

Elmúltak már azok az idők, mikor valaki magányos farkasként programozgat, és kizárólag abból meg is él – lehet, hogy soha nem is volt ilyen.

 

A programozás persze hobbinak is kitűnő, a lényeg, hogy azért csináljuk, mert szeretjük.

 

A Kód legyen Veletek!

 

Nyisztor Károly Levente - nyisztor.karoly@evosoft.hu