Joel on Software

Joel a szoftverről szoftvermenedzsment egyszerűen

 

Joel lapja

Gerilla magyar fordítások

Hivatalos fordítások

 

Tűz és előre

Írta: Joel Spolsky (2002. január 6.)
Fordította: Tóth József
Lektorálta: Gyuris Krisztián, Verók István (2002. november 30.)
Az eredeti cikk, Az eredeti fordítás

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.

TetrisÁltalában egy-két napig vagyok ilyen betompult. De fejlesztői karrierem során nemegyszer hetekig semmi értelmeset nem sikerült befejeznem. Úgy tűnik, ilyenkor nincsen meg a lelkiállapot. Nem jutok el a zónába. Sőt, sehova sem.

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.

Most olvassuk egy kicsit a The Onion-t

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.

kerékpártúra Csakis elkezdenem nehéz a munkát. Newton második törvénye szerint a nyugvó testek külső erőhatás nélkül nyugalomban is maradnak. Azt hiszem, az agyamban valami rendkívüli tömegű, rendkívül nehezen megmozdítható valami lakozik, de amint ez a valami már teljes sebességgel halad, további erőfeszítést szinte nem is igényel. Mint egy önellátó vidéki kerékpártúrára előkészített, felpakolt bicikli – egy ilyen megterhelt járgány elindításához elképesztő erőfeszítés kell, de ha már gurul, akkor mintha nem is lenne tömege.

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.

Joel, a katona Egyszer, amikor még izraeli ejtőernyősként szolgáltam, egy tábornok röviden előadta a követendő stratégiát. A gyalogsági csatákban, mint mondta, egyetlen stratégia létezik: tűz és előre. Az ellenség felé kell mozogni, közben folyamatosan tüzelni. A zárótűz miatt ne tudja felemelni a fejét, se ránk lőni. (A katonák „Fedezzetek!” kiáltásai is erre utalnak. Kifejtve: „Lőjétek az ellenséget, hogy ne emelje fel a fejét, és ne ő lőjön le engem, amikor átfutok az utcán!” Így is történik.) Mozgásban újabb területeket lehet ellenőrzésünk alá vonni, és az ellenfélhez is közelebb lehet kerülni, tehát a leadott lövések is egyre pontosabbak lesznek. Mozgás nélkül viszont az ellenséghez kerül a kezdeményezés, ami nem túl jó. Ha nem tüzelünk, akkor az ellenség beszoríthat egy helyre.

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.

Egyre szebb és jobb lesz

Joel lapja | Fog Creek Software | Hibakövetés | Tartalomkezelés | Személyes oldal | Archívum
Ezen oldalak egy személy véleményét tükrözik.
Minden itt megjelent tartalom Copyright© 1999-2004 Joel Spolsky. Minden jog fenntartva.