Archive for the ‘Uncategorized’ Category

h1

Taškařice na Praze 12

10.Březen 2011

Úvodem mimo téma. Píšu první příspěvek po půl roce. Odmlka byla způsobená nejen mou pracovní a rodinnou zaneprázdněností, ale také nechutí něco psát. Nechutí pramenící z nedostatku témat, neschopností dojít k závěrům ohledně věcí honících se mi hlavou a snad až agresí, s kterou někteří lidé prosazují svou verzi pravdy.

Teď k té taškařici, jde o povolební situaci na Praze 12. Jak to začalo? Po mnoha pokoušeních osudu se dlouholetému starostovi Petrovi Hánovi z ODS nepodařilo vybrat zhoupnutí a plácl sebou na zem. ODS zaznamenala v místních volbách porážku od TOP09 a v těsném závěsu za sebou měla ČSSD, koalici odpůrců, komunisty a Věci veřejné. Jak bylo jasné již před volbami, ODS měla velmi blízko k místní TOP09 a po volbách vytvořili nerozdělitelnou dvojičku. Samozřejmě ve snaze utvořit platformu, bez které to nepůjde. TOP09 úspěšně zkusila taktiku vloudění se do cizího tábora a pak s cennými informacemi rychlý úprk zpět do bezpečí. Jenže ouha. Svobodomyslní véčkaři brzy pochopili, kde je menší zlo a podle toho se rozhodli. Máme tu slabou, ale přesto Praze 12 vládnoucí ČSSD s podporou koalice odporu, komunistů a véčkařů. Počtem politických subjektů silná formace 9 politických subjektů (ČSSD, KDU-ČSL, SZ, KONS, KAN, Suveren., ČPS, KSČM, VV).

Takřka okamžitě po zvolení nového vedení ODS a TOP09 nezvládly svou porážku a na místo zastupování svých občanů utekli ze hřiště. Tam kují dodnes pikle a kde to jde, plivou špínu na vše, co se současného vedení Prahy 12 týká. Nějaké spytování svědomí, proč ODS u svých voličů neuspěla či proč TOP09 zastupují lidé tak blízce svázaní s bývalým vedením radnice se nekonalo. Petr Hána byl dokonce za svou činnost odměněn pozicí předsedy výboru ZHMP pro oblast dopravy. Konstruktivní jednání se z této strany očekávat nedá, naopak si jistě rádi při každé příležitosti kopnou. Trošku mě děsí představa, že si kopnou i prostřednictvím obstrukcí na magistrátu vůči konstruktivní aktivitě nového vedení radnice. Takové jednání, třeba v oblasti veřejné dopravy a dopravních opatření vůbec, investic do veřejných prostor apd. mohou snadno odnést občané městské části. Je ctihodné, jak aktivně se TOP09 dokáže čertit nad spoluprací nové radnice s komunisty. Pravdou ale je, že občany více než podpora komunistů zajímají hořící lokální problémy (kriminalita, chyby v oblasti výstavby, problémy s parkováním, zaostalost v oblasti veřejné dopravy, problémy v oblasti školství už od mateřských škol, špatná dostupnost a kvalita zdravotnictví), které dopustila ODS spolu s mnoha lidmi z vedení místní TOP09. V tomto ohledu jsem zatím ze strany TOP09 konstruktní přístup nezaznamenal.

Teď druhá strana barikády. Jinak totiž pozici nového vedení radnice nazvat nelze. Práce vidět je, pomalu se začínají objevovat první signály o zlepšování stavu zejména v oblasti zveřejňování informací. Na ty opravdu důležité oblasti je ještě brzy a ještě dlouho budou probíhající aktivity jen setrvačností dřívějších rozhodnutí. Mnoho energie je ale také vynakládáno na aktivní odpor vůči opozici a i zde se střílí silnou municí. Opakují se monology plné polopravd a pokroucených faktů, řve se na místo argumentů a bouchá dveřmi na místo dialogu. Přijde mi to nedůstojné. Neškodilo by více asertivní a důstojnější jednání, být lepší než ten druhý i svou prezentací. Teď jsem mluvil především o koalici odporu. Ze strany ČSSD se toho proti předchozím letům na Praze 12 nezměnilo, očekával jsem větší aktivitu spojenou se snahou ukázat pražanům dostatek důvodů, proč by o volbě ČSSD měli častěji uvažovat.

Tyhle barikádní boje či chceme-li obléhání hradu mají jedno společného. Mnoho energie je vynaloženo nesprávným směrem. Z mého úhlu pohledu to bohužel více připomíná vyřizování si osobních účtů a někdy i boj o korýtka než snahou získat si svým jednáním dlouhodobě voliče. Místní politika není fotbal, voliči se nechtějí koukat na zápas, ale volí si své zástupce a ti se jim mají postarat o lepší budoucnost. Konstruktivně prosím a třeba zatím jen návrhy. Když budou dostatečně dobré, zaujmou více občanů a s jejich silou se dá mnohé dokázat. Třeba i před příštími volbami!

h1

Zákaznický software potřebuje vývojáře, ne programátory!

17.Červenec 2010

Mou profesí je vývoj zákaznického software. Zákazník má problém a jeho řešením je software – nástroj, který mu pomůže. Jde o složité systémy, jejichž vývoj trvá měsíce až roky a podílí se na nich desítky lidí. Má role je zpravidla zastřešit vývoj, navrhnout a realizovat část systému. Má práce končí úspěšným nasazením do produkce. Vývojem software se profesionálně zabývám více než 15 let. Při vývoji vždy docházelo k problémům, ke kterým člověk profesionálně přistoupil a řešil je. Co mě trápí je povaha zvětšující se části problémů. Dá se říci, že jsou to problémy, co si způsobujeme sami.

Svou pracovní kariéru rozděluji na 3 období. Období první je spojeno s razantním nástupem informačních technologií do zaostalého prostředí, jakým náš region byl. Vyrostl jsem na osmibitech, pak jsem přesvědčil rodiče o potřebě mít doma PC a brzy zjistil, že z pokusů s technologiemi se dá udělat byznys. V té době jsem dělal všechno, hardware, sítě i software včetně vývoje. Vývoj se mi líbil nejvíce a dostal jsem se do malé softwarové firmy. Zákazníkovi jsme často pomohli s dodávkou hardware, zřízením sítě, výběrem software (Novell Netware + MS DOS na klientech a pár krabic s dalšími sw produkty, později prostředí Windows a SQL databáze) a jeho speciální potřeby jsme řešili dodáním vlastního software. Mluvili jsme přímo s budoucími uživateli, zjistili, co je nejvíce trápí a navrhli, co dodáme. Výstupem byly jednoduché specifikace, samozřejmostí pravidelné navštěvování uživatelů a ukázky/dodávky průběžně vyvíjeného software. Uživatelé často software od prvních dodávek prototypů už používali a my postupně přidávali další a další funkčnosti. Jeden program vyvíjelo jen pár lidí a ti dělali všechno, chodili za klientem, vymýšleli a programovali, testovali a nakonec ještě pár let opravovali chyby. V této skupince fungoval princip mistr a žák, často už tehdy na principech Extreme Programmingu. Fungovala zastupitelnost, problémy se řešily napřímo (a často navíc přímo u zákazníka, nainstalované vývojové prostředí u zákazníka bylo běžné …) a rychle. Pokud už měl zákazník IT oddělení, šlo zpravidla o správce sítě a díky jejich plné důvěře v nás nám nekladli žádné byrokratické pasti. Většina členů softwarové firmy se přímo podílela na dodávkách zákazníkovi a práce byla velice efektivní.

Období druhé přišlo s nástupem Internetu. Je třeba si uvědomit, že to nebyl soukromý sektor, kdo s  Internetem přišel.  Soukromý sektor zde nebyl zrovna motor vývoje. Zájem o Internet přišel až v okamžiku, kdy se začal dramaticky zvedat počet uživatelů, kteří byli zároveň klienty soukromého subjektu (třeba banky). Banky lákaly úspory, které jim nový elektronický kanál dokáže zajistit, a objevili se klienti, kteří takovou službu vyžadovali. Nastala velká poptávka po webových aplikacích ze strany představitelů byznysu i uživatelů Internetu. Dodávka nové webové aplikace často znamenala zásadní změny v IT společnosti, kde třeba bankovní systémy fungovaly z pohledu IT na prehistorických technologiích. Výsledkem byl velký boom pro softwarové firmy schopné dodávat potřebná řešení. Šlo o velké dodávky, vývoj probíhal v mnoha projektech a já na tyto projekty ve velmi dobrém vzpomínám. Snad silou zvyku ještě stále platilo, že vývojový tým byl v blízkém styku s byznysem zákazníka, byznys měl představy a vývojáři navrhovali nástin řešení od stolu. Často už pár hodin po poradě s byznysem začali vývojáři software tvořit či měnit, všichni věděli, co mají dělat. Komunikační šum byl nízký a dodávalo se, co se dohodlo. Vzpomínám si na kreativitu, kterou někteří vývojáři předváděli (vymysleli, v krátkém času vykomunikovali se spokojeným zákazníkem a často třeba i po večerech dobrovolně do software přidali). Kreativita, to je možná to, proč tehdy bylo slovo challenge – výzva bráno celkem pozitivně. Zúčastnění to často brali jako hru. Radostí bylo sledovat, jak se lidé učili nové technologie, zkoumali, zkoušeli nová řešení. Tlak na termíny ještě tehdy nebyl tak silný, byl dostatek času software vyladit jak z pohledu chybovosti tak rychlosti. Vývojáři nečekali, až jim o chybách někdo řekne a nastaví priority, odladění byla samozřejmost už během vývoje a úročily se zde zkušenosti, schopnosti a motivace členů vývojového týmu. Ti věděli, co od software zákazník chce, pamatovali si i důraz, jaký na jednotlivé funkčnosti lidi za byznys na poradě kladli. Fungovaly principy osobní zodpovědnosti, čemuž odpovídala kvalita vývoje. Dnes už s úsměvem vzpomínám, jak jsme tehdy byli schopni do banky dodat novou verzi a dostat jí do produkce ještě ten samý den. Výsledkem byl kvalitní software a spokojený zákazník.

Poslední období už prožívám poměrně dlouho a problémy, se kterými se setkávám, mi radost nedělají. Zcela zásadní problém vidím ve virtuálním světě, v jakém tým vyvíjející software pracuje. V období prvním vývojáři chodili za uživateli osobně, v období druhém chodili alespoň na občasné porady s byznysem. Nyní se často setkávám s tím, že člen vývojového týmu v životě člověka z byznysu neviděl. Nemá ani představu o uživatelích. Informace o tom, co má tvořit dostává v podobě podrobné funkční specifikace či modelu. Hodně záleží na tom, kdo tyto vstupy připravil. Mohl to být zkušený architekt designér, který byl v pravidelném kontaktu s byznysem a nyní je součástí vývojového týmu. Mohl to ale také být někdo cizí. Nejhorší případ je, pokud je tvořil netechnický člověk, typicky analytik, který se na místo popisu toho, co je třeba zabýval návrhem řešení bez elementárních znalostí vývoje softwaru. V každém případě je zde velký prostor pro nepochopení toho, co je třeba a ztrátu kontextu. Dalším neštěstím je plánování, kdy se mnoho měsíců software tvoří bez kontaktu se zákazníkem. Vývojáři si vzájemně vybudují falešnou představu o tom, co má software dělat, pokud vůbec nějak mají! V době složitých distribuovaných systémů jsou realitou vývojáři tvořící něco, o čem vůbec netuší, k čemu a jak bude použito. Není nad to se pak bavit s někým, kdo jako správný představitel špionážní buňky zná pouze, kdo po něm software chtěl a koho jiného software používá. Vývoj v takovém prostředí nepovažuji ani za příliš výchovný. Dříve se mnoho lidí v takovém prostředí dokázalo rychle vypracovat ve schopné kreativní architekty a manažery schopné řešit jakýkoliv problém. Dokázali zúročit nejen své zkušenosti se samotným kódováním, ale také komplexním řešením problémů. Nyní je tato výchova výrazně utlumená. Navíc se zákazníkem členové týmu nepřichází do kontaktu ani na druhém konci. Stalo se zvykem, že řádné odladění software se naplánuje na konec vývoje a pak na něj nezbude čas. Já vím, jsou zde přece unit testy. Ano, ale ty co často vidím bohužel jen alibisticky testují programový kód se znalostmi pouze virtuálního světa. Aplikace se předávají buď internímu testovacímu týmu, nebo testování zákazníka. V obou případech testuje software někdo, kdo má jinou představu o tom, co má software dělat, ať už je to představa virtuální nebo je alespoň testovací tým v úzkém styku s byznysem zákazníka. Opravují se chyby, na které by vývojář při řádném ladění přišel sám (typicky technické chyby nebo mizerný výkon při větším množství dat, nedostupnosti jiného software apd.). Logickým důsledkem je hlášení chyb, které vývojový tým okamžitě považuje za změnové požadavky – protože přeci odporují vytvořené virtuální představě. Z oprav se stává bezmyšlenkovité kolečko stovek až tisíců záplat. Výsledkem je nekvalitní software odlišný od představy zákazníka.

Nespokojený je i tým vývojářů software. Někteří přijdou na to, že se takto mnoho nenaučí a posunují se na jiné pozice. Bohužel už nemají tak kvalitní základ, jako měli zkušení vývojáři dříve, což bude mít dopad na kvalitu IT architektů a manažerů obecně. Jiní mění projekty či firmy, často pracují demotivovaní a snad čekají na lepší dobu. Podobnou zkušenost mám nejen se zákaznickým softwarem, ale i vývojem sw produktů. Samostatnou kapitolou je offshoring (a nearshoring), kde jsou popsané principy neměnitelnou vlastností a je třeba s nimi počítat. Vývoj zákaznického software jsem vždy považoval za kreativní řemeslo. Trend degradující vývoj na výrobu v továrně se mi nelíbí. Kvalitní zákaznický software nemůže tvořit někdo, kdo bezmyšlenkovitě kóduje bez širších znalostí.

h1

Život v ulitě

14.Březen 2009

Prošel sem si obdobím ve kterém jsem se snažil o maximální sblížení s počítači a stroji vůbec. Možnosti strojů výrazně převyšovaly mé znalosti a zkušenosti. Existovala spousta směrů kam se rozvíjet. Ať jsem zkusil jakýkoliv směr, vždy to zpočátku šlo dobře. Dostavoval se rychlý progress a to mě motivovalo. Motivovalo a uspokojovalo. Zájem o lidskou společnost jsem měl celkem minimální. S lidskými bytostmi jsem neměl dobré zkušenosti. Všímal jsem si více komplikací než přínosů. Stroje se nesnaží potěšit, stejně tak se ani nechovají zákeřně. Stroje nemají inteligenci, chování strojů je vždy naplánované a vypočitatelné. To mi vyhovovalo, věděl jsem na čem jsem a měl jsem věci pod kontrolou. Také zaměstnání jsem si vybral takové aby s tím šlo dobře dohromady. Pár let jsem dokonce byl sklepním, přesněji garážovým programátorem. I v garáži může vzniknout software pro banky. Software s jehož pomocí hafo lidí každý den posílá peníze a kontrolujete stav konta :)

Postupem času mi život v ulitě přestal vyhovovat a já se začal soukat z ulity ven. Začal jsem mít větší zájem o dění mimo ulitu, našel nové výzvy a nové motivace. Ulitu jsem nikdy zcela neopustil, někdy jsem mimo ní a někdy se tam vracím. Důležitá je pro mě svoboda s jakou tak činím. Ulita už nemá zavřená vrátka.

Snažím se skloubit zkušenosti z ulity se světem mimo ní. Ulita byla hodně o strojích. Stroje navrhují velmi inteligentní lidé. Tvořiví lidé. Více umělci než dělníci v pásové výrobě. Technologie ve strojích použité jsou na výrazně vyšším stupni vývoje než je lidská společnost. Stejně tak postupy využíváné při údržbě a dalším rozvoji strojů jsou dál než bývá obvyklé v jiných oblastech. Nacházím tam spoustu inspirace i pro život mimo ulitu.

Follow

Get every new post delivered to your Inbox.