Rólunk
Az informatikában a programfejlesztés egy kristály növekedéséhez, vagy egy fa fejlődéséhez hasonló. Ez a tevékenység jelenik meg ennek a webportálnak nevében, mint fő motiváció. Informatikai kristályokat szeretnénk alkotni, minden kikristályosodott tudásunkat beleformálni egy-egy fejlesztésbe.
Milyen lehetőségeim vannak ezen az oldalon, mint regisztrált felhasználó?
Lehetőséged van informatikával kapcsolatosan a megfelelő tartalom típus kiválasztása után:
- Blogbejegyzés beküldésére
- A blogok rendszeresen frissített naplók az egyes beküldött bejegyzések fordított időrendi sorrendjében megjelenítve. A webhely minden felhasználója saját bloggal rendelkezhet.
- Fórum téma beküldése
- Új fórum téma létrehozása a fórumban.
- Hír beküldésére
- A hírek egyszerű tartalmak: van címük, bevezetésük és törzsük, de más modulokkal is kiegészíthetők. A bevezető szintén a szövegtörzs része. Jól alkalmazható rendezvények meghírdetésére, vagy az ott készült interjúk, történtek közzétételére.
- Könyvlap beküldésére
- A könyvek létrehozása közösségi folyamat: a felhasználók együtt írhatják a könyveket, rendszerezhetik azokat, áttekinthetik, illetve módosíthatják a már előzőleg elkészítetteket. Megosztani való tudás birtokában lévő felhasználók bővíthetnek egy-egy könyvet, illetve javíthatnak a meglévő könyvlapokon is.
- Lap beküldésére
- Ha statikus lapot szeretnél hozzáadni, mint mondjuk egy kapcsolatok lap vagy egy általános leírás, készíts egy lapot.
Milyen írásokat fogadunk be?
Erre a kérdésre a választ a következő néhány kérdésre adott válasszal tudom leírni. Kérlek olvass tovább!
Hogy végezzük a fejlesztői munkát?
Egy projekt kezdetén először az átfogó üzleti feladatot elemezzük, diagramokat rajzolunk, végig gondoljuk a lehetőségeket, megrajzoljuk a működési mechanizmust, és így jutunk el egy általános megoldásig, a feladat magasabb absztrakciójáig. Ezt a munkát végzik a rendszerszervezők a megrendelővel közösen. A következő lépésben a kiszemelt technológiára koncentrálunk. Próba programokat, úgynevezett pilot programokat készítünk, majd ezek eredményeit gyúrjuk egybe. Megrendelőnkkel a folyamatos egyeztetés megalapozza munkánk eredményességét. Az üzleti logika és a technológia megismerése és sikeres alkalmazása együtt jelenti számunkra a motivációt.
Mitől lesz egy projekt sikeres vagy sikertelen? Hogyan dönthet egy projektvezető a folytatásról vagy felfüggesztésről?
A sikeres projekt abból táplálkozik, hogy a megrendelő látja és tapasztalja a program fejlődését. Egyértelmű, hogy ami sikeresen elindult, azt támogatja a vezetés, támogatja a megrendelő. Mi szükséges a sikeres induláshoz? Ha véghez akar vinni egy cég egy fejlesztést, minden eszközhöz a legmegfelelőbb szakembert, a szakemberekhez a legtöbb tudást gyűjti össze. Ez az információ felhalmozás jelenti a projekt megalapozását. A cég vagy úgy kezd neki a feladat megoldásnak, hogy úgymond drága fejlesztőket vesz fel induláskor, és kidolgoztat velük egy koncepciót, vagy a felvett fejlesztőket látja el a tudás megszerzéséhez szükséges információ forrásokkal. Ilyenek az Interneten található e-dokumentumok, a könyvesboltokban található szakirodalom. Az első megoldás gyors és hatékonyabb, a második lassabb indulást eredményez, ám kevesebb indulótőkét is igényel. A második sikeréhez szükséges legalább egy jó szervező is, aki az információkat a fejlesztők asztalára teszi, és koordinálja a tudás felhalmozást.
Mivel növelhető a sikeres projekt életciklusa?
Minden informatikai projektnek van életciklusa. A szoftver életciklusát a vásárlók száma, a befektetők elhatározottsága és bizalma határozza meg piaci szempontból. A tervezés és kivitelezés közben a piackutatás, az értékesítési helyek keresése lényeges feladata a szervező csapatnak. Telefonon vagy személyesen keresik fel a potenciális vevőket. Céljuk a kompetens személyektől, döntéshozóktól megtudni az igényeiket, az éppen használt rendszerekről kialakult véleményüket, a használat közben összegyűjtött tapasztalatokat, végeredményül az elégedettség fokát. Érintve a készülő vagy már elkészült szoftver előnyeit egy bemutatóra invitálják a megtalált személyt. Mind-e közben a kész termékről tájékoztató dokumentációk készülnek, csökkentett tudású, úgynevezett demó programok, amiket a bemutatóra érkezők magukkal vihetnek.
A fejlesztők szemszögéből a szoftver stabilitásának, életciklusának növelése a funkciók bővítése mellett az egyéb rendszerekkel létesített kapcsolatok számának növelését is jelenti. Az egyéb rendszerek közül a hardver eszközök a stabilabb, a szoftver eszközök az instabilabb kapcsolatok. A szoftverkapcsolatok instabilitását jól illusztrálja a Microsoft termékek életciklusának követése, a frissítésekkor megjelenő váratlan problémák, a következő verzióval időnként megjelenő inkompatibilitások. A kommunikációs szabványok módosulását a befektetők fizetőképességüknek megfelelő ütemben követik, ezért a fejlesztett szoftveren is szükséges átvezetni a módosításokat. Célszerűen különböző modulokba helyezik ki ezeket az összetevőket a fejlesztők, hiszen a megbízóknak eltérő ütemben kell biztosítani az együttműködést. A szoftver életciklusa a kapcsolódó rendszerek nyitottságától, az abban követett tervezési eljárásoktól, a hibák feltárhatóságától is függ. Eddigi tapasztalataink alapján olcsóbb nyílt forrású szoftverekkel dolgozni, mert az ilyen módon készülő nagyobb projektek kidolgozott szabványokat követnek, a kód nagy fejlesztőközösségek által átlátható, és így a több szem többet lát alapelvnek köszönhetően könnyebb megtalálni, körüljárni, megoldani a hibákat. Ez a fejlesztési módszer felvállalja, hogy nem tud egyedül megoldani minden feladatot, az elhárító szinergia csoportok létjogosultságát megszünteti, a költségeket csökkenti, és nagy távolságokban dolgozó embereket köt össze az interneten keresztül.
Hogyan hangolhatók össze a helyi és távoli munkaerők?
A rendszeres meeting lehetősége, az "asztalhoz ülünk és beszélünk a feladatról és az elért eredményekről" jellegű találkozók a távol élő, esetleg otthonról dolgozó munkatársakkal igen korlátozott. Ezért az internet adta lehetőségekre támaszkodik az a cég, amelyik távmunkásokat alkalmaz. Konferencia beszélgetésekre kommersz termékként a Skype és az MSN Messenger ingyenesen alkalmazható eszközök. Vannak azonban olyan hardver megoldások is, amikkel minőségi audiovizuális konferencia beszélgetések, távoli bemutatók is megoldhatók.
A szoftver karbantartására több verziókezelő rendszer közül választhatnak a fejlesztők. Ezek a szoftverek a készülő program különböző változatait, módosulásait követik. Csoportmunkában gyakran előfordul, hogy azonos forráskódon több fejlesztő is dolgozik, és a módosulásokat össze kell vezetni, a sorokat össze kell fésülni. Ez a művelet hasonlít a könyvíráshoz. Ha egy könyvet többen írnak, a fejezeteket egymás után kell betenni a könyvbe, hogy összeálljon a történet. Esetenként a könyv egyes fejezeteibe más fejezet szerzői is találnak hibát, amit kijavítanak. Mikor összekötik a könyvet, a fejezet szerzőjének tudnia kell a javításról, és a javított oldalt kell beilleszteni a helyére. Ezt az adminisztrációt végzi a háttérben a verziókövető rendszer egy szoftver fejlesztésekor. Ilyen a nyílt forráskódú, ingyenesen használható SVN és az IBM által fejlesztett zárt forráskódú ClearCase. Ez utóbbi előnye a fájlrendszerbe integrálható nézet, ami különböző módon konfigurálható.
A verziókövetés mellett az életciklus követésére és adminisztrálására is szükségük van a fejlesztőknek (bugtracker). Hibajavítások, fejlesztési feladatok követésére internetes rendszereket használnak, mint például az ingyenes Ruby alapú, magyar fordítással is használható Redmine.
Milyen emberek a programfejlesztők?
Sok könyvet írnának tele, ha a kódolás könyvírásról szólna. De mivel sokszor a feladatuk több részből tevődik össze, a Kaland-Játék-Kockázat könyvekhez hasonló könyv születne. Tudnia kell a programozóknak egy szöveges térképet alkotni, hogy el tudjanak igazodni a sok függvény, osztály és más egyéb szöveg között. Az előzőleg papírra vetett programterv, vagy modernebb változataik az UML diagramok sokat segítik a program egészétnek összeállításában. A program kódolása során előnyös, ha a szerkesztőprogram tud néhány trükköt. Például könyvjelzőket elhelyezni a kívánt helyen. Ha könyvjelzőket billentyűkombinációval könnyen el tudja érni a fejlesztő, támpontokat adhat meg ezekkel a térkép kialakításához. Jó, ha úgynevezett makro funkciókat is végre tud hajtani a szerkesztőprogram. Segítségével a billentyűzetről érkezett karakterműveletek rögzíthetők, majd akármikor újra futtathatók, mintha éppen akkor gépelnék be ezeket. Az Ecipse-ben Java programszerkesztővel működő névváltoztató is nagyon hatékony segítség. A szövegben érzékeli az összes, ugyan arra a változtatáshoz kötődő nevet - többnyire változó, paraméter, metódus vagy osztálynév -, és kérdés nélkül mindet megváltoztatja, akármelyik fájlban is van a projectben. Ebből eredményeként kevesebb helyen kell kézzel szerkeszteni a szöveget, csökken az elgépelésből adódó hibalehetőség. Másik lehetőség - a könyvjelzőket kiegészítve-, hogy a névre egérrel ball gombjával és a Ctrl segédgombbal kattintva a definícióra ugrik a szerkesztő. Így könnyebben navigálhat a programozó a szövegben. Például Delphi-ben - ahol definíció és deklaráció külön szerepel - , a kurzormozgató nyilak is segítenek a navigálásban. A Ctrl segédgombbal a deklaráció és a definíció között ugrálhat a szerkesztő, így a funkció paramétereit könnyen módosíthatja.
Tehát térképész, olvasó és egyben író is a programfejlesztő. Olvasási képességét a másik programozó által írt programrész megértésekor használja, amivel a térképészeti tudását bővíti. Térképészként ismernie kell a funkciók helyét (melyik fájlban van és azon belül hol helyezkedik el), paraméterezését, működését. A funkció paraméterezését megjelenítheti a szerkesztő program, ami egy újabb segítség a program átláthatóságában. Elég összetett figyelmet igényel a programozás.
A rendszerszervezőkkel a kész kódból visszaalakított UML diagramokkal újra egyeztethetők a célok és az elért eredmények vagy részeredmények. Legjobb esetben UML diagramból felépíthető a program váza, és a módosítások is átvezethetők a forráskódba és az UML-be oda-vissza.
Alapvetően ezek szükségesek a programozók munkájához. Ezen túl kreatív játékokkal segítheti a vezetés a fáradt munkaerő regenerálódását. Ehhez ajánlom képgalériánk témának megfelelő részét.
Mi jellemző még a programozókra?
Első sorban emberek. És mint emberek hibákat követnek el munkájuk során. A hibalehetőségek csökkentése minden fejlesztőnek feladata kellene legyen. A drága, úgymond architect vagy senior fejlesztők folyamatosan felülvizsgálják a munkájukat, optimalizálja a kódot és beépítik új tapasztalataikat a felülvizsgált kódba. Az olcsó fejlesztők a feladat gyors és kevésbé esztétikus megoldására, a program működőképességére törekednek. Feladattól függően mindkettőnek megvan a maga előnye. A hibák aránya teszteléssel csökkenthető. Többnyire hibaágak lekezeletlensége, változók alapértékének meghatározása, előtesztelés hiánya okozza a felhasználóig eljutó hibákat. Nagyobb cégek kifejezetten erre a célra tesztelőket alkalmaznak, teszteseteket állítanak össze. Ami automatizálható, azt a tesztelésben automatizálják. Amit nem lehet, azt kézzel tesztelik. Minden fejlesztőnek van saját elképzelése személyes karrierjéről. Ezeket tiszteletben tartva, az attitűdöket figyelembe véve segíthető az egyén kibontakozása. Ez a lojalitás alapköve.
Miből derül ki egy projekt sikertelensége?
Nem egyszerű a válasz. Első tünet, hogy a megrendelőt nem győzte meg a kialakított rendszer, úgymond a fa törzse. Gyors sikerre számító befektetők esetleg már magát a fás ligetet szeretnék látni. Miből ered a sikertelenség? Egyik oka lehet, ha megalapozott a tudás, és mégis hibás az elgondolás. Ez a tervező munka alaposságát vonja kétségbe. Esetleg piacképtelen az ötlet. Ez a szervező munka elégtelenségéből adódik, a munkát nem előzte meg egy piackutatás. A megalapozatlan tudással induló projektek többsége pedig belebukik a vállalkozásba.
Mit tehetünk egy sikertelen projekttel?
Ha a fejlesztőknek dokumentálni kell a fejlesztés során összegyűjtött tudást, könnyebb az így megszerzett tapasztalatokat értékesíteni egy másik fejlesztő csapat számára. Ezt az alapelvet minden esetben célszerű követni. Az ISO minősítések megkövetelik a napi munka dokumentálását, hogy követhető legyen a cég és az egyén munkája. Ez a megbízók számára is egyfajta biztonságot jelent.
Milyen céljai vannak a weboldalnak?
Határozott segítséget kívánunk nyújtani programozási információkkal, informatikai hírekkel, minden lehetőségét kihasználva ennek a nagyszerű portál rendszernek. A Drupal egy kiforrott megoldás, ami segíti az informatikus közösségek kialakulását. Ezt a hullámot szeretnénk meglovagolni, és kitűnni színvonalas hírekkel, programozási tanácsokkal. Ez egyben minden szerkesztőnk felé betartandó követelmény. Lehetőségünk van magyar mellett angol nyelvű híreket készíteni, és a meglevő híreket lefordítani angolra vagy magyarra. Ez a többnyelvűség bővíthető további szakértelem bevonásával.