Joel on Software

Joel on Software   Joel, szoftverekről

 

További "Joel on Software" cikkek magyar nyelven

További "Joel on Software" cikkek angol nyelven

E-mail a szerzőnek (angol nyelven)

 

Zárótűz


Szerző: Joel Spolsky
Fordította: József Tóth
Szerkesztette: Krisztián Gyuris
2002. január 6.

Vannak esetek, 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ó agyatlan foglalatosságokat is elvégzem. De a kódírás lelkiállapotába csak nem sikerül visszazökkennem.

[Image]

Ezek a hatékonyságmentes menetek általában egy-két napig tartanak. De nem egyszer történt már meg velem fejlesztői karrierem során, hogy nem sikerült hetekig sem semmi értelmeset befejeznem. Ahogy a mondás járja, nincsen meg a lelkiállapot. Nem jutok el a zónába. Sőt, sehova sem.

Mindenkinek vannak rosszabb időszakai; néhányunknak ezek könnyebben elviselhetők, másoknak súlyosabbak, sőt, kórosak is lehetnek. És az alacsony hatékonyságú időszakok valamilyen módon összecsengenek a mélabúsabb időszakokkal.

Erről eszembe jutnak azok a kutatók, akik szerint az emberek voltaképpen nem képesek korlátok közt tartani, hogy mit esznek, ezért aztán minden diéta a természetéből adódóan rövid ideig tart, és az ember mindig visszapenderül a természetes testsúlyába. Lehet, hogy szoftverfejlesztőként nem vagyok képes befolyásolni azt, hogy mikor vagyok alkotásképes, és a lassú időszakokat és a felpörgetett időszakokat egyaránt el kell fogadnom, és csak reménykedhetek, hogy utóbbi kiegyenlíti az előbbit legalább annyira, hogy elegendő sor kódot termelek a munkaadóim meggyőzésére.

 

 
[Image]

 
 

Ami már a legelső szoftverfejlesztői munkám óta megőrjít, az az, hogy általában két-három hatékony órát tudok csak naponta kódolással eltölteni. A Microsoftnál töltött nyári gyakorlaton egy társam elmondta, hogy csak 12 és 5 között van benn a munkahelyén. Öt óra - és ebben már az ebéd is benne van - és a társai imádták mert még mindig többet végzett el, mint a többiek. Valahogy ez vált bizonyossá számomra is. Nem kerül el a bűntudat, amikor körülnézek és látom, mindenki milyen keményen hajt, de mégis, még mindig a csapat leghatékonyabb tagjai közé tartozom. Valószínűleg ez az, amiért amellett, hogy a Peopleware és az XP keményen a túlórák megszüntetése és a 40 órás munkahét mellett kardoskodnak, ugyanakkor azt bizonygatják, hogy ez nem csökkenti a fejlesztői csapatok teljesítményét.

De nem azok a napok aggasztanak, amikor „csak” két órát dolgozom. Azok a napok aggasztanak, amikor semmit sem vagyok képes létrehozni.

Erről nagyon gyakran merengek. Megpróbáltam felidézni azt az időszakot, amikor a legtöbbet végeztem el a karrierem során. Azt hiszem, ez akkor volt, amikor a Microsoft áthelyezett egy gyönyörű, süppedős szőnyegű irodába, amiben nagy, képszerű ablakokon keresztül egy aranyos, kövezett belső kertre láttam rá, tele virágzó meggyfákkal. Minden a helyén volt. Hónapokig megszakítás nélkül ontottam az Excel Basic részletes specifikációját -- egy észvesztő méretű papírfolyamot, amely szédítő részletességgel ismertetett egy gigantikus objektummodellt és a programozási környezetét. Szó szerint soha nem tartottam szünetet. Amikor Bostonba, a MacWorldre látogattam, elvittem egy laptopot magammal, és az ablakosztály dokumentációját a HBS kellemes teraszán í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) ellenőrzöm a leveleket, barangolok a weben stb. (3) ráébredek, hogy akár meg is ebédelhetnék a munka elkezdése előtt (4) visszajövök az ebédből (5) ellenőrzöm a leveleket, barangolok a weben stb. (6) végre rászánom magam, hogy munkába lendüljek (7) ellenőrzöm a leveleket, 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 mindaddig, amíg rá nem ébredek, hogy már este 19:30 van.

Valahol a 8. és a 9. lépés között kell lennie egy hibának, mert nem mindig sikerül átlépni a gátat.

[Image]Számomra kizárólag a munka elkezdése a nehéz. A nyugalomban lévő test nyugalomban is igyekszik maradni. Azt hiszem, van valami rendkívüli tömegű az agyamban, amit rendkívül nehéz megmozdítani, de amint teljes sebességgel halad, már szinte nem igényel további erőfeszítést. Hasonlóan az önellátó vidéki kerékpártúra alkalmából előkészített, felpakolt biciklihez -- egy ilyen felbakolt járgány elindítása elképesztő erőfeszítést igényelhet, de ha már gurul, akkor mintha nem is lenne felpakolva.

Lehet, hogy ez a termelékenység kulcsa: az elindulás. Talán amikor a páros programozás működik, akkor azért teszi, mert ha az előre beütemezett időpontban Te is és a társad is megjelentek, akkor önkéntelenül is ráveszitek egymást a munkakezdésre.

[Image]

Amikor még izraeli ejtőernyősként szolgáltam, egy tábornok megállt mellettünk, hogy egy rövid előadást tartson a stratégia lényegéről. A gyalogsági csatákban, mint mondta, egyetlen stratégia létezik: Tűz és előre. Az ellenség felé kell mozogni, miközben folyamatosan tüzelsz a fegyveredből. A folyamatos tüzelés nem engedi, hogy felemelje a fejét, és nem tud rád lőni. (Erre utalnak a katonák, amikor azt kiabálják „Fedezzetek!” Más szavakkal: „Lődd az ellenséget, hogy ne emelje fel a fejét, és ne tudjon lelőni amíg átfutok itt az utcán!” Bejön.) A mozgással újabb területeket hódítasz meg, és közelebb kerülsz az ellenfeledhez, miközben az egyre közelebbről leadott lövések egyre pontosabbak is. Ha nem mozdulsz, akkor az ellenség dönti el, mi fog történni, ami nem túl jó. Ha nem tüzelsz, akkor az ellenség fog, és a helyedhez lapít.

Ezt már jó ideje észben tartom. Megfigyeltem, hogy mindenféle katonai stratégia - a légiharctól a nagyléptékű tengeri hadműveletekig - mind a „Tűz és előre”, azaz a folyamatos tűz alatt tartás gondolatán alapszik. További tizenöt év alatt ráébredtem, hogy a „Tűz és előre” alapgondolata viszi előre a köznapi élet dolgait is. Minden nap előre kell lépni, ha csak egy kicsit is. Nem számít, hogy a kód, amit írtál, hibákkal van tele, lamma és senkinek sincsen szüksége rá. Ha a jó irányban mozogsz, és folyamatosan javítod a hibáidat, akkor az idő a Te oldaladon áll. Vigyázz azokra az esetekre, amikor a versenytársaid tüzelnek rád! Nem csak az a céljuk, hogy az ő húzásaikra reagálj, hogy ne tudj előrelépni?

Gondolj az adatkezelési stratégiákra, amit a Microsoft közzétett! ODBC, RDO, DAO, ADO, OLEDB, most pedig ADO.NET - Mind Új! Ezek technológiailag szükséges dolgok? Vagy esetleg egy hozzá nem értő tervezőcsoport termékei, akiknek újra fel kell találni az adatkezelést minden egyes évben? (Valójában inkább az utóbbi igaz.) De a végeredmény minden esetben a zárótűz. A versenytársaknak nincsen 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, miközben ezt az időt nem képesek új funkciók kidolgozására fordítani. Vess egy pillantást a szoftvervilág domborzatára! A jól menő vállalatok azok, akik nem függenek nagyvállalatoktól, és nem kell minden újabb fordulóban behozniuk a lemaradásukat, újraimplementálni a funkciókat, és kijavítani mindazon hibákat, amik csakis és kizárólag Windows XP alatt jelentkeznek. A botladozó vállalatok azok, akik tealevelekből próbálják kiolvasni a Microsoft jövőbeni stratégiai irányvonalait. Az emberek aggódnak a .NET miatt és egész architektúrájukat átalakítják a .NET mintára, mert azt hiszik, így kell tenniük. A Microsoft kiabál, és mindez csupán zárótűz, ami ahhoz kell, hogy ők előre tudjanak lépni, miközben Te nem - mert ezt a játékot így játsszák, Pajtikám. Szerepel a terveid között a Hailstorm támogatása? A SOAP? Az RDF? Azért akarod támogatni, mert az ügyfeleidnek szüksége van rá vagy mert valaki tűz alatt tart és úgy érzed, ezt kell tenned? A nagyvállalatok forgalmazói csapatai értik a zárótűz lényegét. Meglátogatják az ügyfeleiket és azt mondják: „Rendben, nem kell tőlünk vásárolnod. Persze, vedd meg a legjobb gyártó termékét! De győződj meg róla, hogy amit veszel, rendelkezik (XML / SOAP / CDE / J2EE) támogatással, mert különben ott fogod találni magad a csomagtartóba zárva.” És amikor kisebb vállalatok megpróbálják az ügyfél megbízását elnyerni, akkor mindaz amit hallanak nem más, mint a jól nevelt CTO-k papagájnyelve: „Ez most J2EE?” És az összes idejüket arra kell pazarolják, hogy beépítsék a J2EE elveket, még ha ez nem is generál semmiféle forgalmat, és nem ad lehetőséget arra, hogy kitűnjenek a tömegből. Ez egy kipipálandó kérdés - azért teszed bele, mert kapásból azt kell tudnod mondani, hogy benne van, nem pedig azért, mert valaha is bárkinek szüksége lenne rá vagy esetleg használná. Ez a Zárótűz lényege.

A „Tűz és előre” a cégemhez hasonló kis cégek számára két dolgot jelent. Be kell biztosítanod, hogy az idő a Te oldaladon áll, és minden nap előre kell lépned egy kicsit. Előbb-utóbb be fog jönni. Tegnap semmi mással nem jutottam előrébb, csak egy kicsit javítottam a FogBUGZ színösszeállításán. Ez rendben is van. És minden pillanattal egyre jobb lesz. A programunk minden nap egyre jobbá és jobbá válik, és több és több ügyfelünk lesz - és ez az, ami számít. Mindaddig, amíg nem vagyunk Oracle nagyságú cég, nem kell gondolkodni óriásstratégiákon. Csupán be kell kerülnünk minden nap az irodába és valamiképpen el kell indítanunk a szerkesztőprogramot.

[Image]
 


A fordítás alapjául szolgáló angol cikk címe: Fire and Motion  

Joel Spolsky a Fog Creek Software alapítója. A Fog Creek egy apró szoftvercég, székhelye New York City. Joel a Yale egyetemen végzett, majd programozóként és menedzserként dolgozott a Microsoftnál, a Viacomnál és a Junonál.


Az itt olvasható oldalak egyetlen személy véleményét tükrözik.
Minden itt megjelenő tartalom ©1999-2005 Joel Spolsky. Minden jog fenntartva.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky