19. June 2010

Príliš veľa vlastností zničí softvér

Á! Spravíme skvelý softvérový produkt! Super! Dáme tam autentifikáciu, notifikáciu smskami, spravím registráciu cez web formulár, kde bude administračné rozhranie. To všetko bude podporovať single sign-on. Samozrejme nesmú chýbať grafy na hodnotenie a reportovací systém, ktorý generuje všetko v PDF. Ešte to napojíme na možnosť platenia cez Paypal. Administračné rozhranie, na to nesmieme zabudnúť. Hlavne to musí byť user friendly. A ešte tam pravidelne sa budú zobrazovať výsledky z burzy a futbalových zápasov a bude tam podpora pre stromové vyhľadávanie v kategóriách. A to ešte napojíma na podnikový SAP. Hlavne tam ale musí byť táto enterprise komponenta, ktorá je totálne kúl a umožňuje generovať OLAP. A všetko to pobeží na cloude.

Uf?

Rozumiete tomu?

Za ako dlho dokážete vyvinúť takýto produkt?

Vážne, za ako dlho? Manažér sa vás pýta na časový odhad, tak mu nejaký dajte. Veď sa v tej oblasti predsa vyznáte.

Neviete? Ale veď je to úplne jasné. Fakt neviete? Za ako dlho sa dá vyvinúť takýto produkt? Rozmýšľajte, rozmýšľajte…

Ešte stále neviete?

Správna odpoveď! Uvedený príklad je dokonalou ukážkou feature soup. Pokiaľ začnete vyvíjať takýto produkt, tak si pripravte poriadny balík peňazí. Vlastne nie. Pripravte si dva. Jeden použijete na sponzorovanie vývoja a druhý si necháte ako rezervu na doťahovanie aspoň základnej sady vlastností.

V čom je problém?

Je to predsa tak jednoduché. Požiadavky uvedené na začiatku článku vôbec nie sú zadaním, je to čistý chaos.

Dobre, ale my potrebujeme nejako produkt vyvinúť. Čo s tým?

Jedným z možných prístupov je využiť princíp: Minimum feature set. V preklade: minimálna sada vlastností.

Pointou je zamerať sa na minimálne množstvo vlastností, ktoré sú kľúčové pre produkt a pracovať na nich.

Je dôležitá integrácia so SAPom? Prinesie nám niečo? Nóo to by bolo strašne kúl, ale nie. Preč s tým. Potrebujeme multidimezionálny OLAP? Nie? Preč s tým. Atď.

Proces minimalizácie nepodstatných vlastností  rozhodne nie je jednorázová záležitosť. Prehodnotenie by malo prebiehať opakovane, rádovo v týždňových iteráciach. Podpora pre minimalizáciu je často priamou súčasťou agilných metodík, ako napríklad SCRUM.

Dokonca aj Freddy Mercury na túto skutočnosť upozorňoval: Too much features will kill you.

I’m just the pieces of the manager I used to be
Too many bitter tears are raining down on me
I’m far away from goals
And I’ve been facing this alone
For much too long
I feel like no-one ever told the truth to me
About software and what a struggle it would be
In my tangled state of mind
I’ve been looking back to find
Where I went wrong
Too much features will kill you
If you can’t make up your mind
Torn between the products
And the marketing you leave behind
You’re headed for disaster
‘cos you never read the signs
Too much features will kill you
Every time
I’m just the shadow of the manager I used to be
And it seems like there’s no way out of this for me
I used to bring you sunshine
Now all I ever do is bring you down
How would it be if you were standing in my shoes
Can’t you see that it’s impossible to choose
No there’s no making sense of it
Every way I go I’m bound to lose
Too much features will kill you
Just as sure as none at all
It’ll drain the power that’s in you
Make you plead and scream and crawl
And the pain will make you crazy
You’re the victim of your crime
Too much features will kill you
Every time
Too much features will kill you
It’ll make your product a lie
Yes, too much features will kill you
And you won’t understand why
You’d give your life, you’d sell your soul
But here it comes again
Too much features will kill you
In the end…
In the end.

26. February 2010

Chcete optimalizované procesy, ktoré vedia obsluhovať aj cvičené opice?

V tom prípade mám pre vás jednu cennú radu.

Nezakladajte si firmu. Založte si cirkus.

Áno, cirkus. Môžete založiť aj ZOO, ale tá je čosi drahšia.

Narazil som na všeobecne rozšírený blud o tom, že keď správne vytuníte automatizáciu výroby/vývoja/pečenia rožkov, tak môžete zamestnať cvičené opice.

Samozrejme. Môžete. Len sa potom nesťažujte, že to vyzerá ako v opičiarni a výsledný produkt by nebral ani tuplovaný oposum.

Proste týmto smerom vedie cesta len v prípade, že sa chcete zbaviť prebytočného budgetu.

Ako vidím automatizáciu a optimalizáciu? Vymyslel som si motto Lightweight Software Automation. Teda v preklade: Ľahkotonážna softvérová automatizácia.

Prvou a najzásadnejšou vecou, než sa začne vôbec uvažovať nad automatizáciou,  je  úspešné nájdenie odpovede na otázku: Prečo?

Niekedy zistíte, že vlastne nie je dôvod na optimalizáciu a pridávanie raketových motorov k procesu. Pokiaľ nápad/kreatívny záchvat prejde prvým testom, pokračuje do ďalšieho levelu.

Druhým levelom je Debordelizácia. V múdrom preklade lean development.

Ako chcete vytuniť auto, keď vám z neho odpadávajú hrdzavé plechy a občas odletí výfuk? Môžete to premaľovať na kreatívny proces, ale ten výfuk vám aj tak odletí.

V oblasti softvéru sa dá tento krok realizovať napríklad vymazaním 50 MB zdrojového kódu z aplikácie, ktorý tam nikto nikdy nepoužil. Pre istotu bol tento mamut kompilovaný v 20 rôznych verziách, o ktorých nikto nič netuší.

Debordelizácia nie je jednorázový krok, musí prebiehať neustále. Neporiadok nespí!

Pokiaľ sme debordelizovali aspoň na základnej úrovni, môžeme začať zostavovať automatizačné nástroje. Je nutné hľadať miesta, kde to má skutočne význam a prináša to ľuďom určité vylepšenie. Pozor! Prekvapenie! Tvorba nástrojov je postupná a nástroje vám nevyskočia zo dňa na deň. Prečo?

Softvér musíte skamarátiť s ľuďmi. Tu prichádza na scénu najťažšia časť: použitie soft skillov (soft skill nie je softvér ;-) . V preklade: bude si to vyžadovať čas. Pokiaľ nástroj bude na mieste o rok a budú ho všetci používať a nebudú chápať, ako mohli bez neho žiť. Tak ste dosiahli úspech.

Dočasne…

4. February 2010

Recenzia: Adrenaline Junkies and Template Zombies

Jednu z kníh, ktoré odporúčam manažérom softvérových projektov na prečítanie, je Adrenaline Junkies and Template Zombies.

Pokiaľ chcete o tejto knižke vedieť viac, tak na Inovace.cz nájdete celú recenziu :)

Knižku som prezentoval aj na stretnutí Czech & Slovak Professional Community v Bratislave.

23. September 2009

Vzor: Hrach alebo akoby tickety na stenu hádzal

Skúsili ste niekedy hodiť na stenu chleba s maslom alebo parenú buchtu? Čo sa stane? Prilepí sa. Na stene zostane minimálne fľak. Zopakujme celý experiment so sušeným hrachom. Zoberieme za hrsť sušeného hrachu, mávneme rukou a hodíme hrach o stenu.

S údivom môžeme sledovať výsledok experimentu. Sušený hrach sa od steny odráža. Na stene nezostáva prilepený. Akoby hrach na stenu hádzal.

Čo to má spoločné so softvérom? Veľmi veľa. Softvér obsahuje chyby a obsahuje ich veľa. Nemusí sa jednať o chybu štýlu, že sa vám v bankovom systéme odčítajú dva výbery z bankomatu namiesto jedného. Ale napríklad o nepríjemnú “chybu”, kedy musíte 10x kliknúť na okienko a potom sa otočiť na kolieskovej stoličke a v pravý moment stlačiť enter.

Čo s takýmito chybami? Vačšinou je dobré ich oznámiť autorom, aby ich odstránili. Takže sa pripravme na hod. Uchopíme problém. Rozoženieme sa. A hádžeme.

Problém dopadne do ticket systému, ktorý ho dostatočne spomalí, aby nešťastných vývojárov nezhodil zo stoličky a nepriklincoval o stenu. V ticket systéme zostane problém hybernovaný a uchovávaný len s malým množstvom pôvodnej energie. Pôvodná energia mohla byť skutočne ohromujúca, niekedy pripomínajúca výbuch sopky. Len namiesto kamenných bômb, padajú veľmi ťažké nadávky.

Ako vidíme, obranný účinok ticket systému je úžasný. Niektoré tickety sú preradené do sekcie vyhnívacia nádrž a po roku sú zmazané, ako nerelevantné.

A čo s tým robiť? Prečo ticket nie je vyriešený včas? Jednoducho preto, že nie sú dostatočné sily a manažment nevidí v tickete dostatočnú dôležitosť, aby preorganizovával vývojárov. Často tieto tickety znamenajú opravu 1-2 riadkov kódu. Čo je však podstatnejšie, 1-2 dni času vývojára. Na konci mesiaca už len zostane otázka: a kto to zaplatí?

Tak si ticket zostáva naďalej pekne hybernovaný a možno jedného dňa bude vyriešený. Poznám tickety, ktoré by už mohli chodiť aj do škôlky. Jednak majú na to vek a naviac už dorástli do slušnej veľkosti, tým ako si ich vývojári medzi sebou prehadzovali a pridávali komentáre.

Seriózne, čo sa s tým dá robiť? Zo strany klienta, je dôležité, aby si uvedomil, že proti nemu stojí ticket systém, cez ktorý musí jeho problém prebublať. Namiesto zvyšovania energie problému útočným a inzultatívnym tónom, radšej použiť asertívnejší prístup. Nakoniec, je dôležitá spolupráca a nie je dobré hodiť všetko na hlavu nešťastných vývojárov.

Zo strany dodávateľa softvéru je dôležité prehodnotenie priorít a namiesto sypania 30 nových vlastností za týždeň, vysypať len jednu. Zbytok úsilia venovať tomu, čo ľudí páli. Toto rozhodne nie je triviálna plánovacia úloha. Môže sa stať, že ticket je v rozpore so samotnou podstatou systému a musí byť zvolené úplne iné riešenie.

Softvér nie je vec, ktorú si kúpite v obchode a zavesíte nad kuchynskú linku. Samozrejme, že softvér, za ktorým je množstvo kvalitnej práce, sa takto môže javiť. Na kvalitný softvér je potrebná rozumná spolupráca oboch strán. Ako dodávateľa, tak odberateľa.

14. August 2009

Vzor: Neporiadok

Poznáte ho. Určite ho poznáte. Sedíte si v kresle a on sa zakráda poza váš chrbát. Dokonca niekedy sa drzo objaví aj pred vami. O kom hovorím? O neporiadku.

Neporiadok prechádza niekoľkými vývojovými fázami. Najskôr je malý, nepozorovaný. Schováva sa za kancelárskou sponkou. Ani si nevšimnete a už si k sebe zobral váš hrnček so včerajším čajom. Už sa dostáva do fázy, kedy je pozorovateľný, ale stále nie je agresívny. Neporiadok je samoorganizujúca sa, semidemokratická entita. Následne prejde do fázy: kopovitý neporiadok. Začne kumulovať potenciál. Typicky sa to prejaví v raste výšky kopy, kde sa neporiadok nachádza. Keď už má dostatok potenciálu, expanduje. Z kopy sa oddelia malé kôpky, ktoré majú vyššiu mobilitu než matererská kopa. Obsadia vám napríklad stoličku.

Už ste skúšali odstrániť neporiadok zo stoličky? Určite áno. Vrátili ste neporiadok späť na pôvodnú kopu. To je však len prilievanie oleja do ohňa. Neporiadková kopa získa späť svoju matériu a je tak schopná rýchlejšie expandovať. Narozdiel od vás, neporiadok totiž nespí. Druhý deň už je obsadená nie len pôvodná stolička, ale aj ďalšie. Kopy navzájom fungujú synergickým efektom. Typická útočná metóda používaná kopovitými neporiadkami je zosuv. Neporiadok sa zosunie zo stola, na stoličku a parapet. Z parapetu zhodí kvetináč. Rozbitým kvetináčom sa dostane na zem a vďaka vyliatej vode z kvetináča, presiakne o meter ďalej. Pokiaľ sa neporiadku nepostavíte, ovládne vás, vašu kanceláriu, váš biznis, váš život a akvárium.

Ako vyzerá neporiadok v IT?

Kedysi sa ľudská blbosť šírila rýchlosťou zvuku. Vďaka počítačom sa šíri rýchlosťou svetla.

- anonymný autor ľudovej IT múdrosti

Vďaka IT získal neporiadok nové formy, nové prostriedky a nové zákerné metódy.

Povedzme, že ste mladá, dynamická, progresívna, agilná, agresívne, progresívna firmička. Na počte nálepiek, ktoré si dáte, ale nezáleží. Vyvíjate program, softvér, komponentu alebo ako si už svoj komplexný systém nazvete. Viete, že už od prvého riadku kódu sa v ňom nachádza neporiadok? Neviete. Há. A to je presne moment kancelárskej sponky. Dva zbytočné riadky, kde jeden pričíta jedna a druhý odčíta jedna. O deň neskôr dostane váš vývojár za úlohu naprogramovať takú a takú fciu. Zistí, že podobná tam je. Tu nastupuje na scénu silný pomocník IT neporiadku, spoločnosť Copy & Paste limited. Z dvoch riadkouv sa stanú štryri? Ale kdeže. Osem. Pretože vývojár nemá čas sa zamyslieť. Už po ňom sales chce ďalšiu funkciu. Než sa stihnete spamätať, už je tam tých riakdov sedemnásť.

Potom k sebe tento kód pribalí knižnicu, ktorá je potrebná na nejaké fcie. Vzhľadom na to, že implementujete komplexný, multimodulárny systém, pribudne do systému ďalší modul. Ako vznikne? No duplikáciou už existujúceho a zmenou kódu v ňom. Vývojár v novom module nahradí funkcie, tak aby vyhovovali novým požiadavkam. A množstvo neporiadku sa opäť zdvojnásobilo. Naviac nový modul so sebou ťahá knižnicu, ktorú nepotrebuje. Tá presiakne do build systému. Vzhľadom na to, že je experimentálna, začne kolidovať so systémovými.

Tu ešte namá neporiadok takú silu. Skutočnú energiu mu dáte, až systém spustíte. Zbytočné riadky a knižnice začnú po disku a v databáze vytvárať zbytočné záznamy. Neporiadok začína kysnúť a transformovať sa. Do databázového stroja sa lejú miliardy bitov, ktoré vývojár zabudol zmazať na konci tranzakcie. Neporiadok prechádza na vyšší level. Už ovláda váš server.

Tie hlúpejšie neporiadky si vystačia s tým, že šudlajú s hlavou disku z ľava doprava tak dlho, až vám odpália aj najkvalitnejší disk, ktorému práve skončila záruka. A neporiadok sa presťahuje zo serveru na poličku. Tie inteligentnejšie formy neporiadku vedia, že je nerozumné si pod sebou odpíliť server a preto sa po sieti šíria ďalej. Pomocou klientskej aplikácie sa zo servera dostanú na desktopy. Muhaha. Už ovládli vašu sieť. Ľudia sa zdesia. Začnú vymýšľať obranné mechanizmy, firemné postupy, workaroundy, ako sa vyhnúť zlému fungovaniu, ale stále udržať systém v chode. To je presne to, čo neporiadok potreboval.

Na chviľku si odpočinie a poobede sa nasáčkuje do počítača, ktorý dostal nový zamestnanec. Všetko je stratené. Nikto ho nezastaví. Vďaka svojej rafinovanej podobe užiera ľuďom nervy, firme peniaze. Čo je však ešte zákernejšie. Ľudia s ním spolupracujú. Uveria, že ich Neporiadok je, správna cesta a indoktrinujú ho do malej zdravej nehyperagilnej firmičky, ktorú práve získali akvizíciou.

All your base are belong to us! You’re on the way to destruction. Hahaha!

Všetka základne patria nám! Ste na ceste k zničeniu. Hahaha!

- legendárne AYBABTU

Stop. Ako zastaviť neporiadok, ktorý má väčšiu silu ako lokomotíva. No, holými rukami ho nezastavíte. Zastavovať dôsledky proliferácie neporiadku nie je účelné. Často vedie k workaroundu a neporiadok vám dal ďalší šach-mat.

Jednou z možných účinných techník je prevŕtať sa k jadru problému, z ktorého neporiadok čerpá svoje sily. To chce čas, kľud a nohy v suchu. Budete sa musieť prevŕtať kódom až do oblastí, kam sa už žiadny programátor neodváži vstúpiť. Objavíte odkazy starej programátorskej civilizácie, ktorá zanikla pred dávnymi rokmi. Prebojujete sa cez prales nebezpečných nedokumentovaných funkcií. Až sa dostanete k dvom riadkom. Ktoré tam niekto na začiatku zabudol. S opatrnosťou pyrotechnika ich odstránite. Vrátite sa späť do kresla. Chyba odstránená. Workaround sa stáva zbytočným. Systém je stabilnejší. Uff.

Neporiadok spraví ale ďalšiu ofenzívnu reakciu. A vám nezostáva nič iné, len sa vrhnúť do súboja s ním. V jednej ruke plne nabitý opakovací Debugger, v druhej ruke špeciálne upravený antikódujúci hlbinný vrták značky Valgrind & Helgrind. Ponoríte sa do džungle kódu a mažete nezmysly, čo to dá.

Táto metóda je napríklad súčasť Lean developmentu. Kde je dôležité pre ďalší úspešný rozvoj, včas odstrániť neporiadok.

Aké metódy na boj s neporiadkom používate vy?

10. August 2009

Vzor: Mokré drevo

Je zima. Chlad sa vkráda pod kožu. Sedíte v chate. Oproti vám sedí krb. Vlastne ani tak moc nesedí, ako je zabudovaný v stene. Tu vás napadne skvelá myšlienka: chcelo by to zakúriť. Nadšený z tejto myšlienky, ktorá prinesie teplo a radosť do vášho života, sa pustíte do hľadania dreva. Darí sa vám. Úspešne ste našli niekoľko šiarov pekne narúbaného dreva. Zoberiete košík a s víziou tepla, pohody a bezpečia začnete nakladať do košíku drevo.

Zachvíľku je už drevo pri krbe. Dokonca sa vám podarílo nájsť aj pevného podpaľovača Pepa. Zápalkov iniciujete endotermickú reakciu. Pepo sa rozhorí. Drevo sa pomaly zapaľuje a vy si myslíte, že ste vyhrali nad zimou a nepohodou.

Sadnete si do kresla a začínate sa tešiť na teplo. Ale namiesto tepla sa z krbu vyvalí množstvo tmavého dymu. Otvárate okná v snahe rýchlo vyvetrať. Šedý oblak zaplnil celú miestnosť. Namiesto zvyšovania teploty v miestnosti ste dosiahli pravý opak. Množstvo adrenalínu vyplavovaného do vášho systému stúpa a nadávajúc na celý svet, vetráte čo to dá.

Po chvíli oheň dodútna a prestane generovať dym. Čo ste týmto získali?  Väčšiu zimu, smrad ako v psej búde a naviac si môžete naplánovať maľovanie, pretože sadze pokryli steny okolo krbu. Dobrá bilancia, nie?

Kde je teda problém? Všetky okolnosti predsa nahrávali tomu, aby ste boli v suchu, teple, bezpečí a pohode? Aj by ste boli, keby ste do krbu priložili suché drevo.

V snahe dosiahnuť, čo najrýchlejšie dobrý výsledok, ste si neskontrólovali,  že do košíka prihadzujete drevo, ktoré nebolo pod strechou. Toto drevo bolo úspešne navlhnuté po predchádzajúcich monzúnových dážďoch.

Poviete si: taká drobnosť a aký veľký rozdiel vo výsledku.

Ako vyzerá mokré drevo v prípade IT? Dostanete skvelý nápad na inováciu vášho pracovného procesu. S víziou tepla, sucha a zlepšenia cashflow sa vrhnete do zháňania systému, ktorý by vašim ľuďom ušetril prácu. Investujete úsilie do jeho nasadenia. Spustíte ho a figu. Ľudia sa vôbec nechytia vášho skvelého nápadu. Naopak, frflú a roznášajú sírny puch a reči o blbom manažmente. Nakoniec sa vrátite k pôvodnému riešeniu, ale smrad z rečí zostane.

Kde je problém? No, napríklad v tom, že ste si nezaškolili ľudí. Prípadne aj v tom, že ste od systému očakávali niečo úplne iné, než systém poskytuje.

Efekt mokrého dreva sa prejaví vo chvíli, keď už máte všetko namieste a rozhodnete sa systém spustiť. Ak drevo v krbe nie je nachystané a suché, nebude horieť. Bude len smrdieť.

Ako sa brániť efektu mokrého dreva? Vzdelávajte sa, nečakajte, že konzultanti nasadzujúci systém vyriešia vaše problémy za vás. Sú to vaše problémy. Oni vám len môžu pomôcť ich vyriešiť, ak ich dobre popíšete. Čím nepresnejšie informácie poskytnete o vašich cieľoch, tým viac smradu systém narobí. Len vy máte vhľad do vašej firmy a len vy môžete povedať: “Borci, to je síce pekné, ale komín toho systému ste dali do stredu miestnosti a končí pod stropom. Ten by mal byť vyvedený na strechu.”
Borci sa chytia za hlavu, že si to vôbec pri stavbe nevšimli a že predsa postupovali podľa stanoveného ISO procesu.

Takže predtým, než si pôjdete zakúriť v krbe, aby bolo teplejšie, nájdite si knižku o dreve. Prečítajte si, aké nevýhody má mokré drevo, ako je možné spoznať mokré drevo. Dokonca môžete v literatúre a na blogoch nájsť postup, ako spaľovať mokré drevo bez smradu.

30. July 2009

Vzor: Zosilňovač

Inforačný systém funguje v organizácii ako zosilňovač vlastností. Zosilní dobré vlastnosti, ale aj zlé vlastnosti organizácie. Táto amplifikačná funkcia nemusí byť úplne zrejmá. Nemusí si ju uvedomovať ani ten, kto systém nasadzuje, ani ten u koho je systém nasadzovaný.

V IT praxi sa pre negatívny dopad zosilňovača používa pojem GIGO. Garbage in garbage out. V preklade: neporiadok na vstupe, neporiadok na výstupe.

Ďalším zaujímavým zosilňovačom sú peniaze. Ľudia si to vôbec nemusia uvedomiť, ale dôsledky sú vidieť na ich správaní. Pokiaľ človek mal zlé návyky je viac než isté, že s väčším finančným obnosom, budú tieto návyky silnejšie. To isté platí aj o dobrých návykoch. Kultivovanie dobrých návykov však vyžaduje sústredenú prácu a rozhodne nespadnú z neba.

To, čo by som chcel u vzoru zosilňovač podtrhnúť je fakt, že ten koho vlastnosti sú zosilňované si vôbec nemusí byť zosilňovača vedomý. Obrana proti negatívnemu zosilňeniu spočíva vo včasnej alebo opkakovanej revízii vlastností.

Ďalšie príklady na zosilňovač vás určite napadnú. Často sa s nimi stretnete práve v negatívnom význame, pretože negatívne vlastnosti sú veľmi markantné.

15. July 2009

Zmena bez strachu

Objavil som veľmi zaujímavý diel podcastu na stránkach Software Engineering rádia. Podcast súvisí so vzormi, o ktorých som doteraz písal a hlavne s adaptáciou na zmenu.

Tento diel podcastu je rozhovor s Lindou Rising. Okrem iného je aj autorkou knihy Fearless Change: Patterns for Introducing New Ideas. Pokiaľ ste sa pokúšali niekedy do organizácie zaviesť zmenu, je viac ako isté, že ste sa stretli s odporom ľudí. Linda v podcaste popisuje rôzne vzory správania a vysvetľuje, prečo je zmena tak veľký problém. Hovorí o postupoch, pomocou ktorých je možné lepšie riadiť adaptáciu na zmenu.

Možno si poviete, ale veď to nemá nič spoločné so softvérom. To je však omyl. Môžete vytvoriť aj ten najdokonalejší kus softvéru v celej galaxii. Pokiaľ ho však nikto nebude použivať, je zbytočný. Na to, aby sa softvér mohol používať ho musia používatelia akceptovať. V tomto mieste sa softvérarčina začína stretávať s psychológiou. Spoločnou platformou pre obe disciplíny sú práve vzory.

Určite odporúčam nájsť si čas na tento podcast.

14. July 2009

Vzor: Odnaucena lekcia

Clovek sa neustale uci nove veci. To by mali robit aj vyvojari, aby zostali dostatocne flexibilny. Objavuju sa nove postupy a styly prace, ktore este pred par rokmi neexistovali.

Problem s uceni noveho je v tom, ze moze vazne kolidovat so starymi zazitymi postupmi. Na to, aby bolo mozne naucit sa nove veci, je nutne vediet sa odnaucit niektore stare.

Proces odnaucania je velmi uzko prepojeny so vzorom Zmena. Tzn. Zmena nie je jednoducha a stoji urcite usilie. Cim silnejsia je faza popierania zmeny, tym viac usilia stoji presvedcit osobu, ze zmena moze byt pre nu pozitivna.

Vzor Odnaucena lekcia ma jeden zaujimavy dosledok. Pokial vyvojar pouzival urcity styl programovania a postavite ho pred novu technologiu, je viac nez iste, ze sa pokusi preniest zvyky zo starej technologie do novej. Behom par dni sa zasekne, pretoze stare postupy sa uz nedaju pouzit. Pri zavadzani novej tecnologie nestaci len povedat: “Tu ju mate a pouziva sa tak a tak.” Este dolezitejsie je vysvetlit, ktore zo starych postupov nebudu fungovat a preco.

13. July 2009

Vzor: Čas berie karty z ruky

Čas postupuje dopredu bez ohľadu na to, či máte najgeniálnejší biznis plán na svete alebo predávate rožky. Projekty je nutné doslova správane zahrať v čase. Keby sme to prirovnali ku kartovej hre, tak na začiatku máte na ruke tromfy, ktoré nikto iný nemá. Začnete hrať a karty sa obmieňajú, menia. Prispôsobujete hru aktuálnemu stavu sveta, vesmíru a vôbec. Táto hra má však jedno špeciálne pravidlo, s postupujúcim časom vám vždy zmizne z ruky nejaká karta a vy musíte hrať bez nej.

Pri softvérových projektoch je to veľmi podobné. Na začiatku máte k dispozícii všetky tromfy. Vyzerá to, že uhrať túto partiu bude hračka vďaka novej technológii, novým prístupom, agilnejším metódam. Začnete hrať a ani sa nenazdáte. Mesiac je preč a čas zoberie jednu kartu z vašich rúk. Poviete si: “Nevadí, to je stále v kľude.” Ručičky na ciferníku opíšu niekoľko málo kruhov a je ďalší mesiac s ďalšou kartou preč.

Tento vzor upozorňuje na to, že je dôležité počítať s časom a nenechať sa zaskoči tým, že z ruky vám miznú karty. Čím projekt postupuje ďalej, tým klesá miera flexibility, ktorou môžete riadiť kam sa projekt poberie.

Vzor “28. Time Removes Cards From Your Hand” je pekne popísaný v knihe Adrenaline Junkies and Template Zombies.

Doplním ešte text jednej pesničky od Greenhorns:

Čtyři bytelný kola má náš proklatej vůz,
tak ještě pár dlouhejch mil zbejvá dál, tam je cíl,
a tak zpívej o Santa Cruz.
Polykej whisky a zvířenej prach,
nesmí nás porazit strach.

Jen tři bytelný kola

Jen dvě bytelný kola

Už jen jediný kolo má náš proklatej vůz,
tak ještě pár dlouhejch mil zbejvá dál, tam je cíl
a tak zpívej o Santa Cruz.

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Further info

  • Badges

  • Video channel

  • Learning

    Grow your brain.
  • Tags

  • Topics

  • May 2013
    M T W T F S S
    « Feb    
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • Comments