6. October 2010

Singleton je antipattern

Medzi návrhové vzory sa priplietol aj jeden nepodarok, ktorému sa hovorí singleton.

Sám o sebe singleton nie je zlý. Zlé však je, že vývojári majú tendenciu skĺznuť k jeho abnormálnemu nadužívaniu. Keď to poviem inak: namiesto používania rozumu a dobrého dizajnu používajú singletony.

Singleton znižuje možnosti rozširovania a testovania aplikácie. Osobne by som ho označil skôr za antipttern, než pattern.

Ak sa začnú v projekte množiť singletoni geometrickou radou, tak máte problém. Dôsledky premrštenej singletonizácie vedú doslova do vývojárskeho pekla. Softvér môžete rovno zahodiť.

Typicky vývojár singletonom supluje neexistenciu globálneho stavu a nedostatok znalostí o iných možnostiach riešenia.

Takže prosím. Pozor na singletona, ak vám niekto povie, že je to skvelá vec, mala by sa vám v ušiach rozoznieť varovná siréna.

Existujú prípady, kedy má použitie singletona význam, ale aj vtedy je nutné postupovať opatrne.

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.

17. June 2009

Vzor: Prekvapenie!

Náročný projekt. Na všetkých je kladená vysoká záťaž. Tu dostane manažér nápad, že by bolo dobré zdvihnúť motiváciu ľudí. Tak zvolá všetok pospolitý ľud z projektu. Ľud preruší debuggovanie, vystavovanie faktúr, konzultácie s klientami, prácu na dátových poliach a húfne sa prihrnie do míting rúmu.

Projektový ľud diskutuje, čo sa bude diať. Zvyšovať platy? Prepúšťať? Všetko je možné.

Vtom vstúpi sám veľký manažér a asistentka za ním nesie nejakú krabicu.

“Drahí účastníci projektu. Pracujete tvrdo a preto sme sa My Manažment rozhodli odmeniť tých najschopnejších z Vás.”, manažér vystrúha 1.5 kW americký úsmev.

Začne vyvolávať mená ľudí. Ľudia postupne chodia a berú z rúk manažmentu cetky ako USB kľúče, dáždniky, poukážku na obed v reštaurácii.

Bolo “odmenených” cca 30 ľudí z celej pospolitosti projektového ľudu, čítajúceho 100vku osôb.

Myslíte si, že sa týmto podarilo manažérovi zlepšiť atmosféru?

Nie, nepodarilo. Pretože ľudia, čo dostali USB cetky, dáždnik cetky sa cítia podvedený. Do projektu vložili hodiny svojho času, pracovali vo voľnom čase, bez nároku na preplatenie hodín, aby projekt dokončili. Cetku od manažmentu vnímajú ako lacný trik, ktorým si ich chce kúpiť.

Chlapík, čo dostal poukážku na obed pre dvoch, sa po skončení mítingu zastaví za sekretárkou a vracia jej poukážku so slovami: “Keby som prišiel za manželkou s touto poukážkou ako odmenou za všetky nadčasy a víkendy, čo som strávil na projekte, tak ma zastrelí. Zoberte si to.”

Ľudia, čo nedostali nič sa cítia dotknutý, že manažment nedokázal rozpoznať ich prácu a znechutene odchádzajú debuggovať a vymáhať nezaplatené faktúry od klientov.

Takže manažérovi sa Prekvapením podarilo dosiahnuť úplne opačnú reakciu než chcel.

Tento vzor je pekne popísaný aj v knihe Adrenaline Junkies and Template Zombies, ako vzor Surprise!

Čo dodať? “Prekvapenie!” rozhodne nie je príjemný zážitok. Preto dajte pozor na to, akým spôsobom odmeňujete ľudí vo vašom projekte. Aby Prekvapenie, nebolo Prekvapením pre vás.

16. June 2009

Vzor: Pozitívna spätná väzba

Určite ste boli na nejakom koncerte alebo folklórnom vystúpením, do ktorého musela byť zapojená osoba s nálepkou zvukár. Dobrého zvukára spoznáte tak, že o ňom počas predstavenia neviete. Zlého zvukára spoznáte jednoducho.

“Ahóój.” škríp, písk, prásk, “raz”, túúúúúúd. “Nejak to ne…” huííííííííííí, PRÁÁÁSK

Namiesto nádherného koncertu dostanú poslucháči do uší dávku zvuku, za ktorú by sa nemusela hambiť ani Trash Metalová kapela.

Tak, tomu sa hovorí pozitívna spätrná väzba.

Pozitívna spätná väzba alebo kladná spätná väzba (angl. positive feedback) je informácia získaná systémom, ktorá násobí alebo zosilňuje odchýlku od normy a pokiaľ nie je obmedzená, vedie k deštrukcii systému. – Wikipedia

Je zrejmé, že pozitívna spätná väzba vôbec nemusí byť pozitívna.

A kde v IT toto predstavuje problém?

Predstavme si situáciu, kedy riešite pád servera. Keď ho vyriešite, zistíte, že opravou prestal fungovať web mail. Keď opravíte web mail zistíte, že Járovi prestal fungovat doručovací protokol a databáza prešla pod čínsku samosprávu, tak vracia len rozsypaný čaj (花茶).

Po každom kroku si myslíte, že ste o krok bližšie k stabilite. Vlastne máte pravdu. Až na to, že tých krokov je 100x viac, než ste predpokladali.

Tento problém sa objavuje pri riešení problémov. Riešením zdanlivo triviálneho problému sa zamotáte do siete omnoho komplikovanejších problémov. Samozrejme ich vyriešite, za čo vám je odmenou ďalší level, v ktorom na vás číhajú nové netušené problémy.

Inak povedané, čím viac problémov vyriešite, tým viac problémov sa pred vami objaví. Pričom tieto problémy musíte riešiť v polovičnom čase. Pokiaľ si včas neuvedomíte, že ste v pasci, kladná spätná väzba si vyberie svoju cenu. No a vy sa po celom dni/týždni/mesiac/roku (nehodiace sa škrtnite) zvalíte bezvládny(a) na posteľ.

Ako z pozitívnej spätnej väzby preč? Jednou z možností je prerušiť prúd udalostí. Keď zvukár včas prepne na iný mikrofón, väzba zanikne. Druhou možnosťou je použiť obmedzovač rýchlosti, takže neprekročíte zvládnuteľnú rýchlosť riešenia problémov. Rýchlosť sa dá obmedziť serializáciou úloh do zoznamu TrebaUrobiť (Todo).

Používate inú techniku obmedzenia kladnej spätnej väzby?

  • 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