Blíží se zajímavý střet IT světa a automobiloveho světa. IT svět za sve produkty zákazníkům nijak neručí. Zakaznik musi byt vděčný za to že na nalezene chyby výrobce vydá opravu. Odškodnění za jejich důsledky ale nečekejte. Priklad - neznámou chybou vam někdo vleze do Windows. Ukradne data a zpusobi vam prokazatelne skodu. Vse se podaří vysetrit a prokazat. Da vam microsoft něco? Nebo lehne databáze kvůli software chybě ztratíte data. Da vámi někdo neco?
Naopak ve světe automobilek je poskozeni zakaznika prokazatelnou chybou výrobce veci ktera bývá předmětem odškodnění, bezplatných a často hromadných servisnich zásahů a pod.
Zdá se že hosi od počítače co nejsou zvykli nest za svoji práci odpovědnost začali malovat barevna okénka s pripojenim k facebuku v systemech co jsou k nim pripojene brzdy od auta.
Anekdota: Kdyby programátoři vyráběli auta tak budou stát desetinu, budou mit polovicni spotřebu ale jednou za rok vybuchnou a zabíjí všechny uvnitř.
Zda se mi že nastal čas se zamyslet jak nastavit pravidla tak aby programatori byli nuceni si uvedomit ze auto není e-shop s hrnkama. Driv než začnou auta vybuchovat.
To není tak docela pravda, on se sice odehrával a odehrává, ale ve velice malém měřítku. Ano, máte kritické systémy, kde i drobná chyba v SW může mít vážné náisledky, jenže takový SW nepíše každý, stejně jako ten HW nepoužívá (přímo) každý.
Tady se ale bavíme o budoucnosti, kdy chytré auto bude mít každý druhý a i ten SW bude psát mnohem více lidí. Sice ne přímo "OS", ale různé "aplikace pro zpříjemnění pobytu v autě" už ano.
To je totiž další rozdíl mezi tímto a Vašimi příklady, u výrobní linky je jasné, co má dělat, a píše se takový SW, který přesně to dělá. A to stačí, víc nikdo nechce. U ekosytému chytrého auta jako celku to však neplatí.
Můžeme tak doufat leda v to, že dojde k důslednému oddělení "provozních" a "zábavních" funkcí, přičemž v případě, že ty druhé budou napadeny či se jakkoliv "zblázní", ty první tím nebudou nijak dotčeny.
Zatím se SW píše způsobem, že co není výslovně zakázáno, je povoleno a pak se dodatečně zakazuje to, co je riskantní; říká se tomu bezpečnostní záplaty. Budoucnost si jednou vynutí, takové SW, které bude napsáno opačně, čili co nebude výslovně povoleno, bude zakázáno. Je otázka, jestli takovýto SW bude někdy někdo schopen napsat. U HW řešení stav co není výslovně povoleno, nelze realizovat, problém není, tedy přesněji řečeno, není to problém pro toho, kdo s příslušným HW umí zacházet.
Tak takové aktivity jsou tu už dnes a odpověď na otázku, zda takový SW bude někdo schopen napsat, je kladná, ono se to totiž dá prostě vynutit, tedy vyvinout nástroje, které vývojáři neumožní napsat špatný kód. To, že se dnes hromadně nepoužívají, je dáno ne tím, že by neexistovaly, ale tím, že bez nich je vývoj levnější a "nikdo" je z jiných důvodů masově nevyžaduje.
A ty nástroje jsou bezchybne a bez děr, napsané božskými prográmátory, co se nikdy nemýlí, takže ošetří opravdu každé možné riziko? Nebude nakonec naopak díky spoléhání na "bezchybné" nástroje chyb ještě víc? (Report je OK, tak to je OK, už na tom nic nezkoumej a šup s tím k zákazníkům.)
Tak na principu "report je OK, tak to je OK..." funguje vývoj už dnes, akorát ten "report" je výstup testů (od unit po uživatelské). Nic jiného než přístup "nenašli jsme chybu, tak tam asi žádná nebude" ani nezbývá.
A ne, více chyb tam nebude, tyto testy můžou zůstat zachovány, ale zároveň se bude vyvíjet v jazyce/frameworku, který prostě neumožní třeba "napsat memory leak", netvrdím, že k žádnému nedojde, ale nedojde k němu z důvodu, že vývojář neošetřil uvolnění paměti při jednom možném scénáři.