Sie befin­den sich hier:Start­sei­te/Blog/No risk, no fun(ction), no future! (Wie) las­sen sich soft­ware-basier­te Sys­te­me in einer kom­ple­xer wer­den­den Welt noch beherrschen?

No risk, no fun(ction), no future! (Wie) lassen sich software-basierte Systeme in einer komplexer werdenden Welt noch beherrschen?

Lese­zeit: 13 Minu­ten
machine 1776925 960 720 socialshare

Pan­ta rhei. Alles ist im Fluss, alles ver­än­dert sich. Unauf­halt­sam, immer schnel­ler, immer unüber­schau­ba­rer. Nicht erst heu­te. Spä­tes­tens seit Erfin­dung des Rades steht die Mensch­heit vor der Her­aus­for­de­rung, sich in der Ver­än­de­rung zurechtzufinden.

Es wach­sen die Mög­lich­kei­ten, aber auch die Sor­gen. Das meint übri­gens die Bibel, wenn Adam und Eva nach dem Essen vom ver­bo­te­nen Baum der Erkennt­nis aus dem Para­dies (der ani­ma­li­schen Sorg­lo­sig­keit) ver­trie­ben werden.

„Frü­her war die Zukunft auch bes­ser!“, hat der Münch­ner Erz­ko­mö­di­ant Karl Valen­tin humor­voll die Tra­di­ti­on jenes Gefühls beschrie­ben, das schon der alte Cice­ro mit „O tem­po­ra! O mores!“ zum geflü­gel­ten Wort mach­te und das sei­nen fata­lis­ti­schen Gip­fel im „No future!“ der Punk-Bewe­gung erreichte.

Aber: That’s life. Love it or hate it, but learn to live with it.

Auch in unse­rer Zunft, der Soft­ware-Ent­wick­lung und ‑Absi­che­rung, mer­ken wir seit eini­ger Zeit, dass die „Zukunft frü­her auch bes­ser war“. Grund­an­nah­men ändern sich so mas­siv, dass ein Fest­hal­ten an bewähr­ten Ansät­zen allei­ne nicht mehr trägt, schon weil die­se oft an einem nicht mehr zu leug­nen­den Aspekt schei­tern: expo­nen­ti­ell wach­sen­de Kom­ple­xi­tät und Dyna­mik, nicht erst, aber vor allem im Zuge der gras­sie­ren­den Digitalisierung.

Die­ser Arti­kel soll eini­ge Denk­an­stö­ße geben, wie wir mit den Her­aus­for­de­run­gen der nächs­ten Jah­re umge­hen könn­ten. Dabei geht es weni­ger um Patent­re­zep­te, die es per defi­ni­tio­nem für eine unge­wis­se Zukunft nicht geben kann, son­dern um eine grund­sätz­lich ande­re Hal­tung, aus der her­aus sich dann Hand­lungs­tak­ti­ken ablei­ten lassen.

No future?

Heu­te haben wir eher zu viel Zukunft1 – und sie kommt zu schnell und zu mäch­tig; zumin­dest wenn man auf Sicher­heit steht. Was für Öko­sys­te­me und das Kli­ma schon lan­ge gilt, trifft zuneh­mend auch auf von Men­schen erdach­te Sys­te­me zu: Die immer kom­ple­xer wer­den­de Welt hält uns fast täg­lich vor Augen, dass wir sie nicht mehr im her­ge­brach­ten Sin­ne beherrschen.

Als Ver­fech­ter von Qua­li­täts­si­che­rung (oder auch nur als ethisch gefes­tig­ter Mensch) kann einem natür­lich ban­ge wer­den, wenn man sich gewis­se tech­ni­sche Ent­wick­lun­gen und ihre mög­li­chen Fol­gen vor Augen hält und extra­po­liert. Da wer­den von Hackern die Brem­sen von (ame­ri­ka­ni­schen) Autos wäh­rend der Fahrt außer Kraft gesetzt. Da wer­den (oft gegen den Rat von Exper­ten) „smar­te“ Ansät­ze bei kri­ti­schen Infra­struk­tu­ren, wie z.B. Ener­gie­net­zen, von der Poli­tik for­ciert, wäh­rend gleich­zei­tig der Cyber­war aus­ge­ru­fen wird. Da wer­den teu­re Löcher in Innen­städ­te gegra­ben, um … . Nein, las­sen wir die­se Baustelle … .

Kürz­lich hat uns aus­ge­rech­net ein Stück künst­li­che Intel­li­genz (sagen wir lie­ber: Deep Machi­ne Lear­ning) gleich­sam den Spie­gel vor­ge­hal­ten und die con­di­tio huma­na auf­ge­zeigt: Im Früh­jahr 2016 ließ ein bekann­ter Soft­ware-Her­stel­ler einen Social-Bot auf Face­book los, um zu bewei­sen, dass er nicht nur Betriebs­sys­te­me und Büro­an­wen­dun­gen ent­wi­ckeln kann.

Was als Mar­ke­ting-Coup gedacht war, wur­de von Tei­len der Netz-Com­mu­ni­ty so schnell „ange­lernt“, dass es inner­halb nur eines Tages die viel­be­schwo­re­ne Hass­kul­tur ver­in­ner­licht hat­te und mit sexis­ti­schen und ras­sis­ti­schen Pöbe­lei­en so auf­fiel, dass man sich gezwun­gen sah, das Pro­fil des Bots wie­der aus dem Netz zu neh­men. O tem­po­ra! O mores!

Auch wenn die­ses letz­te Bei­spiel eher zum Schmun­zeln anregt (nicht zuletzt, weil es einen Kon­zern getrof­fen hat, den man eher mit Mar­ke­ting als mit Qua­li­täts­si­che­rung asso­zi­iert), so bleibt einem das Lachen doch im Hal­se ste­cken. Man fragt sich nicht nur „In was für Zei­ten leben wir eigent­lich?“, son­dern vor allem „Beherr­schen wir unse­re Sys­te­me noch?“ – oder kon­se­quen­ter: „Las­sen sie sich über­haupt noch beherrschen?“.

„Die ich rief, die Geis­ter, werd ich nun nicht los“. Wie Goe­thes Zau­ber­lehr­ling mag sich mit­un­ter man­cher Inge­nieur vor­kom­men. Auf der Stutt­gar­ter Fach­kon­fe­renz „Auto­Test“ wur­de kürz­lich von einem Crash eines auto­no­men Goog­le-Cam-Autos berich­tet. Bei einem zuvor tau­sen­de Male erfolg­reich voll­zo­ge­nen Spur­wech­sel in der Rush Hour traf es das ers­te Mal auf einen Lini­en­bus auf der Nach­bar­spur, der nicht brems­te, als es vor ihm in eine Lücke scher­te. Man hat­te ver­säumt, der Fahr­steue­rung bei­zu­brin­gen, dass bestimm­te Fah­rer qua Berufs­bild zur Kom­pro­miss­lo­sig­keit neigen …

1 In der asyn­chro­nen Pro­gram­mie­rung gibt es sogar einen gene­ri­schen Daten­typ namens Future, der ermög­licht, Ket­ten asyn­chro­ner Funk­ti­ons­auf­ru­fe zu bil­den, als wenn sie syn­chron wären. Ein pas­sen­des Bei­spiel, wie die Mensch­heit es immer wie­der schafft, mit geeig­ne­ten Abs­trak­tio­nen eine eigent­lich nicht mehr begreif­ba­re Welt zu beherrschen.

Soziale Systeme

Das Bei­spiel des auto­no­men Fah­rens ver­deut­licht einen Para­dig­men­wech­sel, den wir in der rea­len Welt schon voll­zo­gen haben. Wäh­rend sich sozia­le Inter­ak­ti­on frü­her rela­tiv über­schau­bar dar­stell­te (es soll ja mal berit­te­ne Boten als Kom­mu­ni­ka­ti­ons­me­di­um gege­ben haben), spielt sich heu­te ein Groß­teil in den sozia­len Medi­en ab. Ohne dies kul­tur­phi­lo­so­phisch bewer­ten zu wol­len, muss man fest­hal­ten, dass dabei völ­lig ande­re Regeln und Effek­te auf­tre­ten, vor allem eine nicht vor­her­sag­ba­re Dyna­mik, sie­he das eben erwähn­te Bot-Beispiel.

Was wir Men­schen erle­ben, gilt aber zuneh­mend auch für unse­re Soft­ware-Sys­te­me. Tra­di­tio­nell waren sie, was man frü­her „Stu­ben­ho­cker“ genannt hät­te. Auch heu­te gibt es noch jede Men­ge Mono­li­then (egal, ob sie in COBOL, Java oder .NET ent­wi­ckelt wur­den), die am liebs­ten gar nicht mit der Welt reden und wenn über­haupt, dann nur über sehr ein­ge­schränk­te, oft gro­tesk spar­ta­ni­sche Interfaces.

Man­cher mag ein­wen­den, dass das nicht stimmt, und auf eine struk­tu­rier­te Modu­la­ri­sie­rung oder womög­lich sogar auf eine SOA2 ver­wei­sen. Ja, natür­lich haben wir spä­tes­tens seit den Anfän­gen der funk­tio­na­len Dekom­po­si­ti­on in den 70er Jah­ren gelernt, IT-Sys­te­me aus immer mehr und klei­ne­ren Sub­sys­te­men und Kom­po­nen­ten zu bau­en. Jedoch: Egal, wie groß es war, am Ende gab es doch bis­lang immer so etwas wie ein Sys­tem, das nach dem Erklim­men der rech­ten Flan­ke des V‑Modells einem Sys­tem­test unter­zo­gen und abge­nom­men wer­den konnte.

Die­ses Para­dies der Beherrsch­bar­keit müs­sen wir ver­las­sen. Heu­te ist es häu­fig ein zen­tra­ler Gegen­stand von Pro­jek­ten aller Bran­chen, Sys­te­me so zu bau­en, dass sie eben nicht abge­schlos­sen sind, son­dern offen mit ande­ren Sys­te­men inter­agie­ren (selbst mit sol­chen, die nicht bekannt sind, ja viel­leicht noch nicht ein­mal gebaut wur­den). Egal, ob es dabei um das Ver­füg­bar­ma­chen und/oder Nut­zen von offe­nen Ser­vices geht, um Erwei­te­rungs­kon­zep­te (Wer hät­te vor ein paar Jah­ren an Apps für Autos gedacht?) oder um eine mas­si­ve Inter­ak­ti­on als Haupt­ei­gen­schaft (wie beim auto­no­men Fah­ren oder bei IoT/Industry 4.0). Unse­re Sys­te­me sind Teil eines grö­ße­ren Sys­tems gewor­den, das wir nicht mehr tes­ten kön­nen, ja das nicht ein­mal defi­niert wer­den kann! Sie bege­ben sich in Gesellschaft.

2 Jener Hype, der gran­di­os geschei­tert ist bzw. oft zu einer mas­si­ven Ver­teue­rung und Ver­lang­sa­mung von IT-Pro­jek­ten geführt hat, obwohl man genau das Gegen­teil ver­spro­chen hat­te. SOA ver­deut­licht, was pas­siert, wenn man zulässt, dass bei etwas im Ansatz rich­ti­gen als ers­tes die Grund­prin­zi­pi­en über Bord gewor­fen wer­den (damals war das Ziel die leich­te­re Ein­füh­rung, Anpas­sung und Ver­knüp­fung von Busi­ness Services).

Roots to grow and wings to fly

Die­se völ­lig neue Qua­li­tät von Sys­tem­in­ter­ak­ti­on bedeu­tet imma­nent das Ende der Voll­ab­si­che­rung. Natür­lich wür­de eine theo­re­ti­sche Voll­ab­si­che­rung schon am Res­sour­cen­auf­wand schei­tern. Aber schon ihre Defi­ni­ti­on ist uto­pisch: Exper­ten schät­zen, dass selbst mit drei Mil­lio­nen Kilo­me­ter Test­fahr­ten zum Sam­meln von Test­da­ten maxi­mal etwa zwei Pro­zent aller mög­li­chen Sze­na­ri­en erfass­bar sind, auf die ein Auto im Lau­fe sei­nes „Lebens“ tref­fen könn­te. Vor allem ist die­se Quo­te durch mehr Test­ki­lo­me­ter nicht signi­fi­kant zu stei­gern! Wer will ange­sichts sol­cher Zah­len vor­her­sa­gen kön­nen, ob sich ein Sys­tem in allen Situa­tio­nen ord­nungs­ge­mäß ver­hält? Und was ist „ord­nungs­ge­mäß“ überhaupt?

Wenn man die­sen Gedan­ken aber kon­se­quent wei­ter­ent­wi­ckelt, gelangt man zu fol­gen­dem Schluss: Wir müs­sen die Art und Wei­se, wie wir Sys­te­me ent­wi­ckeln und ihre Qua­li­tät sichern, grund­sätz­lich über­den­ken. Wir kön­nen sie nicht län­ger nur wie ein abge­schlos­se­nes Werk­stück betrach­ten, das man in einem defi­nier­ten hand­werk­li­chen Pro­zess fer­tig – stel­len und mit der Schieb­leh­re auf zuvor defi­nier­te Qua­li­täts­kri­te­ri­en über­prü­fen kann.3

Statt­des­sen sind unse­re zukünf­ti­gen Sys­te­me eher unse­ren Kin­dern gleich: Nach­dem wir sie erzo­gen und lebens­fä­hig gemacht, ihnen also gute Wur­zeln gege­ben haben, wer­den sie flüg­ge – oder wir schub­sen sie aus dem Nest. Wir ent­las­sen sie nolens volens in eine Zukunft, die wir lie­be­voll und auf­merk­sam beglei­ten mögen, die wir aber weder vor­ab ken­nen noch wirk­lich beein­flus­sen kön­nen. Wir kön­nen ihnen nur unse­re Erfah­run­gen und Wer­te mitgeben.

Wenn wir lern­ten, Sys­te­me so zu ent­wi­ckeln wie unse­ren Nach­wuchs – ange­fan­gen bei der Lie­be und dem Ver­ant­wor­tungs­ge­fühl – hät­ten wir einen gro­ßen Schritt gemacht; nicht nur als Soft­ware-Exper­ten, son­dern als Mensch­heit. Denn unver­kenn­bar befin­den wir uns an der Schwel­le des­sen, was vor eini­gen Jahr­zehn­ten noch (meist düs­te­re) Sci­ence-Fic­tion war: Maschi­nen neh­men zuneh­mend eigen­mäch­tig am Leben teil und orga­ni­sie­ren die­se Teil­ha­be unter­ein­an­der. Und damit das nicht in Schre­ckens­sze­na­ri­en endet, müs­sen wir sie nach unse­ren ethi­schen Maß­stä­ben „erzie­hen“.

Das fängt bei der von Isaac Asi­mov in sei­nen „Robo­ter-Geset­zen“ vor­ge­schla­ge­nen For­de­rung an, in künst­li­cher Intel­li­genz ganz tief zu ver­wur­zeln, dass eine Maschi­ne unter kei­nen Umstän­den einen Men­schen aktiv ver­let­zen oder töten darf. Ana­log dem Art.1 GG, an den wir als Men­schen gebun­den sein und in des­sen Ethos wir unse­re Kin­der erzie­hen soll­ten. Umge­kehrt – so wie wir uns von unse­ren Kin­dern mit­un­ter zu Recht anhö­ren müs­sen „Davon ver­stehst Du nichts“ – muss es viel­leicht sogar bei der For­de­rung enden, dass Men­schen die Ent­schei­dun­gen von Maschi­nen nicht „ver­schlimm­bes­sern“ dür­fen, weil sie ihnen auf­fas­sungs­mä­ßig nicht gewach­sen sind.4

Jedem, der am Ent­wurf von Sys­te­men betei­ligt ist, sei vor die­sem Hin­ter­grund fol­gen­de Tugen­den emp­foh­len: Ver­trau­en, Respekt und Demut. Beson­ders die­ser letz­te, lei­der etwas aus der Mode gekom­me­ne Begriff ver­deut­licht, wor­um es geht: Teil eines Grö­ße­ren zu sein, das man weder begrei­fen noch kon­trol­lie­ren kann, zu dem man aber kon­struk­tiv sei­nen Teil bei­zu­tra­gen hat.

3 Bit­te das nicht falsch ver­ste­hen. Hand­werk­li­che Qua­li­tät ist nicht nur nicht unwich­tig gewor­den, sie wird zukünf­tig noch wich­ti­ger (s. fol­gen­de Aus­füh­run­gen). Aber sie kann nur noch ein Teil der Absi­che­rung sein, für die grö­ße­ren Aspek­te braucht es ande­re Ansätze.

4 Die Kol­li­si­on zwei­er Flug­zeu­ge im Luft­raum über dem Boden­see vor eini­gen Jah­ren ging auf mensch­li­ches Ver­sa­gen zurück. Zunächst hät­ten die Flug­zeu­ge gar nicht so dicht anein­an­der gelotst wer­den dür­fen. Das eigent­li­che Pro­blem war aber fol­gen­des: Die Auto­pi­lo­ten der Flug­zeu­ge hat­ten unter­ein­an­der ein Aus­weich­ma­nö­ver ver­ab­re­det, das die Distanz zwi­schen ihnen maxi­mie­ren soll­te. Der Pilot der dar­auf­hin absin­ken­den Maschi­ne hat die­ses Manö­ver, das er womög­lich nicht schnell genug als sol­ches ver­stan­den hat, kor­ri­giert und damit genau in die ande­re Maschi­ne gelenkt!

No risk, no function

Es gibt nichts Töd­li­che­res als das Leben. Eltern wis­sen das, weil sie in stän­di­ger Sor­ge um ihre Kin­der leben. Trotz­dem hören wir ja nicht auf, Kin­der zu erzie­hen und auch los­zu­las­sen. Kon­trol­lier­tes Risi­ko könn­te man jenen Erzie­hungs­an­satz nen­nen, der Kin­dern ermög­licht, eige­ne Feh­ler zu machen und dar­aus zu ler­nen. Eine end­gül­ti­ge Sicher­heit kann es nicht geben, man kann sich nur gegen unnö­ti­ge Risi­ken wappnen.

Was bedeu­tet das, auf unse­re Sys­te­me über­tra­gen? Als im Früh­jahr der ers­te Todes­fall durch auto­no­mes Fah­ren gemel­det wur­de, bei dem ein begeis­ter­ter Tes­la-Fah­rer unter einen quer­fah­ren­den wei­ßen Las­ter geriet, der von sei­nem Sys­tem als Wol­ke miss­in­ter­pre­tiert wur­de, war der Auf­schrei groß, inklu­si­ve jener Stim­men, die es „ja schon immer gesagt“ haben.

Psy­cho­lo­gisch ist das ver­ständ­lich, da ein Tabu gebro­chen wur­de, indem ein Mensch ums Leben kam, nach­dem er die­ses einer Soft­ware anver­traut hatte.

Aber unab­hän­gig davon, wie man per­sön­lich zum auto­no­men Fah­ren steht, muss man nüch­tern kon­sta­tie­ren, dass welt­weit täg­lich hun­der­te Men­schen bei ähn­li­chen Unfäl­len ster­ben, weil sie oder ande­re Men­schen einen Feh­ler gemacht haben.

Und jetzt wird es bit­ter für Freun­de einer Voll­ab­si­che­rung: Wenn (und die­ser Trend scheint nicht auf­zu­hal­ten zu sein) wir uns durch Maschi­nen wirk­lich so mas­siv ent­las­ten wol­len, dass sie sogar unse­re Ent­schei­dun­gen tref­fen, müs­sen wir zuge­ste­hen, dass die­se letzt­end­lich vom Men­schen gemach­ten Maschi­nen auch fata­le Feh­ler machen wer­den (und dür­fen), so bit­ter das im Ein­zel­fall auch ist. Ent­schei­dend sind unser ver­ant­wor­tungs­vol­ler Umgang mit der Tech­no­lo­gie und die geziel­te Rück­füh­rung sol­cher Erfah­run­gen in die­se hin­ein. Wäre es nicht toll, wenn Sys­te­me sol­che Erfah­run­gen unter­ein­an­der wei­ter­gä­ben, wie es die Men­schen seit Urzei­ten am Lager­feu­er gemacht haben?

Jeder ver­meid­ba­re Scha­den ist einer zu viel, gewiss. Aber eine feh­ler­freie Welt ist Uto­pie. Und des­halb zählt am Ende die ganz ein­fa­che sta­tis­ti­sche Fra­ge, ob in Sum­me die Maschi­nen eine gerin­ge­re Feh­ler­quo­te haben als Men­schen. Ein Ver­teu­feln auf­grund ein­zel­ner Feh­ler ist weder hilf­reich noch soll­te es eine sinn­vol­le Tech­no­lo­gie ver­hin­dern. Auch durch Gur­te sind schon Men­schen gestor­ben, weil sie sich z.B. nicht schnell genug aus einem bren­nen­den Auto befrei­en konn­ten. Trotz­dem wür­de nie­mand den über­ra­gen­den Sicher­heits­ef­fekt von Rück­hal­te­sys­te­men in Fra­ge stel­len. Viel­leicht den­ken wir in eini­gen Jahr­zehn­ten so auch über auto­no­mes Fah­ren, wenn wir unser Unbe­ha­gen abge­legt haben.

Defensive Systeme

Was aller­dings gege­ben sein muss: Maschi­nen dür­fen Men­schen nicht unnö­tig in Gefahr brin­gen – sei es durch eine zu gro­ße Feh­ler­quo­te (dann darf die Maschi­ne schlicht­weg nicht an Men­schen­stel­le Ent­schei­dun­gen tref­fen, son­dern bes­ten­falls assis­tie­ren, so wie es die Stu­fen auf dem Weg zum auto­no­men Fah­ren ja auch vor­se­hen), sei es durch fahr­läs­si­ges Han­deln. Selbst­ver­ständ­lich wäre es in kei­ner Wei­se hin­nehm­bar, wenn z.B. auto­no­me Fahr­zeu­ge so etwas wie jene ver­bo­te­nen Stra­ßen­ren­nen ver­an­stal­ten wür­den, bei denen regel­mä­ßig Men­schen zu Scha­den kom­men und bei denen wir uns fra­gen, was bei der Erzie­hung der Fah­rer schief gelau­fen ist. Was uns wie­der zum Kern­punkt führt:

Maschi­nen soll­ten und kön­nen Regeln kon­se­quen­ter befol­gen als Men­schen. Und letzt­end­lich die­nen ja z.B. Ver­kehrs­re­geln einem: der gegen­sei­ti­gen Rück­sicht­nah­me und Risi­ko­mi­ni­mie­rung. Wäre das nicht ein loh­nen­des Entwurfsziel?

Fahr­schü­lern wer­den aus gutem Grund die Prin­zi­pi­en defen­si­ven und vor­aus­schau­en­den Fah­rens ein­ge­bimst. Und an die­sen Prin­zi­pi­en soll­ten wir auch unse­re Sys­te­me aus­rich­ten. Nicht nur die zum auto­no­men Fah­ren, son­dern wir soll­ten es zum all­ge­mei­nen Prin­zip unse­res Ent­wurfs machen, um über­grei­fen­den Sys­tem­ver­bün­den ein mög­lichst geschmei­di­ges und feh­ler­ar­mes Funk­tio­nie­ren zu ermöglichen.

Das könn­te ein defen­si­ves Sys­tem ana­log zu einem defen­si­ven Fah­rer kennzeichnen:

  • Es beach­tet die zum Gemein­wohl kon­stru­ier­ten Regeln ins­be­son­de­re ande­ren Sys­te­men (Mensch und Umwelt sind in die­sem Sin­ne auch Sys­te­me) gegenüber.
  • Es rech­net umge­kehrt damit, dass ande­re sich gege­be­nen­falls nicht an die­se Regeln hal­ten oder schlicht­weg Feh­ler machen, und besitzt des­halb Tak­ti­ken zur Fol­ge­feh­ler­ver­mei­dung (das betrifft zum einen Feh­ler im eigent­li­chen Sin­ne, zum ande­ren Schutz gegen Schadsoftware).
  • Es ist in der Lage, ein nicht ganz kon­for­mes Ver­hal­ten ande­rer zu tole­rie­ren, um den gesam­ten Pro­zess nicht zu blo­ckie­ren.5
  • Es ver­hält sich auch in Stress­si­tua­tio­nen regel­kon­form (im Extrem­fall dadurch, dass es eher den Dienst ein­stellt, als Regeln zu ver­let­zen, deren Ein­hal­tung es nicht mehr garan­tie­ren kann.6 ).

Der Trans­fer des „defen­si­ven Fah­rens“ ist also gar nicht so schwer, die kon­kre­te Umset­zung dann viel­leicht schon eher – aber dafür sind wir alle ja Exper­ten oder ken­nen wel­che. In vie­len Umfel­dern, gera­de von Groß­pro­jek­ten, wird das vor allem eine orga­ni­sa­to­ri­sche Her­aus­for­de­rung sein, man den­ke an Conway’s Law.

Im Fol­gen­den nur eini­ge Anre­gun­gen, wo die digi­ta­le Rei­se hin­ge­hen könnte:

  • Micro­ser­vices als der Sta­te of the Art des „Tei­le und herr­sche“ sind beson­ders durch die „Shared- Nothing“-Architektur ide­al für den Ent­wurf „sozia­ler“ Systeme.
  • Kon­zi­se­re, for­ma­le Sys­tem­be­schrei­bun­gen wie Zustands­mo­del­le, DSLs und natür­lich die bereits exis­tie­ren­den Schnitt­stel­len-Stan­dards, wie z.B AUTOSAR, müs­sen kon­sis­ten­ter und kon­se­quen­ter genutzt werden.
  • Hoch­in­te­grier­te Ent­wick­lungs­ver­fah­ren, wie z.B. Beha­vi­or Dri­ven Design, die Medi­en­brü­che ver­mei­den und früh eine hohe Auto­ma­ti­sie­rungs­quo­te erzielen.
  • Robust­heits­tests, deren Ziel es ist, nach­zu­wei­sen, dass der Ser­vice in allen denk­ba­ren Kon­stel­la­tio­nen sei­nen Qua­li­täts­an­for­de­run­gen genügt.
  • Machi­ne Lear­ning in der Qua­li­täts­si­che­rung (z.B. in Hin­blick auf Pla­nung enger Test­res­sour­cen, aber auch auf inhalt­li­che Qualität).
  • Betriebs­kä­fi­ge, die (ana­log zu den Käfi­gen von Indus­trie­ro­bo­tern) den eigent­li­chen Ser­vice zur Lauf­zeit ein­bet­ten, um Scha­den zu ver­hin­dern, Annah­men zu veri­fi­zie­ren u.ä..

Die­se Lis­te lie­ße sich belie­big fort­set­zen und ver­tie­fen, was hier aber aus Platz­grün­den ent­fal­len muss. Wir freu­en uns auf Erfah­rungs- und Ideen­tausch, aber natür­lich auch auf Zusam­men­ar­beit bei sol­chen Themen.

5 Die­ser Punkt bezieht sich im Stra­ßen­ver­kehr z.B. dar­auf, jeman­den ein­sche­ren zu las­sen, der sich falsch ein­ge­ord­net hat, da man schließ­lich nicht wis­sen kann, ob er nur einen Feh­ler gemacht hat oder sich bewusst einen Vor­teil ver­schafft. Bei Sys­te­men wäre dar­un­ter z.B. eine libe­ra­le Schnitt­stel­len­im­ple­men­tie­rung zu ver­ste­hen, die klei­ne­re Feh­ler akzep­tiert oder gar kom­pen­siert (wenn z.B. nur die PLZ, aber nicht der Orts­na­me ange­ge­ben ist).

6 Vie­le Assis­tenz­sys­te­me stel­len z.B. ihren Ser­vice ange­kün­digt ein, wenn man ihn sich gera­de beson­ders wün­schen wür­de: Z.B. wenn bei schwe­rem Schnee­fall die Daten­qua­li­tät von opti­schen oder Radar­sen­so­ren nicht mehr aus­reicht. Im Gegen­satz zu einem Men­schen soll­te sich ein Sys­tem nicht überschätzen.

Fazit und Ausblick

Der bewusst etwas kon­tro­ver­se Arti­kel soll­te auf­zei­gen, dass wir uns von der Voll­ab­si­che­rung ver­gan­ge­ner Tage ver­ab­schie­den müs­sen, weil in Zei­ten der Digi­ta­li­sie­rung, des auto­no­men Fah­rens und des IoT ein Groß­teil des Ver­hal­tens zwi­schen den Sys­te­men statt­fin­det, wo er kaum zu beschrei­ben, vor­her­zu­se­hen und abzu­si­chern ist. Als Exper­ten für Qua­li­täts­si­che­rung soll­ten wir des­halb aber nicht den Kopf in den Sand ste­cken, son­dern auf ein Umden­ken hinwirken.

Je unmög­li­cher wegen der Kom­ple­xi­tät eine Absi­che­rung im Gro­ßen wird, des­to wich­ti­ger wird sie im Klei­nen. Das ist vor allem auch eine Fra­ge des Ent­wurfs und der Ent­wick­lungs­me­tho­dik. Wir plä­die­ren dafür, den Sys­tem­ent­wurf in Rich­tung „defen­si­ve Sys­te­me“ zu ent­wi­ckeln, die sich ana­log zum defen­si­ven Fah­ren so ver­hal­ten, dass das unüber­schau­ba­re Gesamt­sys­tem mög­lichst rei­bungs- und feh­ler­los funk­tio­nie­ren kann.

In einer Zeit, da die klas­si­sche Qua­li­täts­si­che­rung an Kom­ple­xi­täts­gren­zen zu schei­tern droht, ist es an uns Exper­ten vom ASQF, unse­re Kun­den zu neu­er Qua­li­tät zu füh­ren. Das ist unser Apfel­bäum­chen in einer kaum noch beherrsch­ba­ren Welt.

Kommentare und Feedback gerne via Social Media:

Blei­ben Sie auf dem Lau­fen­den – mit dem monat­li­chen sepp.med Newsletter: