A hibáknak két forrása van: a tudás hiánya és a figyelem hiánya.
A tudás hiánya a kissebb gond, mert pótolható, ha már felismertük. Egy programozási eszköz (nyelv, komponens, ide) megtanulható. A specifikációban és designban lévő hiányosság pótolható. A programozói készség fejleszthető.
A figyelem (én szerintem a fegyelem is jó szó erre) hiánya már nehezebb. Ez atitűd, hozzáállás kérdése.
Jó lenne, ha ez utóbbi dologgal nem kellene foglalkozni, hiszen a hozzááláson változtatni egy felnőtt embenél nehéz dolog. Itt jön be a másik kifejezés, a fegyelem. Fegyelmezett fejlesztő esetén nincs gond az figyelemmel. A lelkes fejlesztőnél sincs, hiszen nagyon akar. De aki nem lelkes és fegyelmezett, annál kell. Ide sorolhatók a kiégett fejlesztők, akiket már nem motivál semmi de nem elég profik ahhoz, hogy akaraterőből legyürjék és a kelégítő vagy alacsonyab szintű munka helyett kiválló munkát tudjanak végezni. Ide tartozik még az nem megbecsült tehetség. Az aki azt gondolja, hogy fenomenális nagyságú tudással, tapasztalattal rendelkezik. Ez tuóbbi rosszabb. Az első legalább tudjamagáról, hogy nem hozza azt amire képes lenne. Az utóbbi viszont nemtduja, hogy nem képes hozni a szinvonalat képzés és alázat nélkül.
- Ha a régi fejemmel gondolkodnék, akkor azt mondanám, hogy állítsuk rá az üzleti elemzőinket, mérjék fel az igényeket, majd specifikálják a feladatot, melyet a fejlesztőcsapatunk majd kivitelez. Ez jól is hangzana, a probléma csak az, hogy a legtöbb esetben a belsős üzleti elemző záros határidőn belül nem képes kellő mélységben átlátni a problémakört. A legtöbb informatikai projekt már az üzleti elemzés fázisánál zátonyra fut úgy, hogy sem a megrendelő, sem a kivitelező nem ismeri fel a fejlesztés valódi rákfenéjét. Gyúrják, pofozzák a szerencsétlen programot, míg végül lesz belőle egy agyonfoltozott sánta óriás, melyre sem bevezetni, sem karbantartani nincs elég erőforrás.
- Jelenlegi szemléletem alapján, az első dolgom az lenne, hogy megkeressem a túloldalon ülő vérbeli szakértőt. Azt a személyt, aki már több éve belülről ismeri az összes ága-bogát a banki ügyvitelnek, aki vezetett már banki irattárat, és saját maga is sok iratot írt alá. Ha nem találok ilyet, akkor tovább keresek: ez az első és legfontosabb erőforrás, melyre mindenképpen szükségem lesz, ha sikerre akarom vinni a projektet. Ha megtaláltam a kívánt személyt, leszerződök vele: be kell hoznom a projektbe ahhoz, hogy száz százalékban nekem dolgozzon, hogy belülről képviselje az ügyfelet. Ő lenne a projekt szakmai gazdája, az első számú üzleti elemző.
Original
A második lépés ennél jóval könnyebb, de egyáltalán nem triviális: a frissen hozott erőforrás bár nagyon ért az adott területhez, informatikailag egyáltalán, vagy csak alig képzett személy. Szükség van mellé egy olyan üzleti elemzőre, aki a fejlesztői csapat élén állva megformálja a program lelkét képező domaint. Ha ezt a két személyt megtaláltam, akkor a kezemben van a projekt szakmai sikerességének garanciája
...
Ideális esetben külön lehet szerződni a követelményspecifikáció elkészítésére, és az abban megfogalmazott követelmények alapján lehet becsülni a fejlesztés, tesztelés, bevezetés stb. költségét. (Rosszabb esetben úgy adsz ajánlatot, hogy nem vagy tisztában a rendszer szkópjával, és csak annyit tudsz, amennyi a pályázati kiírásban szerepelt.)
…
Minden fejlesztőtársamnak azt javaslom, hogy próbáljanak meggyőzni az ügyfél oldaláról egy segítőkész embert, aki rendelkezésre tud állni, hogy segítsen a fejlesztés során. Hihetetlen dolgokat lehet így véghez vinni!
…
Fontos kockázatcsökkentő tényező, ha egy olyan ember legyen képes az ügyfélnél jelen lenni, aki proaktívan, dialógust kezdeményezve próbál olyan előzetes megoldásokat felvázolni, amik csökkenthetik a későbbi ráfordításokat. Valószínűleg nem csak nekem "áll fel a szőr a hátamon", amikor nem egy kövspecben ezt olvasom: "a rendszer naplózzon minden módosítást és módosítási kísérletet". Ha valaki olyan megy oda, akinek fogalma sincs a megvalósítás hátteréről, simán "benyel" egy ehhez hasonló követelményt. Amikor egy ilyen elhangzik, további kérdéseket lehet feltenni az ügyfélnek, hogy valójában mi a célja ezzel, mik a legfontosabb adatkörök, hogyan fogja ezeket felhasználni stb. Így egy pontosabb képet lehet alkotni az elképzelésekről, és ráadásul ésszel lehet neki állni egy ilyen követelmény megvalósításához.
...
Jó cikk. Nincs mit kiemelni, az egész cikket el kell olvasni. Kicsit sokat száolós, de néha ez az ami kell.
First, a little history to how the big nasty project starts! A huge software development project is dreamed up to solve some complex problem. Great, that's what software is all about! But things start going bad right on day one! How?Well, the managers and executives decide that they are going to plan every detail of the software project to the most minute detail. They then assign a project manager to manage all the developers and let them start building each piece independently one-by-one. A few weeks before shipping, the project managers try and combine everything, and all is well right? Wrong... Disaster! The project is delayed! Days pass, weeks, months, years! What the *beep* just happened here! What to do?
...
How is a skyscraper built? First lay the foundation, then put in floors, with the elevator shafts, then build floor after floor, then the interior, etc. Could you imagine what would happen if every piece was built in a different site, and then later everything was dropped off at the construction site to be assembled? Even if you had the best plan to assemble everything together, you would have problems! Things wouldn't fit and would have to be re-done, architects would change their minds, pieces would be missing, and the building would look like a bunch of match sticks!
...
- Source Control
- Continuous Integration
- Bug Tracking System
- Patching System. I'm not going to get into installer issues here, but you need a patching system. You do not want to deploy installs upon installs to your testers
- Disable Untested Features, Turn off every feature in your application that has not been completely bug tested and approved by your users. If your project is in trouble, you have hundreds of features implemented at 80%, and you probably think they are at 90% - 95%, but they aren't.
- List Major Features
- List Top 20% of Major Features
- Detail Out Top 20%
- Plan The Week
- Create Branch
- Build Release for Testers
- Testers Take Flight
- Software Developers Work on Trunk
- Approve Patch
- Continue Steps 9 to 14. Continue your efforts over and over until you get the 20% done, hopefully this is not as far away as you think!
Your goal is to focus on small features, get them done, and send out a release for testers.
Your team will be extremely motivated to be releasing workable software every week!
When testers find bugs, your developers will fix them faster because the code they wrote is fresh in their minds!
takacsot at gmail dot com
RSS
balinto 2006