2016. május 13., péntek

Should we love or hate complexity?

LinkedIn - Should we love or hate complexity?
  •     Have you experienced efforts to simplify which have led to overly-simplistic solutions?
  •     Has your company mapped the interconnected nature of its business problems?
  •     Just as we have human consciousness, can an organization have consciousness?
  •     If yes, what does organizational consciousness mean to you?

Nice article, and I also like your questions, short answers
1: yes, that's what people and media calls "life", see "space" or "nuclear": truth vs. ideas;
2: I had to do it all the time with my systems, and lost my job because of that;
3: Should. Very much. But as individuals, we all fight against that, see Pink Floyd: The Wall;
4: Transparency and flexibility of structure and adult participants. None of them is popular or visible today.

I would only extend it with some of mine.

Business does not seek simplicity for implementing anything, but to convince others that it is the best, because that sells. Customers should buy the thing, not to understand it. That may be it a mobile phone or the business "plan" (see motivated reasoning) of the next startup company. You can't "sell" a solution if the buyer should learn in order to understand and compare it, because they feel uncomfortable with learning.
Personal experience, all the time.

Are we stupid then, because we complicate the things? Or simply we don't want to see the answer, and complicate it because that is an escape from the inevitable bad news? This is the natural operation of the human brain, and only exceptional people can handle it. However, these exceptional people have created the backbone of a global technical civilization, and to protect our planet from the natural side effects, we would need more that cave age politics and customer hordes.
Darwin is never about individuals but complete species, and works fine on homo... er... "sapiens", too.

My profession and passion is "applied philosophy".

I create complex sentences of simple words, that reveal the structure of the situation and therefore, give paths to the solution (be it a social or an IT task). I consider myself an adult - though I don't see adults among the famous people today. Of course, my words don't "sell well", but I don't care, I get enough money by solving "impossible problems" most of the time. I like your approach, and wish the best to the child in you - but growing up can also be fun! :-)

Tiny samples (of 800+ unread or quickly forgotten articles):
http://hajnalvilag.blogspot.hu/2015/05/a-prayer-for-human-mind.html
http://hajnalvilag.hu/projects/TasteOfLuck.pdf

Or here:
https://www.linkedin.com/pulse/how-destroy-civilization-lorand-kedves
https://www.linkedin.com/pulse/writing-source-code-evil-lorand-kedves

For heavy lifters:
http://hajnalvilag.hu/books/MondoAurora_en.pdf

Have fun!

2016. április 15., péntek

Atomisták, helló...

Nemrég volt egy (természetesen a szokásos értetlen csendbe fulladó) hasonlatom az atomenergiáról, íme:

A városi állatkertbe behoznak egy irgalmatlan nagy ketrecet. Méteres vasbeton falak, embervastag rudakból álló rácsok. A nép tódul oda, hogy ez aztán mekkora siker, hű, de megnézném azt az állatot, mekkora kunszt, hogy egy ekkora dögöt rácsok mögött tudunk tartani. Mert a szerencsétlenek önmagukhoz mérik azokat a falakat.

Csak egy fazon rohan az ellenkező irányba. Ő úgy számol, hogy ha a profitra vágyó állatkertészek ennyit költöttek a ketrecre, akkor nem akar a közelben lenni, ha valami nem pontosan úgy alakul, ahogy (ismétlés: a költségeket mindig farigcsáló) építők elképzelték. Arra ugyanis, hogy ezek a falak nem bírnak valamit, nincs forgatókönyv.


Ismétlem: nincs forgatókönyv. Csak azok az emberek, akik ott állnak a fronton, mint a fukushimai erőmű, azóta tüdőrákban meghalt vezetője, aki halála előtt nyilatkozott, hogy a dohányzás miatt volt rákos. Mert ahhoz semmi köze, hogy egy radioaktív xenonfelhőben vezényelte az elhárítást, és közvetlen utasítások ellenére szó szerint mindannyiunkat megmentett egy akkor nem is esélytelen, sokkal rosszabb kimeneteltől. Ha az áldozatát felfogni nem is vagyunk képesek, legalább ismerhetnénk egy igazi hős, Masao Yoshida nevét, ha nem is olyan híres ma, mint Anakin Skywalker, Kirk kapitány vagy Elon Musk.



Hát akkor íme egy illusztráció arról, hogy is néz ki, amikor a rácsok éppen hogy megtartják a Góliátot. Persze, filmekben is szeretjük, amikor a főhőst az utolsó pillanatban megmenti a forgatókönyv írója, Kirk kapitány nem elég, hogy néhány rúgással "megjavít" egy reaktort, de még túl is éli a halálát. A valós esélyeket figyelembe vevő (a történet első percében csúnya véget érő) filmekre nem lenne vevő a "nép". Nyilván itt is hátra lehet dőlni, hogy "végülis nem történt semmi komoly baj, hát nem így van?". Azon meg nem kell gondolkodni, hogy az elmúlt mindössze 40 év 7 olyan eseményét, amikor végül nem lehetett hátradőlni, tízezer évek múlva is figyelembe kell vennie az utódainknak. Jó eséllyel már most semmi más nem fogja őket ránk emlékeztetni... ha lesznek egyáltalán.

Az eredeti forrás: March 11th at Kakrapar: “A damn close run thing”. Néhány pikáns részletet kiemeltem és lefordítottam.
 


A délelőtti műszak reggel hétkor kezdődik. Az emberek bejönnek, felmutatják a belépőkártyáikat, átöltöznek, az étkezőben megreggeliznek; általában felkészülnek a munkára. Ez idő alatt két kémikus és két fizikus feladata az erőműben mintákat venni. Következésképpen a reaktor épülete üres volt. Ezt állítja a vezetőség. Kíváncsi vagyok, mit csinált az a négy ember, akinek a beosztása miatt éppen ott kellett volna lennie a baleset idején (délelőtt 9 órakor), és az is érdekes, hogy igényelhet egy teljes műszaktól több mint két órát csak az, hogy felkészül a napi munkájára!

Reggel 9 órakor az elsődleges hőcserélő rendszer (primary heat transport system - PHTS) nyomása lecsökkent. A vezérlőteremben próbáltak rájönni, hogy mi is történhetett, de kiderült, hogy semmire se mennek, hiszen a kamerákon keresztül csak egy gőzfalat láttak. A hűtőközeg elvesztéses baleset (Loss of Coolant Accident - LOCA) elkezdődött.

A LOCA bármilyen atomreaktorban súlyos probléma, egy CANDU típusúban viszont katasztrófához vezethet. ... mert a neutronokat lassító [a láncreakció fenntartásáért felelős] nehézvizes moderátor el van választva a hűtőrendszer nehézvizétől. Itt a hűtőközeg elvesztése nincs hatással a neutronok lassítására. A láncreakció [hűtés nélkül] addig folytatódik, amíg külső beavatkozással meg nem szakítják. Ez a beavatkozás nano - mikromásodperc idősávban kell megkezdődjön, az emberi reakcióidő erre alkalmatlan.

Két független leállító rendszer lép akcióba automatikusan a reaktorból érkező vészjelzésre. ... A két rendszer bármelyikének kiesése esetén Dél-Gujarattól elbúcsúzhattunk volna. Hálásak lehetünk, hogy mindkettő tette a dolgát, a reaktor leállt.

Sajnos a reaktor leállítása még nem a történet vége. A reaktorban az üzemelés során nagy mennyiségű másodlagos [óriási aktivitású] hasadóanyag keletkezik. Ezek továbbra is hőt adnak le. A reaktor leállítása csupán az ilyen anyagok keletkezését szakítja meg, de semmilyen módon nem hat a már létező mennyiség bomlásával járó hőtermelésre. Ezt "decay heat"-nek nevezik, mennyisége [a leállítás pillanatában] az üzemben lévő reaktor teljesítményének hét százaléka. Ha ezt a hőt nem sikerül elvezetni, még mindig katasztrófát okozhat, ahogy az Fukushimában is történt. A leállított atomreaktorok is képesek felrobbanni, és meg is teszik ezt, ha nem sikerül lehűteni őket.

Hűtőközeg elvesztése esetén a reaktormagban keletkező hő elvezetéséről a vészhelyzeti mag hűtő rendszer (emergency core cooling system - ECCS) gondoskodik. A rendszer működésének három fázisa a nagynyomású nehézvizes hőcserélő, a közepes nyomású könnyűvizes hőcserélő és az alacsony nyomású, hosszú távú keringető rendszer. Az elsődleges hűtőrendszerben keletkező kisebb szivárgások kezeléséről egy külön rendszer gondoskodik.

A reaktor 1993-as üzembe helyezését megelőző ellenőrzés során az ECCS rendszer nem felelt meg az előírásoknak. Dr P K Iyengar, az Atomenergia Minisztérium (Department of Atomic Energy - DAE) vezetője szerette volna, hogy az erőmű a nyugdíjazása előtt elinduljon, akár az ECCS ellenőrzésének megismétlése nélkül is.

...

Sekhar Bashu, a DAE vezetője tökéletes példát mutat csapatának amikor kijelenti: "a sugárzást sikerült a reaktor épületen belül tartani, a környezet nem szennyeződött". Ez ellentmond a ténynek, hogy a reaktor épületét a radioaktivitás csökkentése végett ki kellett szellőztetni. Indiában a radioaktív részecskék is tudják a helyüket. Az erőmű határain kívül a sugárzásmérő műszerek számára elérhetetlen dimenzióba távoznak.

Még tíz nappal az esemény után sincs rendben minden. Nem azonosított csövekből most is folyik nehéz és normál víz. A reaktor hideg leállás (cold shutdown) állapotban van, de az épületet most is kordon veszi körül. Csak "zöld" besorolású dolgozók mehetnek be, a "normál munkaerő" (a dolgozók több, mint 80%-a) továbbra sem. Annak ellenére, hogy a 3-as és 4-es egység építése folyamatban van. Az alvállalkozókat arra kérik, a "zöld" besorolású alkalmazottaikat hozzák Kakraparba.



Szeretném jelezni, hogy ez nem egy film forgatókönyve, NatGeo mese vagy ilyesmi, hanem a mi világunk ma, 2016-ban, a történet pedig csak egy újabb bejegyzés az alábbi elemzésem illusztrálására is használható listában. Azt is tudhatod, hogy a por, illetve biológiai rendszerekben felhalmozódó radioaktív szennyezés számára nem értelmezett "a világ másik fele", az időtávok pedig száztól százezer évig terjednek.

Vajon melyik dátum lesz a közeljövőben az a "mai nap", amikor az atomkatasztrófák listája új elemmel bővül? Úgy tűnik, még nem 2016. március 11. volt az. Viszont jelenleg úgy tűnik, két esélyed van: vagy te magad leszel annak a "soha nem látott méretű, előre meg nem jósolható" atomkatasztrófának közvetlen áldozata, amely végül minden egyes ember életét befolyásoló tényezővé válik - vagy minden utódod, mindenki, akit szeretsz és minden, amit valaha is fontosnak tartottál.

Üdvözöllek a valóság sivatagában


Persze, nem szeretsz ilyeneket olvasni. Nem szeretnéd felfogni, hogy a tévében, újságokban eléd festett világ, amelyben "élsz", nem létezik. És még csak MI (Mesterséges Intelligencia) sem kell hozzá, csak EO - Emberi Ostobaság. A felelősségtudat, objektivitás, hosszú távú gondolkodás szándékának teljes hiánya.

Megértem, hogy nem akarsz felébredni

Ezért vagyok Morpheus: az álmok és az alvás istene. És te ki vagy? Az a 90%, aki fel sem fogja, hogy az általa képzelt és számára festett világ nem létezik, nem érti a fenti szöveget és fülét befogva szalad vissza a megnyugtató mesék közé? Az a 9%, aki egyéni kiutakat keres? Vagy az az 1%, aki kétségbeesésében ki akar szállni az egészből?

Vagy az a mérhetetlen parányi rész, aki az 1%-on is túl, mindezek tudatában hajlandó nyitott szemmel járni?

Élőhalottak serege, sorakozó... 

Amit láttok, természetes folyamat, az emberi civilizáció evolúciós ugrásának kockázatos, középső szakasza. Akár szépen, akár kevésbé szépen, de megoldható, és a megoldás csak az utolsó utáni pillanatban valósulhat meg, amikor a közismert klisék végleg lejártak.


2016. március 13., vasárnap

AI Go Live :-)

LinkedIn - Dave Aron: Does a Computer Beating The World Go Champion Matter?

The short answer is: yes, very much. Firstly, it is a kind of a benchmark as to how far artificial intelligence is along. Go is a very difficult game, and a game of perfect information – there is no luck involved. Secondly, DeepMind have pushed some of the boundaries and techniques in intelligent decision making and optimization.

But third, and most intriguing to me, is that I believe in the future, we may solve tough real world problems by encoding them as game positions.

Do you know about The Treachery of Images?

This is not a pipe.


This is exactly the same: there is a fundamental difference between Go and Life.

In Go you know all the rules, and play in an isolated environment.

In Life, you don't: none of the above preconditions apply!

This is what the total history of science is about: realizing that we were wrong, find new rules (a bit deeper understanding of the fundamental laws of nature), and step forward as a civilization by using them. And then realize where we were wrong, and do it again.

So showing that now we have enough performance to run a massive algorithm that finds, evaluates and optimizes billions of actions among known rules better than a human player is, well, kinda nice, and yes, it is important because now you can calculate the trajectory of a rocket or satellite with more precision than legions of human computers with pencil and paper.



But to solve (and create...) problems, it is still and always us. Human beings.

However, to solve the problems that WE create, we must return to the level we named our kind about: Homo "Sapiens". Wise, not intelligent. And here a game playing toaster does not help much, only distracts us from our own tasks and responsibility.  

An important tool, but definitely not the key to the future.

2016. március 11., péntek

Censorship in 2016

I have seen this the first time in my life and this is mind blowing. Showing the pictures as of 11th March, 2016.

An article about Fukushima in Newsweek Europe


The referred article at Reuters


So, I am testing the freedom of speech at Newsweek Europe by posting the following comments



OMG, public media quality...

Arnie(!) Gundersen(!) from Fairewinds, the whistleblower who did the most for objective public information in the past years. http://www.fairewinds.org/

To Oleg - you are right, not only robots die. RIP and great respect to Masao Yoshida, I hope




Sorry, this is not about quality. The name was correctly spelled in the original article, but "somehow got corrupted" while copy-pasting the content.

I try to ask very politely. Is there any problem with the power of Google and the right to access public information at Newsweek
 




And by sending the following mail to them

Dear Newsweek,

I have a strong disappointment about your altering information in this article: http://europe.newsweek.com/robots-sent-fukushima-have-died-435332?rm=eu - details are on my blog, if you care: http://hajnalvilag.blogspot.hu/2016/03/censorship-in-2016.html

It seems that you have willfully corrupted the name of one of the last independent nuclear experts, Arnie Gundersen so that anyone who got interested in the topic, would not get to Fairewinds.org by searching for his name (and by the way, deleted an important half sentence). This is absolutely incorrect, though financially understandable action. So, I don't ask you to change anything about it, but wanted to show that you should do this a bit less obvious. Like removing complete paragraphs that you don't like, that's fine.

Thank you
  Lorand Kedves

[edit: you may guess if I had any answer]

2016. március 8., kedd

Darwin díj

Már megint, még mindig...

http://www.fairewinds.org/nuclear-energy-education/fukushima5

"If you listen to the mainstream media, you might believe that these three atomic reactor meltdowns at Fukushima Daiichi are strictly a problem produced in Japan. That is absolutely wrong. All of the major design decisions at Fukushima Daiichi were made in the USA..."

"Today, in the United States, there are 23 atomic reactors identical to those still in meltdown at Fukushima Daiichi."

"For more than 40 years, both American and Japanese engineers have been aware of the many design flaws that caused the meltdowns and accompanying explosions at Fukushima Daiichi. Senior managers at the Atomic Energy Commission, the regulatory precursor to the NRC, expressed grave concerns about the GE Mark 1 BWR containment design as early as 1972."

"And, finally again in the 1980s, NRC reports indicate that GE and NRC engineers knew that the high pressures, high temperatures, and high radiation levels after a nuclear meltdown would cause the plumbing and electrical conduits in each containment to fail totally, thereby allowing groundwater to leak in to the molten core. The ongoing disaster at the Fukushima Daiichi atomic reactors simply proves that early engineering analysis from the 1970s and 80s was absolutely correct..."

---

Persze Arnie Gundersen "köztudottan egy zöld majom". Akinek ez a véleménye, figyeljen a következőkre:

1: precíz adatok (persze, ha valaki nem érti őket, akkor utána kell olvasni, ez nem kocsma-szint);
2: ellenőrizhető források (persze odaát is ismerik a több ezer oldal salátába csomagolt kellemetlen tények módszerét);
3: ellenőrizhető történet: a fukushimai események hátterében álló folyamatokat hetekkel, hónapokkal, évekkel korábban jelzi (akkor persze mindenki hazugnak nevezi), mint ahogy azok végül a "tömegtájékoztatásban" megjelennek.

Az atomiparnak bőven van erőforrása ügyvédekre, szakértőkre, nem kell támogatásért kuncsorognia, mint a Fairewinds-nek, egy-egy közmeghallgatásra kisebb seregekkel vonulnak. Éveik voltak, hogy a Fairewinds-ről a gatyát is lepereljék hitelrontás, rágalmazás miatt. Az is tökéletes PR, hogy nyilvánosan beégetnek egy "sötétzöld okoskodót", színes ábrákat és animációkat is ezret tudnak csinálni egy-egy, hetvenes évekből előkapott, nehezen érthető szakértői dokumentummal szemben.

Vajon miért ennyire visszafogott a világ köztudottan legbiztonságosabb energiatermelő szektora?


Mert nem is kell beszélnie! Arnie Gundersen öreg ember, pár év múlva meghal, és senki nem fogja folytatni amit csinál. Akiknek beszélni próbál, 99%-ban befogja a fülét és szajkózza a marketing anyagokat, a maradék 1% meg hisztizni kezd konstruktív gondolkodás helyett.

A kutya ugat, a karaván halad. Na ez Darwin:

Ha egy civilizáció elér egy technológiai szintet, de a benne élő egyének nem képesek felfogni, hogy mekkora erőfeszítést kell tenniük annak fenntartásához, akkor összeomlik. 

Ehhez nem kell semmi gonosz háttérhatalom, csak egy ostoba, saját képzelt hatalmától megrészegült, lusta, sértődős vagy pánikoló, mesevilágot álmodó, fecsegő tömeg. Lásd: Rudyard Kipling, A dzsungel könyve, Bender log. Szerintem a fickó nem viccelt, dühből írta meg Ká vadászatát.

2016. március 7., hétfő

Tisztelgés egy hős előtt



A fukusimai atomerőmű katasztrófája arra figyelmezteti a nukleáris beruházást folytató országokat, hogy egy súlyos baleset teljes társadalmi és pénzügyi összeomlással járhat. Japán hajszál híján megsemmisült öt évvel ezelőtt, az adófizetőknek körülbelül egyévi magyar GDP-nek megfelelő összegébe került eddig a kárelhárítás, és nagyon messze van még a vége.


Annyira vicces, hogy megpróbáljuk az "istenadta nép" számára legalább forintosítani a kockázatokat, amelyeket sajátméretükben felfogni képtelen...

Mondok egy másikat.
Programozó vagyok, a dátumoknál az évszámot 4 jegyen kezeljük, ez ugye nyolcezer év múlva jelent legközelebb problémát. Az általunk most fűtőanyagként használt Pu239 felezési ideje 24100 év. Vagyis, 26111. márciusában a most kiszabadult plutónium sugárzása már csak fele lesz a mainak. Ezért is tény, hogy az ilyen anyagok tárolásáról hivatalosan is 100000, mondom, százezer évig kell gondoskodni. Vagyis csinálok egy dobozt, beleteszem ezt a valamit, és 100000. január elsejéig kell rá nagyon vigyázni.
Mai gondolkodásunkhoz méltó örökség.

Attól tartok, ez sem felfogható, mondok még egyet.
A városi állatkertbe behoznak egy irgalmatlan nagy ketrecet. Méteres vasbeton falak, embervastag rudakból álló rácsok. A nép tódul oda, hogy ez aztán mekkora siker, hű, de megnézném azt az állatot, mekkora kunszt, hogy egy ekkora dögöt rácsok mögött tudunk tartani. Mert a szerencsétlenek önmagukhoz mérik azokat a falakat.
Csak egy fazon rohan az ellenkező irányba. Ő úgy számol, hogy ha a profitra vágyó állatkertészek ennyit költöttek a ketrecre, akkor nem akar a közelben lenni, ha valami nem pontosan úgy alakul, ahogy (ismétlés: a költségeket mindig farigcsáló) építők elképzelték. Arra ugyanis, hogy ezek a falak nem bírnak valamit, nincs forgatókönyv.
Ismétlem: nincs forgatókönyv.
Csak azok az emberek, akik ott állnak a fronton, mint a fukushimai erőmű azóta tüdőrákban meghalt vezetője, aki halála előtt nyilatkozott, hogy a dohányzás miatt volt rákos. Mert ahhoz semmi köze, hogy egy radioaktív xenonfelhőben vezényelte az elhárítást, és (közvetlen utasítások ellenére) szó szerint mindannyiunkat megmentett egy akkor nem is esélytelen, sokkal rosszabb kimeneteltől. 


Ha az áldozatát felfogni nem is vagyunk képesek, legalább ISMERHETNÉNK egy igazi hős, Masao Yoshida nevét, ha nem is olyan híres ma, mint Anakin Skywalker, Kirk kapitány vagy Elon Musk.


De ha ez se megy át, és ragaszkodunk a forintokhoz, érdemes végiggondolni, hogy mekkora költség lesz kezelni és lebontani a mai erőműveket, amelyek már nem adnak semmit, de tele vannak iszonyú nehezen kezelhető sugárzó hulladékkal. Az egyébként híresen precíz japánoknak se megy nagyon, ajánlott olvasmány Monju története.

Ezen a téren csak az óriásplakátok segítenek, mert azt mondják, amit a kedves polgár hallani szeretne a valóság helyett.

2016. február 15., hétfő

Writing Source Code is Evil

The aim of our industry is to produce software. That is: listen to our clients' requests and create a system that can does what they wanted, on their hardware (be it a global company IT infrastructure, a smart watch or a thermostat).

This sentence is a typical mission statement:
sounds nice, easy to repeat, and totally useless.

What they “wanted” is mostly unclear, we only know what they have told us. No, we only know what we have understood from what they have told us. “Does it or not?” is a yes/no question. In practice, we can only have a measurement that gives a hopefully objective ratio “how much” our system meets the requirements. We don't just want to create working, but good software. We want to compare different approaches and solutions objectively.

So, we need to measure the goodness, or fitness of our software.

Measurement theory

Fortunately, we do have a sound scientific methodology that can reliably guide us towards a better understanding and judgment, can estimate the “goodness” of our current understanding, and help us further refining it. To explain the title, we will only need the fundamental definitions.

System

In very rough terms, system can be any part of the world that 1: we separated from the rest, 2: interacts with its environment, and 3: changes during this interaction.

Naturally, any software is a system by this definition. However, the actual form of our software is thousands, sometimes millions of lines of source code, configuration, database content, collection of external libraries: gigantic amount of “content” in unclear, but existing relation to goodness. We need to simplify it.

Modeling

We never know “the truth”, but we don't even have to.

Drinking a glass of water is possible only by having the molecules, their atoms and their subatomic particles of my body, the glass and the water in it to follow a proper arrangement for the action; and “the truth” may even be under those levels. However, we have a good enough model of our body, the glass and the water, and we are able to control the process adequately.

Good models give us reliable control – bad models increase uncertainty.

If we know how good our models are, we can estimate the precision of our actions, or add safety mechanisms to our process and achieve a reliable operation in a less reliable environment. Standing is different in a room, in a moving bus or after some drinks, but we can manage such scenarios in a quite wide range by adaptation.

Black box models

These models describe the system from the external perspective only: we can see the environment, the input given to the system and its response. With enough tests, we can say that we know what the system does in certain conditions, and we can build reliable operation on it. However, the same system can give us surprise in untested conditions. The cooling system of our cars works normally, but can also cripple the complete engine in case the coolant freezes. Our black box model can only tell that it works now, but it is safer to look into the box.

White box models

White or glass box models are those that we see through: we know all the internal components and their interaction, so above knowing what it does, we exactly know how and why it does so. Of course, the “absolute white box” is the complete truth itself, which we don't know. The elements inside our white box models are also models, but we assume knowing enough about them to calculate their behavior. We do know about the constant subatomic buzz, but it will statistically never affect the behavior of our car engine. Unlike the fluid levels that we must check regularly.

Analysis

In practice, our models are not completely black or white, but this short introduction to modeling gives a clear statement: the “darker” our models, the less we should rely on their findings.

With a complete black box we can only have a checklist, we can grow them and repeat testing many times. But without peeking into the box, we can't even know what critical checks we have forgotten about. With a complete white box, we only have to check that the required elements, their parameters and connections are there, because if they are, then the system should work as expected. If it does not, the model gives us clues what parts can cause the problem and what checks are needed to locate it. It can also point at the critical elements that should be regularly checked to make sure the model is adequate.

The consequences are clear: it is definitely worth creating whiter models, and the opposite: constant struggle of otherwise motivated and adequately trained participants is likely caused by black box models somewhere in the way.

The development process

Negotiation

To simplify the scenario, our clients asks a question (“can you do what I want?”), and we give them an answer.

In general, we are in competition with others and need the money to continue the operation, so we want to offer more and/or ask for less than the others; while the clients want a working system in the long run but also want to pay less now. Furthermore, adequately refining the question and giving a reliable, honest answer needs a lot of effort and contains serious risk, especially if the competitors' offers are more “optimistic”.

Perhaps it would be too hard to say that within natural business environment our answer will always be the words the clients want to hear, but connected smartly enough to give us backdoors to extend the deadline and price in case we really have to do the job (in short: a lie, or a bit longer: professional sales material). But it would also be too optimistic to assume having a thorough requirement and architectural analysis before making the deal.

Design

Of course, there are programmers and companies who win a contract because they are ahead of all others by far. They start coding using agile methods, their solution will evolve to perfection naturally and don't need any more philosophy around it. May the Force be with them, but the rest of the world is not so sure of that, so they need objective measurement of goodness, and consequentially, some modeling.

Initially, we receive a requirement specification. That is, by definition, a black box model: we don't know the internal structures, don't even know what we don't know about the clients' problems or how to solve it. In order to get a better view, we need to make our models whiter.

But what should we model: the problem or the solution? We have to deal with both, and the two seems to be important alone. Especially, if we want to prepare for later changes from the clients, it is important to clearly see the interaction between the new requirements and our solution. By creating separate task and solution model, the connection must have a clean interface, thus the effects of changes will also be more transparent. Fortunately, we have separate roles for these tasks.

The system analyst deals with the problem model, talks the language of the clients, is an expert in the problem domain. Together with the clients, they refine the requirements, make a white box model of business domain entities, their responsibilities, interaction, and finally, check if the specified data model can behave as it was required. The software architect works with the solution model: software components, tools, databases, deployment environment. Together with the clients' IT experts, they design the actual system components, data tables, connections to the external systems. This is an iterative process, the actual environment may set needs or limitations to the original requirement, which can be improved and adapted to them.

Finally, we have two "enough white" boxes that show how we solve the task, can be objectively evaluated against the requirements, or adapted to later changes.

Implementation

And now...

we take our white box models and wrap them into black boxes again!

We write source codes on various languages, and create configurations to components that were written in various languages again. The source code has no defined connection to the structures that we have designed (coding standards and design patterns don't help much), there is no straightforward way to validate the result.

Each measurement is as good as its worst segment. Returning to a black box model means the complete, so far controlled development process is almost as bad as doing it all with no planning. In practice, the expensive design phase seems to be a waste of money and resources in meaningless discussions and brainstorming. Some of the lucky startups may overtake the highly organized companies even in the quality of their products (perhaps because they do the job at their desks that the big ones outsourced to cheaper but less motivated guys).

Houston, we've had a problem...

Solution

If this problem is so obvious, why don't we have a solution already? In fact, we do, on many levels.

Sedatives

Of course, we have tons of static and dynamic code analyzers, unit testing, integration testing, continuous deployment tools, etc. This does not help in the fundamental problem: we put our solution into a black box, and all quality measurements are just external checklists without understanding the internal structure.

The tools that peek into the program structures by detecting the graphs show useless complexity, gaining useful information from such a report is on the same magnitude as asking a professional to write it again.

Those that try to enforce connection between design and implementation like UML tools are very rarely used because they limit the freedom of both the designers and programmers without providing a clean process model for the transformation.

Considering all this, the current failure / delay rate should not be a surprise. Even if we gracefully forget about the 99% of startups that die without notice.

The Good Old Days

Decades ago, when there were much less programmers and much weaker hardware, we could not afford wasting so much resource on writing code, so for example, user interfaces were created by resource editors. There were much less hype around user experience, but those systems were quite usable.

Today

We have a renaissance of declarative user interfaces (Apple never left it, Microsoft, Google, Mozilla and many other vendors create their own user interface configuration tools). Application structure is also going out to configuration, these are the cloud based solutions, Inversion of Control Containers, etc.

There are also many systems that allow their users or admins to configure their operations. Security systems are configurable in many environments; we have workflow engines, task and project management tools, etc. All they can do can also be done by typing some lines of source code, but that is unsafe, it is better to have some visual editor to click and drag together the process in a guarded and validated environment.

What is common in these tools? They all bring the white box model back to the implementation level!

Is it a problem to solve at all?

Our economy is moved by the needs.

Education system is happy that we “need” legions of programmers who should type source codes to the always changing and ever newest platforms, “solving” the same problems again and again. This looks good in marketing campaign and political slogans, keeps the business running. Solving this issue would change the IT world, and is not compatible with any of our current business models.

Even if we could create the technology, we are not ready for its consequences.

Summary

  1. Software became fundamental element of the human civilization, its quality is critical;
  2. We can check and improve quality only if we can measure it;
  3. Measuring depends on the models that we create;
  4. Reliable checking, efficient problem finding, estimating the side effects of changes only available with white/glass box models, while black box models only allow guessing by experience;
  5. The requirements are black box models, that we can make white by expert problem and solution modeling, but traditional implementation puts it back to a black box again;
  6. Advanced computing technologies have one thing in common: they allow white box modeling in implementation.

So...

If you want to build a reliable system, write less code!

And use libraries that also follow this approach, because the quality and flexibility of your system is related to the same attributes of your weakest component.