1. Introduce small change.
2. Wait and watch the impact. It may take some time to proliferate.
3. Learn about consequences.
4. Point out broken old parts which should be removed or replaced.
5. Prepare stubs and fixes.
6. Dry run. Prepare for quick rollback.
7. Repeat steps 4-6 until you’re sure.
8. Detonate the change.
9. Get ready to fix stuff that breaks during aftershocks.
10. Take a break, enjoy new system and learn something new.
12. May 2013
How to improve complex software system in 10 steps
20. October 2012
Observation of software system: Starting with idea
Idea. Idea is starting point for life of software system. Pure raw idea and vision of future able ignite spark of hope that new software could work.
First stages of system evolution are very vulnerable. Idea need to form protective shell from enthusiasts who are helping to grow it. Idea also needs power and resources to survive. Enthusiasts must form some form of protective structure. It could be startup.
Idea is safe for the time being. It starts growing and eating more and more resources.
Time is passing. Enthusiasm is depleting. Dwindling resources could barely support life of idea.
Key turning point. Idea must transform into system which is able to sustain next phases of its life. It must turn into the system which is able to acquire new resources. Sell or bankrupt.
Luck, serendipity or deus ex machina. Somehow it starts selling. Early adopters begin to emerge. They like new system. They sense that it could become something great.
Idea is adapting protective its shell. Startup is no longer viable solution, because original enthusiasts are nearly exhausted. They spent many many hours and sleepless nights to push this idea forward.
Idea is transforming startup shell into company shell. First it is small, but it is growing.
Transformation will take some time. Software system is growing and consuming more and more resources. Balance of income and consumption is critical for survival of idea.
Maintenance. Software system has been around for several years. Idea prospers. New things were introduced with blinding speed, but this is slowing down over the time.
New changes in software system are causing pain. Idea doesn’t like it.
Idea must protect itself and its system. New defensive processes will emerge. Idea is able to deflect all dangerous changes with carefully designed processes.
System continues to grow and attract more resources. It is obvious that everything is ok.
Unfortunately entropy in software is growing. Hidden. Protected. Old parts of system are becoming legacy.
System starts to deflect even good changes by making them hard to implement. Legacy became so big that there is no way around.
Even minor changes must be introduced with careful precision of surgeon. Adding just one line of code to the system could take several days.
Legacy became burden. Development processes are slowing down. Maintenance is burning tremendous amount of resources.
This is a deadly trap. There is no way out. For some companies it is true.
One approach could be to set aside very high amount of resources. Develop wast change and then deploy it in one BIG STEP. It seems to be right! Welcome to booby trap.
More reasonable approach is to diverge small amount of resources from maintenance furnace. Remove clutter and legacy by small steps in the time. Keep a steady flow.
18. May 2011
La Chapelle
Things are changing. Sometimes it makes me sad.
We were heading toward our favorite restaurant La Chapelle in Brno.
But something was wrong.
No lights.
Darkness inside the building.
No music, no musicians, no laugh. Simply closed.
Reason was written on the blackboard for menus.
Changing owner.
That was shock.
Has been and gone.
I do not know what happened. It is hard to keep restaurant these days.
I have to say big thank you to former owners for all their work.
La Chappelle had a style and atmosphere. Thanks for that and I wish them good luck!
29. March 2011
Googlingrad
Brno bolo dlhú dobu známe ako Šalingrad, podľa slávnych šalín. Pokiaľ neviete, čo je šalina, neboli ste v Brne
Situácia sa začína dramaticky meniť. Google postupne zaplavuje celé Brno.
Najskôr to bolo nenápadné. Google obsadil niektoré šaliny, premaľoval ich na bielo a napísal na ne, že Google Mapy sú skvelé. Zo šalín sa tým pádom stali Googlelíny.
Keď chcel človek nastúpiť do Googlu, tak nemusel lietať nikam do Írska na pohovor. Stačilo počkať pár minút, prihnala sa Googlelíná a človek mohol nastúpiť. Nepačilo sa vám v Googli? Prosím, odíďte, ale až na zastávke.
Ďalšia invázia sa rozmohla pred pár týždňami. Google vytesnil z reklamných plôch rôzne menšie lokálne manufaktúry ako Miele, LG, Panasonic a pani s harmonikou. Obsadil hlavné uzly vrátane Tesca.
Zatiaľ ešte niekoľko vekých megabannerov si drží svoje pozície. Koncentrácia Chromu v meste dosahuje kritické hodnoty.
Šalingrad sa pomaly, ale isto mení na Googlingrad.
15. March 2011
It’s not question of IF
Docu-drama End Day produced by BBC – 2005.
“This is the story of just one day…”
Part 1/4
Part 2/4
Part 3/4
Part 4/4
6. March 2011
Just another language
There are miriads of computer languages. It seems to me that developers are trying to find better and better way how to communicate with computer.
Today you have to know many languages to get any reasonable job done. Web is based on many components and services that have to talk together. Those services also must understand each other.
Situation is even more complicated when you start to building UI over these services. Different language = different UI components = different UI paradign = different errors.
Ok, let’s start. Build app that works with few backends and systems.
Let’s be cool and put app on App Engine. We need Python.
We need some UI interface. We need HTML.
We need some templating language. We need Django.
We need some fancy features in UI. We need jQuery and JavaScript.
We need some crossbrowser feature for handling files. We need MXML and ActionScript.
We need communication with some REST services. We need JSON.
We need to implement some enterprise communication connector with enterprise system. We need Java and Bash.
We need to launch some internal processing with some CGI portals. We need Perl.
We need to grab some data from database. We need SQL.
We need some high performance backend for processing images. We need C/C++.
We need to provide integration for some web portals. We need PHP.
We need human readable structured data. We need XML.
We need to talk with some enterprise backends. We need SOAP.
We need to provide component form MS platform. We need C# and F#.
We need to have fancy frontend for Mac world. We need Objective-C.
We need to have some continuous integration. We need Maven.
We need to implement domain specific things. We need domain specific language.
And so on…
I don’t know, but it seems to me little bit insane. This is just small list of mainstream languages for relatively small app.
I’m not talking about different APIs, different frameworks. IT world is getting more and more complex.
Solution? Is there way out of this maze?
It reminds me of few sentences from Zen of Python:
- Simple is better than complex.
- Complex is better than complicated.
31. December 2010
Revízia 2010
Poďme sa pozrieť na rok 2010. Čo všetko sa udialo? Nebolo toho veru málo.
3. 1. 2010 Cestoval som neexistujúcim vlakom a do iného mesta.
10. 1. 2010 Aj CMS systém môže byť deravý ako rešeto. Bezpečnosť web systémov býva niekedy veľmi otázna.
13. 1. 2010 Pomocou Flixelu je možné vytvoriť jednoduché plošinovky.
13. 2. 2010 Malé zamyslenie na tému amerických softvérových patentov: Pacho Hybský a Patent Americký zbojník. Pre zaujímavosť doplním, že keď v US podáte žiadosť o patent a samotný patent potom nepodáte, tak už nemôžete podať žiadny ďalší patent.
23. 2. 2010 Vynikajúca prezentácia od Russela Browna o histórii Photoshopu.
30. 3. 2010 Pracuj ako deň pred dovolenkou.
10. 4. 2010 – piatok. Apple zablokoval používanie third party technológii na svoje platforme. Spravil to tesne pred uvedením novej Adobe CS5, ktorá mala obsahovať aj nástroje na balenie aplikácii pre iPhone. O pol roka neskôr Apple toto obmedzenie zrušil.
12. 4. 2010 – pondelok. Adobe uviedlo CS5. Dlho sľubovaný zázrak s Flash Playerom a iPhone aplikáciami sa nekonal.
28. 4. 2010 Zaujímavý podcast na tému Softvérová archeológia.
22. 5. 2010 Adobe obmieňa stratégiu a publikuje nástroje pre prácu s HTML5.
28. 5. 2010 Opera je omnoho rýchlejšia než zemiak.
24. 6. 2010 Problémom softvéru je jeho neviditeľnosť.
4. 8. 2010 Google zastavil projekt Google Wave.
24. 8. 2010 Vyhliadky do budúcnosti HTML5? Čierne
6. 9. 2010 Zaujímavé JavaScriptové frameworky.
13. 9. 2010 Na veľtrhu v Brne sme predstavili niekoľko RIA aplikácií.
19. 9. 2010 Zverejnené video z WebExpo 2009 – Když něco rozeberem, tak leda debuggerem – cez 2000 pozretí videa
29. 9. 2010 Šokujúce zistenie: Vedci dokázali, že písanie softvérových testov nespôsobí výbuch hlavy vývojára.
6. 10. 2010 Už mnoho projektov zakapalo na nadužívanie singletona. Tak som zosmolil jeden varovný článok.
15. 10. 2010 Aké veľké boli softvérové firmy v roku 2010?
21. 10. 2010 Automatizácia je základ softvérovej produkcie. FlexMojos je neodmysliteľný nástroj pre enterprise level Flex aplikácie.
15. 11. 2010 Na konferencii “Od virtuality k realite”, sme predstavili platformu Srobick.
26. 11. 2010 Pri vývoji RIA je vhodné použiť aj Hudson.
29. 11. 2010 Prednáška o C++ na FI MUNI s doplneným obsahom.
20. 12. 2010 Box2D – príklad ako dostať C++ aplikácie na web.
Čo nás čaká v roku 2011?
Vyššia interaktivita web aplikácií. Tam kde bol Flash/Flex dlho priekopníkom, tam sa dostávajú JavaScriptové frameworky. Menšie rýchlejšie, efektívnejšie. Vzniká lepšia možnosť výberu vhodnej technológie. Flash/Flex sa posunie ďalej v oblasti vývoja enterprise a mobile aplikácií. Zaznamenáme ďalšie priesaky konceptov z funkcionálneho sveta. Pekným príkladom je jQuery. Dôjde k čoraz častejšej fúzii technológii. Vývojár bude musieť poznať viac než jeden jazyk a viac než jednu programovaciu paradigmu.
Ďakujem, že si sa v roku 2010 zastavil(a) na tomto blogu. Dúfam, že prídeš aj v roku 2011 a nájdeš tu niečo zaujímavé, niečo poučné a niečo zábavné.
Všetko dobré v roku 2011!
- Juraj
24. November 2010
Konferenčný šok z budúcnosti
Sedíte na prestížnej konferencii vo svojom obore. Firmy sa predbiehajú, aby ukázali to najlepšie čo majú na sklade. Nad väčšinou mávnete rukou. Nezvládnutá prezentácia, tisíce bullet pointov na jeden slide, malé písmo a prednášajúci, ktorý používa rôzne kombinácie eeeeehm, ooooohm, äääähm.
A teraz príde zápletka.
Na scénu vystúpi suverénny prednášajúci. Najskôr si pomyslíte, že je to len namyslený chlapík z marketingu. Ale ono nie. Postupne rozbaľuje tému. Ukazuje nové možnosti. Nové horizonty. Vyššiu efektivitu práce. Vám spadne sánka. A on nekončí.
Krok po kroku devalvuje hodnotu všetkého, čo ste sa za tie roky pracne naučili. Má zjavne celú prezentáciu veľmi dobre pripravenú. Nechystá sa skončiť. Ukazuje jednu úžasnejšiu vec za druhou. Začínate pociťovať čoraz silnejší pocit frustrácie.
Moment! To nie je všetko! Teraz spustil ohňostroj úžasných noviniek, proti ktorému vyzerá váš projekt z minulého týždňa, ako úplne trápny a nepodstatný.
Ďalšie detaily nevnímate. Pocit frustrácie a bezvýznamnosti vás prepol do apatického módu. Ďalšie výbuchy ohňostoju s novinkami vnímate už len cez akúsi hmlu. Hovoríte si, prečo radšej nepracujem v zelovoci.
…
Pocit, ktorý prežívate je jednoznačne šok z budúcnosti. Nie je to nič netypické. Kvantum nových informácií jednoducho vytvára konflikt s tým, čo už poznáte. Navyše pri profesionálnom načasovaní prezentujúceho, môže mať kombinácia informácií veľmi silný dopad.
Je dôležité si uvedomiť, že veci nie sú tak cool, ako ich marketing navarí. Dobrou obranou je znalosť histórie a vedieť, že aj veľké firmy stiahnu po roku jeden zo svojich hlavných projektov. Je dobré vedieť, že pri skvelých veciach sú hviezdičky (a také tie malililinké písmenká v zmluve), ktoré menia veci na nie-až-tak-skvelé-a-sakra-čo-to-je?
Tiež je dobré vedieť, že skvelé veci sporadicky nefungujú. A vedieť, že technológie odchádzajú a ľudia zostávajú. A že v zelovoci majú práve voľné miesto. No a hlavne, že tie novinky sú určené pre vás a bez vás sú bezcenné. Pretože novinka bez využitia, je len ďalším titulkom v novinách, ktoré zajtra odnesú do zberu.
…
Takže sa nadýchnite. Ukľudnite sa. A dopozerajte tú prezentáciu do konca. Možno sa dozviete niečo vtipné.
10. October 2010
TEDxNASA – zdroj inšpirácie
Narazil som na výborný kanál TEDx-u. Odporúčam: TEDxNASA.
Malá, ale absolútne geniálna ukážka: Mike Rayburn – What If
5. September 2010
Zmena digitálneho sveta
Digitálny svet bol dlho doménov rôznych kmeňov počítačovníkov. Áno, slovo bol je použité zámerne. Slovo dlho, znamená niekoľko dekád. Kmene počítačovníkov sú rôzne skupiny IT ľudí, či už enterprise, close source alebo open source. Kmene sa vyznačovali príznačným slangom, ktorému nepočítačovník nerozumel. Typicky používali nejakú anglicky znejúcu hantýrku.
Tieto skupiny počítačovníkov boli nesmierne dôležité, pretože položili základ pre nové možnosti digitálnych technológií.
Tak ako ľudstvo vymyslelo koleso, tak sa za posledné dekády podarilo objaviť niekoľko nových vynálezov. Spomeňme si tie významnejšie, ktoré lomcujú svetom dnes. Za základný objav jednoznačne patrí Internet, na ktorom bola objavená blogosféra. Od blogosféry je už len krok k sociálnym sieťam.
Zoberme si tieto tri vynálezy a pozrime sa, kto ich využíva.
Internet bol prvý a tak väčšina jeho používateľov patrila práve do kmeňov počítačovníkov. Pokiaľ človek nepoznal pojmy ako HTTP, TCP a port, tak si moc neškrtol.
Postupne sa ale darilo programátorom stavať technológie tak, aby nevyžadovali hodiny a hodiny strávené za počítačmi. Umožnili tak nástup blogosféry. Kto mal potrebu niečo napísať, založil si blog a začal publikovať.
Transformácia technológie pokračovala ďalej. Tentokrát to neboli technicky a publikačne založení ľudia, kto priniesol adaptáciu sociálnych sietí. Sociálne siete vďačia za veľkú časť svojej obrovskej popularity práve mamičkám na materskej “dovolenke”. Dokonca sociálne siete dokázali zbaviť ľudí počítačo-fóbie.
Ešte raz zopakujem jednu podstatnú vetu: digitálny svet bol dlho doménov rôznych kmeňov počítačovníkov. Bariéra pre vstup do digitálneho sveta sa zmenšila. Digitálny svet už za tie roky pozná aj diakritiku. Dokonca nerozpráva sa v ňom výhradne anglicky. Používateľ dokonca nepotrebuje prejsť vysokoškolským kurzom na prežitie v digitálnej divočine.
Počítačovníci sú naďalej veľmi dôležití, pretože umožňujú udržanie a chod digitálneho sveta.
Časť počítačovníkov však jednoducho odmieta priznať, že by mohol byť na svete aj niekto iný, kto používa aplikácie a nevie po anglicky alebo dokonca nevie základy HTML. Prípadne niekto, kto si nevie skontrolovať zapnutý Caps Lock pri písaní hesla.
Takýto netolerantný počítačovník dokáže bežného človeka zastrašiť tým, že vychrlí takmer neartikulovanú zmes technologických slovíčok a skratiek typu: RTFM, XML a RSS. Ako sa brániť? Netreba prepadať panike. Takmer staroveké príslovie hovorí: “Facebook má skupinu na všetko.” Prípadne môžete skúsiť poznamenať, že Google Chrome6 už v adrese nezobrazuje ani http protokol
Digitálny svet sa nám postupne mení, tak ako sa mení aj ten reálny. Na záver už len pripomeniem 5 typických fáz, ktoré sprevádzajú zmenu: šok zo zmeny, popieranie a snaha o zastrašenie zmeny, ignorovanie zmeny, akceptovanie zmeny, ocenenie prínosu zmeny.


