![]() | ||
Joel a szoftverről szoftvermenedzsment egyszerűen
| ||
Tűz és előreÍrta: Joel Spolsky (2002. január 6.)
Van, amikor semmit sem sikerül elvégeznem. Igen, bejövök az irodába, teszek-veszek, tíz másodpercenként megnézem a leveleimet, barangolok a weben, sőt, még az American Express számlák kifizetéséhez hasonló gondolkodásmentes foglalatosságokkal is megbirkózom. De a kódírás lelkiállapotába csak nem tudok visszazökkenni.
Mindenkinek vannak hangulatváltozásai; néhányunknak ezek könnyebben elviselhetők, másoknak súlyosabbak, sőt, bénítóak is lehetnek. És az tétovázós időszakok valamilyen módon egybe is csengenek a mélabúsabb időszakokkal. Egyes kutatók szerint az emberek voltaképpen nem képesek korlátok közt tartani az étkezéseket. Előbb-utóbb minden diéta mögül kihűl az elhatározás, és az ember mindig visszapenderül a természetes testsúlyához. Talán szoftverfejlesztőként én is ugyanígy nem tudok magamnak tetszés szerint ihletet parancsolni, ezért muszáj beletörődnöm a hol lassabb, hol gyorsabb haladásba. Csak remélhetem, hogy a kettő átlagában termelt kódsoraim még bebiztosítják az állásomat. ![]() Már karrierem kezdete óta az bosszant leginkább, hogy naponta általában csak két-három órán át tudok hatékonyan kódolni. A Microsoftnál töltött nyári gyakorlaton egy társam elmondta, hogy csak 12 és 5 között volt benn a munkahelyén. Öt óra – ebéddel együtt –, és a társai imádták, mert a többieknél még így is többet végzett el. Magamon is ugyanezt vettem észre. Nem mondom, a serénykedő többiek láttán van egy kis bűntudatom, de még így is a csapat leghatékonyabb tagjai közé tartozom. A Peopleware című könyv és az XP (Extrém Programozás – ford. megj.) valószínűleg ezért is kardoskodnak keményen a túlórák megszüntetése és a 40 órás munkahét mellett – mert biztosak benne, hogy ez nem csökkenti a fejlesztőcsapatok teljesítményét. De nem azok a napok aggasztanak, amikor „csak” két órát dolgozom szívvel-lélekkel. Az az igazán kemény dió, amikor semmire nem jutok. Sokat tűnődtem erről. Megpróbáltam felidézni karrierem legtermékenyebb időszakát. Ami talán a Microsoftnál egy gyönyörű, süppedős szőnyegű irodába költözésemkor volt. A hatalmas ablakokból egy virágzó meggyfákkal teli takaros, kikövezett belső kertre nyílt kilátás. Minden pont összeállt. Hónapokig megszakítás nélkül ontottam az Excel Basic részletes specifikációját – egy gigantikus objektummodellt és a programozási környezetét szédítő részletességgel ismertető kolosszális papírfolyamot. Szó szerint soha nem tartottam szünetet. Amikor Bostonba, a MacWorldre látogattam, az ablakosztály dokumentációját a HBS kellemes teraszán a magammal vitt laptopon írtam meg. Amint az áramlat magával ragad, már nem nehéz mozgásban maradni. Sok napom a következőképpen telik: (1) beérkezem (2) rápillantok a leveleimre, barangolok a weben, stb. (3) a munka elkezdése előtt még éppen csak ebédelni megyek (4) visszajövök az ebédből (5) rápillantok a leveleimre, barangolok a weben, stb. (6) végre rászánom magam a munkára (7) rápillantok a leveleimre, barangolok a weben, stb. (8) komoly döntést hozok, hogy tényleg el kell kezdenem dolgozni (9) elindítom a nyamvadt szerkesztőt (10) folyamatosan kódolok, majd ráébredek, hogy már este fél nyolc van. Valahol a 8. és a 9. lépés közt van a nehézség, mert nem mindig sikerül átlépni a gátat.
Lehet, hogy ez a termelékenység kulcsa: maga az elindulás. Talán amikor a páros programozás működik, akkor azért teszi, mert a két résztvevő egymást lovallja bele a munkakezdésbe.
Ezt jól megjegyeztem. Azt is megfigyeltem, hogy mindenféle katonai stratégia – legyen az légiharc vagy nagyléptékű tengeri hadművelet – mind a „tűz és előre”, azaz a folyamatos tűz alatt tartás gondolatán alapszik. Az elkövetkező tizenöt év alatt ráébredtem, hogy a „tűz és előre” a hétköznapi életben is nagy szerepet játszik. Minden nap előre kell lépni, ha csak egy kicsit is. Nem baj, ha a kódunkban hemzsegnek a hibák, és az egész senkinek sem kell. Ha a hibákat folyamatosan javítva egyre csak haladunk előre, akkor az idő a mi oldalunkon áll. Amikor a versenytársak tüzelnek, jól körül kell nézni! Nem csak lekötni akarnak a húzásaikkal, hogy ne tudjunk előrelépni? Vegyük például a Microsoft különféle adatkezelő technikáit. ODBC, RDO, DAO, ADO, OLEDB, most pedig ADO.NET – mind egy külön állatfajta. Vajon mindegyiket muszáj részleteiben ismerni? Vagy csak egy hozzá nem értő, az adatkezelést minden egyes évben újra és újra feltaláló csapat termékei? (Én inkább az utóbbira tippelek.) A végeredmény azonban mindig a zárótűz elvén működik. A versenytársaknak nem marad választási lehetőségük: minden idejüket a kód portolására és a lemaradások ledolgozására kell fordítaniuk, közben tehát nem dolgozhatnak új funkciókon. A szoftvervilág berendezkedése elég nyilvánvaló. A jól menő cégek függenek legkevésbé a nagyvállalatoktól, és nem kell minduntalan lemaradást behozniuk, újraimplementálniuk, sem csak és kizárólag Windows XP alatt jelentkező hibák javításával bíbelődniük. A botladozó vállalatok viszont tealevelekből próbálják kiolvasni a Microsoft jövőbeni stratégiáit. Egyeseket a .NET akkora félelemmel tölt el, hogy egész rendszerük .NET-re átírását szinte kötelezőnek érzik. A Microsoft tüzel, e zárótűz fedezete mögött előreléphetnek, mi viszont nem – ezt a játékot így játsszák, pajtikám. Legyen benne Hailstorm-támogatás? SOAP? RDF? Azért lesz-e, mert az ügyfeleidnek szüksége van rá, vagy mert valaki tűz alatt tart és ez tűnik kiútnak? A nagyvállalatok forgalmazói csapatai jól forgatják a zárótűz fegyverét. Minden ügyfelüket azzal látogatják végig: „Rendben, nem kell tőlünk vásárolnod. Persze, vedd meg a legjobb gyártó termékét! De a végleges döntésnél ügyelj az (XML / SOAP/ CDE / J2EE) támogatásra, különben gyorsan a csomagtartóba zárva fogod magad találni.” És amikor kisebb vállalatok megpróbálják az ügyfél megbízását elnyerni, akkor a megdolgozott CTO már egyre csak azt fogja hajtogatni: „Ez most J2EE?” Így az összes idejüket J2EE-beli fejlesztéssel fogják pazarolni, még ha ettől nem is nő a forgalmuk, sem a tömegből nem tudnak kitűnni vele. Ez egy kipipálandó kérdés – azért kell beletenni, hogy lehessen rá mutogatni, nem pedig azért, mert valaha bárkinek is szüksége lenne rá, ne adj' isten esetleg használná is. A zárótűz megint működött. A „tűz és előre” elvéből az enyémhez hasonló kis cégek számára két dolog következik. Az időt a magunk oldalára kell állítani, és minden nap előre is kell lépni egy kicsit. Előbb-utóbb be fog jönni. Tegnap csak annyit jutottam előrébb, hogy egy kicsit javítottam a FogBUGZ színösszeállításán. És ez nem baj. Egyre szebb és jobb lesz. A program mindennap egyre javul és javul, egyre több és több ügyfelet hoz – és csak ez számít. Amíg nem vagyunk Oracle nagyságú cég, nem kell hadműveletnyi stratégiákban gondolkodnunk. Csupán minden nap be kell érnünk az irodába és valahogy, valahogy, el kell indítani a szerkesztőprogramot. ![]() | ||