Strieľaj a postupuj

From The Joel on Software Translation Project

(Difference between revisions)
Jump to: navigation, search
(New page: Niekedy sa mi proste nedarí spraviť čokoľvek zmysluplné. Isteže, prídem do práce, leňoším, kontrolujem maily každých desať sekúnd, surfujem po internete, dokonca spravím p...)
m
 
Line 3: Line 3:
Isteže, prídem do práce, leňoším, kontrolujem maily každých desať sekúnd, surfujem po internete, dokonca spravím pár vecí pri ktorých netreba príliš rozmýšľať, ako napríklad zaplatím účet za kreditku. Ale k písaniu kódu sa proste neviem dostať.
Isteže, prídem do práce, leňoším, kontrolujem maily každých desať sekúnd, surfujem po internete, dokonca spravím pár vecí pri ktorých netreba príliš rozmýšľať, ako napríklad zaplatím účet za kreditku. Ale k písaniu kódu sa proste neviem dostať.
-
Tieto fázy bez produktivity väčšinou trvajú jeden alebo dva dni. Ale mal som obdobia vo svojej kariére vývojára, keď sa mi celé týždne nedarilo nič spraviť. Nevedel som sa dostať do pracovnej rutiny. Nebol som vo svojej koži. Nebol som nikde.
+
Tieto fázy bez produktivity väčšinou trvajú jeden alebo dva dni. Ale mal som obdobia vo svojej kariére vývojára, keď sa mi celé týždne nedarilo nič spraviť. Nevedel som sa plne sústrediť. Nebol som vo svojej koži. Nebol som nikde.
Každý máva výkyvy nálady. U niekoho sú mierne, u niekoho môžu byť výraznejšie alebo dokonca na obtiaž. A vyzerá to, že neproduktívne obdobia súvisia s pochmúrnymi náladami.
Každý máva výkyvy nálady. U niekoho sú mierne, u niekoho môžu byť výraznejšie alebo dokonca na obtiaž. A vyzerá to, že neproduktívne obdobia súvisia s pochmúrnymi náladami.
Line 15: Line 15:
Veľa som nad týmto rozmýšľal. Snažil som sa spomenúť si na obdobie keď som bol najproduktívnejší počas mojej kariéry. Pravdepodobne to bolo vtedy, keď ma Microsoft presťahoval do prekrásnej novej kancelárie s veľkým oknom s výhľadom na pekné kamenné nádvorie plné kvitnúcich čerešňových stromov. Všetko fungovalo ako hodinky. Mesiace som pracoval bez prestávky, špecifikáciu pre Excel Basic som písal ako na bežiacom páse. Boli z toho obrovské štósy papiera, ktoré do posledného detailu rozoberali gigantický objektový model a programovacie prostredie. Doslova som nikdy neprestával. Keď som musel ísť do Bostonu na výstavu MacWorld, zobral som si so sebou notebook, sadol som si na príjemnú terasu na Harvard Business School a dokumentoval som triedu Window.
Veľa som nad týmto rozmýšľal. Snažil som sa spomenúť si na obdobie keď som bol najproduktívnejší počas mojej kariéry. Pravdepodobne to bolo vtedy, keď ma Microsoft presťahoval do prekrásnej novej kancelárie s veľkým oknom s výhľadom na pekné kamenné nádvorie plné kvitnúcich čerešňových stromov. Všetko fungovalo ako hodinky. Mesiace som pracoval bez prestávky, špecifikáciu pre Excel Basic som písal ako na bežiacom páse. Boli z toho obrovské štósy papiera, ktoré do posledného detailu rozoberali gigantický objektový model a programovacie prostredie. Doslova som nikdy neprestával. Keď som musel ísť do Bostonu na výstavu MacWorld, zobral som si so sebou notebook, sadol som si na príjemnú terasu na Harvard Business School a dokumentoval som triedu Window.
-
Keď sa mi raz podarí dostať do toho, pokračovať je už ľahké. Veľa mojich dní vyzerá takto: (1) prídem do práce (2) prečítam si maily, surfujem po internete atď. (3) rozhodnem sa, že by som si mohol dať obed kým začnem pracovať (4) vrátim sa z obeda (5) skontrolujem maily, surfujem po internete, atď (6) rozhodnem sa, že by som už konečne mal začať niečo robiť (7) skontrolujem maily, surfujem po internete, atď (8) znovu sa rozhodnem, že by som ozaj mal začať (9) spustím ten blbý editor (10) píšem kód bez prestávky až kým si uvedomím, že už je 17:30.
+
Keď sa mi raz podarí dostať do toho, pokračovať je už ľahké. Veľa mojich dní vyzerá takto:
 +
# prídem do práce
 +
# prečítam si maily, surfujem po internete atď.
 +
# rozhodnem sa, že by som si mohol dať obed kým začnem pracovať
 +
# vrátim sa z obeda
 +
# skontrolujem maily, surfujem po internete, atď
 +
# rozhodnem sa, že by som už konečne mal začať niečo robiť
 +
# skontrolujem maily, surfujem po internete, atď
 +
# znovu sa rozhodnem, že by som ozaj mal začať
 +
# spustím ten blbý editor
 +
# píšem kód bez prestávky až kým si uvedomím, že už je 17:30.
Vyzerá to, že niekde medzi krokmi 8 a 9 je nejaký zádrheľ, pretože nie vždy sa mi podarí spraviť ten rozhodujúci krok. Jediná vec, ktorá je pre mňa ťažká, je začať. Predmet v pokoji zotrváva v pokoji. V mojej hlave musí byť niečo neskutočne ťažké a je extrémne namáhavé rozbehnúť to. Ale akonáhle to beží na plnú rýchlosť, netreba žiadnu ďaľšiu námahu, aby sa to udržalo v pohybe. Je to ako bicykel nabalený na niekoľkodňovú túru mimo civilizácie: keď si na takýto bicykel sadnete prvý krát, je až prekvapujúce koľko práce to dá pohnúť s ním. Ale keď sa rozbehnete, ide to ľahko ako na bicykly bez batožiny.
Vyzerá to, že niekde medzi krokmi 8 a 9 je nejaký zádrheľ, pretože nie vždy sa mi podarí spraviť ten rozhodujúci krok. Jediná vec, ktorá je pre mňa ťažká, je začať. Predmet v pokoji zotrváva v pokoji. V mojej hlave musí byť niečo neskutočne ťažké a je extrémne namáhavé rozbehnúť to. Ale akonáhle to beží na plnú rýchlosť, netreba žiadnu ďaľšiu námahu, aby sa to udržalo v pohybe. Je to ako bicykel nabalený na niekoľkodňovú túru mimo civilizácie: keď si na takýto bicykel sadnete prvý krát, je až prekvapujúce koľko práce to dá pohnúť s ním. Ale keď sa rozbehnete, ide to ľahko ako na bicykly bez batožiny.

Latest revision as of 21:28, 10 December 2007

Niekedy sa mi proste nedarí spraviť čokoľvek zmysluplné.

Isteže, prídem do práce, leňoším, kontrolujem maily každých desať sekúnd, surfujem po internete, dokonca spravím pár vecí pri ktorých netreba príliš rozmýšľať, ako napríklad zaplatím účet za kreditku. Ale k písaniu kódu sa proste neviem dostať.

Tieto fázy bez produktivity väčšinou trvajú jeden alebo dva dni. Ale mal som obdobia vo svojej kariére vývojára, keď sa mi celé týždne nedarilo nič spraviť. Nevedel som sa plne sústrediť. Nebol som vo svojej koži. Nebol som nikde.

Každý máva výkyvy nálady. U niekoho sú mierne, u niekoho môžu byť výraznejšie alebo dokonca na obtiaž. A vyzerá to, že neproduktívne obdobia súvisia s pochmúrnymi náladami.

Toto mi pripomína výskumníkov, ktorí tvrdia, že človek v princípe nedokáže kontrolovať akú stravu je, takže každý pokus o dodržiavanie diéty je nutne len krátkodobý a každý sa po čase vráti k svojej pôvodnej hmotnosti. Možno ani ja ako vývojár naozaj nedokážem ovládať, kedy budem produktívny. Môžem len dúfať, že keď sa lepšie obdobia spriemerujú s horšími, výsledkom bude dosť riadkov kódu, aby som si dokázal nájsť zamestnanie.

Najviac ma ale štve iná vec. Už pri prvom zamestnaní som si uvedomil, že počas bežného dňa dokážem v priemere produktívne programovať len dve až tri hodiny. Keď som bol v lete na praxy v Microsofte, jeden kolega mi povedal, že on chodí do roboty každý deň od dvanástej do piatej. Päť hodín vrátane obeda, a jeho tím ho zbožňoval, pretože toho stále stíhal spraviť viac ako bol priemer. Môžem potvrdiť, že to funguje. Cítim sa tak trochu previnilo, keď vidím ako všetci ostatní tvrdo pracujú a ja dokážem ozaj kvalite pracovať iba dva až tri hodiny denne. Napriek tomu som stále jeden z najproduktívnejších členov tímu. Toto je zrejme ten dôvod, prečo ľudia okolo Peopleware a extrémneho programovania trvajú na tom, že týždeň má mať presne 40 pracovných hodín bez akýchkoľvek nadčasov. Robia to, lebo sú si istí, že to nijak nezníži výsledky tímu.

To čo ma trápi ale nie sú dni keď dokážem pracovať "len" dve hodiny. Sú to dni keď nedokážem spravit nič.

Veľa som nad týmto rozmýšľal. Snažil som sa spomenúť si na obdobie keď som bol najproduktívnejší počas mojej kariéry. Pravdepodobne to bolo vtedy, keď ma Microsoft presťahoval do prekrásnej novej kancelárie s veľkým oknom s výhľadom na pekné kamenné nádvorie plné kvitnúcich čerešňových stromov. Všetko fungovalo ako hodinky. Mesiace som pracoval bez prestávky, špecifikáciu pre Excel Basic som písal ako na bežiacom páse. Boli z toho obrovské štósy papiera, ktoré do posledného detailu rozoberali gigantický objektový model a programovacie prostredie. Doslova som nikdy neprestával. Keď som musel ísť do Bostonu na výstavu MacWorld, zobral som si so sebou notebook, sadol som si na príjemnú terasu na Harvard Business School a dokumentoval som triedu Window.

Keď sa mi raz podarí dostať do toho, pokračovať je už ľahké. Veľa mojich dní vyzerá takto:

  1. prídem do práce
  2. prečítam si maily, surfujem po internete atď.
  3. rozhodnem sa, že by som si mohol dať obed kým začnem pracovať
  4. vrátim sa z obeda
  5. skontrolujem maily, surfujem po internete, atď
  6. rozhodnem sa, že by som už konečne mal začať niečo robiť
  7. skontrolujem maily, surfujem po internete, atď
  8. znovu sa rozhodnem, že by som ozaj mal začať
  9. spustím ten blbý editor
  10. píšem kód bez prestávky až kým si uvedomím, že už je 17:30.

Vyzerá to, že niekde medzi krokmi 8 a 9 je nejaký zádrheľ, pretože nie vždy sa mi podarí spraviť ten rozhodujúci krok. Jediná vec, ktorá je pre mňa ťažká, je začať. Predmet v pokoji zotrváva v pokoji. V mojej hlave musí byť niečo neskutočne ťažké a je extrémne namáhavé rozbehnúť to. Ale akonáhle to beží na plnú rýchlosť, netreba žiadnu ďaľšiu námahu, aby sa to udržalo v pohybe. Je to ako bicykel nabalený na niekoľkodňovú túru mimo civilizácie: keď si na takýto bicykel sadnete prvý krát, je až prekvapujúce koľko práce to dá pohnúť s ním. Ale keď sa rozbehnete, ide to ľahko ako na bicykly bez batožiny.

Možno toto je kľúč k produktivite: nejak sa prinútiť začať. A možno programovanie v dvojiciach funguje preto tak dobre, lebo keď si raz dohodnete termín spoločného programovania, donútite navzájom jeden druhého začať.

Raz, kým som bol ešte izraelským parašutistom, sa pri nás zastavil generál aby nám rozprával o stratégii. Povedal, že pri pechotných bitkách existuje len jedna stratégia: strieľaj a postupuj. Musíte sa hýbať smerom k nepriateľovi a popri tom strieľať. Streľba ho donúti kryť sa, takže na vás nemôže strieľať. (Presne toto majú na mysli vojaci keď kryčia "kryte ma". Znamená to "strieľajte na nepriateľa aby sa musel skrývať a nemohol strieľat na mňa kým budem bežať cez ulicu". A funguje to.) Postup vám umožní obsadiť územie a dostať sa bližšie k nepriateľovi, čím získate lepšie palebné pozície. Ak sa nehýbete, nepriateľ dostane šancu rozhodnúť čo sa bude diať ďalej, čo väčšinou nie je dobre. Ak nestrieľate, nepriateľ bude strieľať na vás a pritlačí vás k múru.

Toto mi ostalo v pamäti na dlhú dobu. Všimol som si, že skoro každá vojenská stratégia od vzdušných súbojov až po veľké námorné manévre je postavená na taktike "strieľaj a postupuj". Trvalo mi ďaľších pätnásť rokov, kým som si uvedomil, že na princípe "strieľaj a postupuj" môže fungovať aj každodenná práca. Nevadí ak váš kód je neschopný a chybový a nikto ho nechce. Ak neustále postupujete, píšete kód a opravujete chyby, čas je na vašej strane. Dávajte si však pozor, keď na vás strieľa vaša konkurencia. Nejde im len o to, aby vás zamestnali výstrelmi do prázdna, aby ste nemohli postupovať?

Všimnite si, koľko rôznych spôsobov na prístup k databázam pochádza od Microsoftu. OBDC, RDO, DAO, ADO, OLEDB, najnovšie ADO.NET. Sú všetky z nich technologicky nevyhnutné? Alebo sú výsledkom skupiny neschopných návrhárov, ktorí potrebujú vymýšľať prístup k dátam nanovo každý blbý rok? (Tak to pravdepodobne aj bude.) Ale v konečnom dôsledku im ide len o kryciu paľbu. Konkurencia nemá inú možnosť ako zabiť všetok čas portovaním a snahou držať krok, pričom ten istý čas by mohli využiť vytváraním novej funkcionality. Pozrime sa zblízka na softwarové spoločnosti. Najviac sa darí tým, ktoré sa najmenej spoliehajú na veľké spoločnosti a nemusia stráviť všetok čas snahou udržať krok a opravovaním chýb, ktoré sa objavia iba vo Windows XP. Pošmyknúť sa zvyknú tie spoločnosti, ktoré sú príliš zaneprázdnené veštením z čajových lístkov kade sa bude v budúcnosti uberať Microsoft. Ľudí začne trápiť .NET a rozhodnú sa prerobiť celú svoju architektúru pre .NET, pretože si myslia, že to je nevyhnutné. Microsoft na vás strieľa a ide mu len o kryciu paľbu, aby sa oni mohli hýbať ďalej a vy nie. Také sú pravidlá hry. Chystáte sa podporovať Hailstorm? SOAP? RDF? A chystáte sa podporovať to pretože vaši zákazníci to potrebujú, alebo pretože na vás niekto strieľa a vy máte pocit, že by ste mali odpovedať? Obchodní zástupcovia veľkých spoločností poznajú výhody krycej paľby. Svojim zákazníkom povedia niečo v štýle "V poriadku, nemusíte kupovať od nás. Kupujte od najlepšieho výrobcu. Ale dávajte si pozor, aby podporoval (XML / SOAP / CDE / J2EE), ináč budete Odrezaní Od Sveta." Potom keď sa malé spoločnosti snažia primiešať do obchodu, počujú iba poslušných technologických manažérov papagájovať "A máte J2EE?" A musia premrhať všetok čas portovaním do J2EE, aj keď im to nijak nezvýši predaj a nie je to príležitosť ako sa odlíšiť. Je to takzvaná odškrtávacia vlastnosť: spravíte to, pretože potrebujete fajku, ktorá hovorí, že to máte, ale nikto to nepotrebuje ani nepoužíva. A ide len o kryciu paľbu.

Strieľaj a postupuj znamená dve veci pre malé spoločnosti, ako je moja. Musíte mať čas na vašej strane, a každý deň sa musíte posunúť dopredu. Skôr alebo neskôr vyhráte. Jediná vec, ktorú som včera spravil, bola, že som o malý kúsok vylepšil farebnú schému vo FogBUGZ. To je v poriadku. Postupne sa vylepšuje. Každým dňom je náš software lepší a lepší a my máme viac a viac zákazníkov. Na ničom ďaľšom nezáleží. Kým nie sme spoločnosť veľkosti Oracle, nemusíme premýšľať o veľkolepých stratégiách. Stačí, keď sa každé ráno vrátime a spustíme editor.

Tento článok pôvodne vyšiel v angličtine pod názvom Fire and Motion. Joel Spolsky je zakladateľ Fog Creek Software, malej softwarovej společnosti v New Yorku. Absolvoval univerzitu v Yale a pracoval ako programátor v spoločnostiach Microsoft, Viacom a Juno.

Preložil Marek Ludha 07.12.2007

Personal tools