DSGVO und wie man es nicht macht

Sep 02 2018

Ich möchte jedes Mal schreien, wenn ich mit der DSGVO konfrontiert werde. Nicht, weil ich sie schlecht finde - sondern weil in dem Versuch, die Unsicherheit zu Überwinden, alles falsch gemacht wird, was man nur falsch machen kann. Ich habe sicherlich nicht die Weisheit mit Löffeln gefressen, und stand auch lange auf Kriegsfuß mit den neuen Regelungen. Dennoch möchte ich hier an dieser Stelle die Top 3 der DSGVO-Dummheiten vorstellen.

Ich stelle hier auch Lösungsvorschläge vor. Ich bin jedoch kein Anwalt - das ist keine Rechtsberatung, sondern nur ein Vorschlag, der ggf. vor einer Umsetzung nochmals anwaltlich geprüft werden sollte!

 

Platz 3 belegen die Datenschutzerklärungsgeneratoren. Die DSGVO widerspricht sich hier ganz klar. Sie fordert einerseits, dass eine Datenschutzerklärung allgemeinverständlich ist. Andererseits will sie eine vollständige Auflistung der Daten, die gesammelt werden, und derer Verwendung. Aber ganz ehrlich - wer ließt sich denn 2-3 Seiten Datenschutzerklärung durch? Das ist nicht allgemeinverständlich, das ist allgemeinverschleiernd. Bei so einem Textblock voll Techsprech denk'™ sogar ich als jemand, der jedes Wort davon versteht, mir höchstens 'œjaja, ihr stellt allen möglichen Scheiß mit den Daten an. Cookies löschen, und gut is'!' - Mal ehrlich, kriegt ihr das nicht irgendwie kompakter hin? Drei, vier Sätze reichen doch völlig! Da besteht dann auch die Chance, dass jemand anderes als der nächstbeste Abmahnanwalt das liest. Die beste Möglichkeit, die Datenschutzerklärung kurz zu halten, ist übrigens, einfach keine Daten zu sammeln. Was völlig im Sinne der DSGVO wäre...

 

Weiter zu Platz 2: Die Ärztekammer hat den Ärzten eine komplette Seite 'œEinverständniserklärung' zur Verfügung gestellt. Wofür soll ich mein Einverständnis geben?

  • Für die Behandlung notwendige Daten werden von anderen Ärzten eingeholt.
  • Für die Behandlung durch andere Ärzte notwendige Daten werden an diese weitergegeben.
  • (als Opt-In) Ich darf telefonisch vom Arzt kontaktiert/informiert/beemailt werden.

Die Erklärung, warum ich dieses Opt-In machen soll: 'œSonst dürfen wir Sie nicht anrufen, wenn ein Termin nicht haltbar ist.'

JA HALLO?! GEHT'™S NOCH?! Welcher selbsternannte DSGVO-'œSpezialist' in der Ärztekammer hat denn diesen SCHEISS verbrochen? Für NICHTS aus der Liste benötigt ihr mein Einverständnis. Das geht zu 100% konform mit 'œwir brauchen die Daten zur Vertragserfüllung'. Aber mal ganz langsam und von vorne.

  1. Eine Einverständniserklärung ist immer die dümmste Variante, so etwas zu regeln. Ein Anruf, und das Einverständnis ist weg. Und dann?
  2. 'œDaten werden eingeholt' - ja, macht halt. Wieso soll ich dazu jetzt extra eine Einverständniserklärung abgeben? Wenn ihr mich ohne diese Daten nicht korrekt und vollständig behandeln könnt, ist es offensichtlich, dass ihr diese Daten braucht. Sie sind 'œnotwendig zur Vertragserfüllung'. Wenn ihr die Behandlung auch ohne die Daten sicher korrekt durchführen könnt, bringt euch auch die Einverständniserklärung nix, weil dann sind die Daten nicht notwendig, und damit dürft ihr sie auch mit der Einverständniserklärung nicht anfragen.
  3. 'œDaten werden weitergegeben' - das ist zugegebenermaßen ein etwas schwierigerer Punkt. Man kann aber durchaus davon ausgehen, dass eine erfolgreiche Behandlung im Sinne des Kunden/Patienten ist. Da nur für die Behandlung notwendige Daten überhaupt angefordert werden dürfen, sehe ich an dieser Stelle ebenfalls kein Problem das als 'œnotwendig zur Vertragserfüllung' abzustempeln, zumindest bei Hausärzten. Hier sei auch nocheinmal darauf verwiesen, dass in der Schulmedizin gerne von einer "vollständigen Anamnese" geredet wird. Dahinter steckt soviel wie "die jüngste Krankheitsgeschichte kann durchaus einen Einfluss auf die Diagnose haben".
  4. Wenn die Koordination bestehender Termine nicht 'œnotwendig zur Vertragserfüllung' ist - was ist es dann?

Fazit: ich habe ein Blatt unterschrieben, das völlig unnötig ist. Nicht nur unnötig - sogar potentiell gefährlich. Denn durch die Existenz dieses Blatts wird eine auch ohne die Existenz des Blattes rechtskonforme Datenverarbeitung durch einen einfachen Anruf plötzlich zu einem Verstoß gegen die DSGVO. Also... lieber bleiben lassen, und eine bessere Begründung suchen. Die gibt es definitiv.

 

Und last, but not least, auf Platz 1: 'œMit dem Erwerb von Tickets erklärt ihr euch damit einverstanden,'

Jetzt muss ich erstmal Luft holen. An diesem Satz ist so viel falsch, dass ich gar nicht weiß, wo ich anfangen soll. Die Ursache ist mir absolut klar: es gibt eine gewisse Rechtsunsicherheit, was das Fotografieren auf Konzerten angeht, und insbesondere auch darüber, ob man diese Fotos dann z.B. als Band oder Veranstalter auf Facebook stellen darf. Dieser Unsicherheit möchte man möglichst pragmatisch entgegenwirken. Soweit, so verständlich. Aber - und das ist ein großes ABER - leider Mist. Hier werden gleich mehrere Regeln verletzt, was zu einem großen Problem für die Veranstalter werden kann:

  1. Wie bereits vorher erwähnt, eine Einverständniserklärung ist jederzeit widerrufbar. Damit halst man sich also enorme Probleme auf: Peter Müller geht auf ein Konzert, wird 17mal fotografiert, und diese Fotos werden veröffentlicht. Jetzt fällt Peter Müller aber auf, dass er das gar nicht möchte, und widerruft seine Einverständniserklärung. Nun müssen alle Fotos von diesem Abend gesichtet werden, und diejenigen, auf denen Peter Müller identifizierbar ist entfernt werden. Macht das jetzt nicht nur einer, sondern gleich mehrere, wird der Aufwand sehr schnell sehr groß. Da wäre es doch klug, wenn man einen anderen Grund hätte, die Bilder zu veröffentlichen, oder?
  2. Jede Einverständniserklärung muss unabhängig von einem Vertrag sein. Es muss also möglich sein, ein Ticket auch zu erstehen, ohne die Einverständniserklärung abzugeben. Ist das nicht der Fall, ist das ein Verstoß gegen die DSGVO - und damit ein klares Eigentor.
  3. Einverständniserklärungen müssen nach der DSGVO immer explizit erfolgen. Ein 'œmit Abschluss des Vertrages sind Sie einverstanden' ist ungültig, und ebenfalls ein Verstoß gegen die DSGVO.

Hier sitze ich als Vorstand eines kleinen Festivals mit vielen anderen im selben Boot. Abhilfe schafft hier ein anderes Gesetz, das sogenannte "Medienprivileg". Was bedeutet das? Fotos, die zum Zwecke der (journalistischen) Berichterstattung angefertigt und veröffentlicht werden, sind von den problematischen Regelungen der DSGVO ausgenommen. Für Fotos unter "Archiv", "vergangene Veranstaltungen", etc. werden also - nach meinem aktuellen Wissensstand - keine schriftlichen und expliziten Einverständniserklärungen benötigt. Anders sieht es aus, wenn man ein Foto zu Marketingzwecken einsetzen will - sprich: z.B. auf die Startseite setzen. Da sollte man sich durchaus etwas mehr Gedanken drüber machen, unter welchen Umständen ein Foto verwendet werden kann. Aber das kann man ja dann im Zweifelsfall mit den abgebildeten Personen direkt klären...

 

Tja... was bleibt jetzt da noch zu sagen? Wenn ich jedes Mal einen Schnaps trinken würde, wenn ich mitbekomme, dass irgendwer was Dummes aufgrund der DSGVO macht, wäre ich wohl mittlerweile stark alkoholabhängig, und vor allem: rund um die Uhr besoffen. Also bitte, liebe Veranstalter, liebe Ärzte, liebe Webseitenbetreiber - denkt doch bitte einmal kurz nach, und überlegt, ob das, was ihr tut, wirklich im Sinne der DSGVO ist, oder ob euch nicht vielleicht doch irgendwer Mist erzählt hat. Im Zusammenhang mit einem neuen Gesetz passiert das schließlich häufiger, und auch ich musste mich erst lange damit beschäftigen, bis ich verstanden habe, wie die DSGVO denn tatsächlich funktioniert...

Nicht von dieser Welt

Jun 04 2016

Kennt ihr das? Man sitzt abends gemütlich mit seinen Freunden zusammen bei einem Bier, und jeder erzählt Anekdoten aus seinem Arbeitsalltag. Die Stimmung ist gut, alle lachen - und einer schweigt. Man denkt sich: der ist aber still heute. Vielleicht müde, vielleicht krank. Oder schüchtern. Introvertiert.

Tja, ich bin einer von diesen Schweigenden. Klar, ich rede sonst auch nicht viel, aber gerade bei dieser Gelegenheit ist kein Ton von mir zu hören. Denn ich bin auf eine ganz besondere Art anders: Ich bin Informatiker. Software-Entwickler, um genau zu sein. Und ich erlebe jeden Tag so viel Mist, bekomme jeden Tag eine Wagenladung voller Anekdoten vor die Nase gesetzt, ich muss nur zugreifen und sie einstecken. Und dennoch schweige ich. Warum?

Dazu muss ich etwas ausholen. Zu den Anekdoten der Anderen. Da ist zum Beispiel Peter. Peter ist LKW-Fahrer, aus Leidenschaft. Er hat nach dem Abitur beschlossen, lieber eine Ausbildung zu machen, und seine Begeisterung für Kraftfahrzeuge aller Art zu seiner Berufung gemacht. Und Peter erzählt: "Da fahr ich also auf die A8, wie immer. Mir war ja schon bewusst, dass es ein bisschen geschneit hat. Aber was mich auf der Autobahn erwartet hat, hab ich noch nie erlebt: ich fahr also gemütlich um die Kurve, erschrecke, mache eine Vollbremsung, und steh vor einer weißen Wand. Es hat nicht mehr viel gefehlt, dann hätte ich von meiner Fahrerkabine aus einen Schneemann bauen können. Da hilft dann auch nicht mehr viel - ich ruf' also den Disponenten an und warte auf den Räumdienst." Alle lachen. Weil sich jeder in die Situation reindenken kann.

Oder Timo. Timo hat gerade sein Medizinstudium beendet, und macht die Facharzt-Ausbildung zum Chirurgen. "Und gestern, da war ein Patient da, ich musste mich echt zusammenreißen, damit ich nicht laut loslache... hat der doch glatt eine Bissverletzung im Enddarm. Und erzählt dann, dass er sich aus Versehen auf seinen Hamster gesetzt hat." Noch mehr Gelächter.

Tina, eine Ingenieurin, erzählt: "und ich sitz so da, und baue meine Platine. Ein Widerstand, ein kurzer Leiter, ein Chip, ein Knopf..." - "Ein Knopf?!" - "Jepp, ich Trottel hab einfach mal meinen Hemdknopf auf die Platine gelötet. Macht das nie, Jungs. Das Plastik stinkt wie Hölle, und die Platine ist für'n Arsch." Peter: "Das kann ich mir vorstellen. Ich hatte letztens eine Ladung Tiefkühlfisch, und mitten auf der A6 ist mir dann die Kühlung ausgefallen..." Gelächter. Timo: "Boah, das ist ja sooo eklig. Da hatte ich letztens eine auf'm Tisch, ich glaub, die hat sich ihr Leben noch nie untenrum gewaschen..."

Und dazwischen sitze ich. Schweigend. Ich habe allein an diesem Tag drei Fehler in unserem Produkt beseitigt, Fehler die aus purer Dummheit des Entwicklers entstanden sind, und über die ich mich mit meinen Kollegen noch in einem Jahr lustig machen werde. Ich versuch's also mal: "Heute hatte ich auch wieder einen tollen Bug... da hielt es ein Kollege für eine tolle Idee einen Pointer zu dereferenzieren, den er erst danach setzt. Und das war seit 7 Jahren im Code." Schweigen. "Ein Pointer ist ein Verweis auf eine Variable. Wenn der auf nichts zeigt kann man ihn nicht dereferenziehren. Das führt zu einer Exception." Schweigen. "Einem Crash." Schweigen. "Meine Güte, bei uns hat vor 7 Jahren jemand einen Crash eingebaut, der nie aufgetreten ist, weil die entsprechende Codestelle 7 Jahre lang nie aufgerufen wurde." Ein lautes "Ahhhh" der Menge führt uns dann wieder zurück zu Tina, deren Sensor falsch kalibriert war, und zu Peter, der wegen eines Planungsfehlers von einem Kollegen auf der gesamten Tour verfolgt wurde. Ich schweige. Für den Rest des Abends.

Wir Informatiker, Programmierer, Software- und Datenbankjunkies kommen prima klar mit uns. Aber unser Job ist inkompatibel zum Rest der Welt. Wir sprechen eine andere Sprache, eine Sprache, für die es oft keine Metaphern aus der realen Welt gibt. "Mein Kollege hat heute ein Refactoringprojekt einer der Kernklassen eingecheckt, und dabei den Gluecode vergessen, und ist dann in den Feierabend gegangen..." ist für uns völlig verständlich. Einen "Muggel" habe ich dabei spätestens bei dem Wort "eingecheckt" verloren: Dein Kollege ist Lehrer? Eine Klasse eingecheckt? In ein Hotel?

Refactoring bedeutet, dass Code umgeschrieben wird, sodass er danach strukturierter ist, leichter nachvollziehbar, aber immer noch das gleiche tut. Das ist noch einfach. Bei Klassen wird es schon schwieriger: In einem Programm gibt es jede Menge an "Objekten". Ein Objekt ist dabei eine Ansammlung von zusammengehörigen Informationen. Die Art dieses Objekts nennt man "Klasse". So kann zum Beispiel die Klasse "Auto" die Informationen "Hersteller", "Typ" und "Sitzplätze" beinhalten. Für jedes Objekt Auto sind also dann Hersteller, Typ und Sitzplätze eindeutig zuordenbar gespeichert.
Schon etwas komplizierter, oder? Und jetzt der Hammer: "eingecheckt". Es gibt für uns Entwickler Tools, die sich "Versionsverwaltung" nennen. Das kann man sich vorstellen, wie einen Schrank, in dem unser Quelltext liegt. Jeder Entwickler hat eine oder mehrere lokale, nur für ihn selbst zugängliche Kopien dieses Originalschranks, in denen er arbeiten kann, und wenn er eine Änderung so gemacht hat, dass er zufrieden damit ist, kann er (Teile seiner) Änderungen wieder veröffentlichen. Dazu stellt er eine Kopie seiner Kopie des Schranks vor den Originalschrank, was dann die Kopie seiner Kopie zum Originalschrank für alle anderen Entwickler macht. Abgefahrene Sache, das. Aber wenn man das alles bei jedem Erzählen einer Anekdote von neuem Aufrollen muss, wird aus einem einfachen Satz ein halbstündiger Vortrag, und keiner möchte mehr zuhören.

Ich würde an der Unterhaltung so gerne teilnehmen. Aber die einzigen allgemein verständlichen Versionen des obigen Satzes, ohne die lange Erklärung, sind: "Ein Kollege hat heute kurz vor Feierabend den ganzen Betrieb blockiert." Und: "Ein Kollege hat heute etwas ganz dummes gemacht, und ich durfte es ausbaden." Und während alle anderen ihre Anekdoten anreichern mit Beschreibungen, Metaphern, Adjektiven und Bildern, kann ich nur stupide diesen einen Satz wiederholen.

An solchen Abenden fühle ich mich genau so: nicht von dieser Welt. Ich sitze da, schweige, und wünsche mich nach Hause. Denn so sehr ich die Zeit mit meinen Freunden auch genieße - wenn ich daran nicht teilnehmen kann, kann ich mich auch einfach mit einer Flasche Wein in die Badewanne setzen, und dabei Musik hören.

Hydraulic Fractioning im Zahnschmerz der Grammatik

Mai 15 2014

Auch in dieser Woche bin ich wieder auf einige hochqualitative Artikel gestoßen (worden). Der Gewinner ist diesmal:

Gegen Gasbohren - Video der Woche: Der Frack-Öl-Bombenzug

Dieser Artikel ist so toll, ich weiß gar nicht, wo ich anfangen soll. Vielleicht beim Titel: Polemisch? Ja. Prägnant? Nicht so wirklich. Was will mir der Autor mit dieser Anhäufung von Worten sagen? Frackzug? Ölzug? Irgendwas mit Krieg? Als Informatiker bin ich versucht, Klammern zu setzen. Also versuchen wirs:

Frack-(Öl-Bombenzug)

Nein, das ließt sich, wie ein Frack aus Bombenteppich. Sowas bekommt man bei keinem Schneider. Höchstens bei einem Friedenspolitiker.

(Frack-Öl)-Bombenzug

Das ließt sich doch schon ein wenig sinnvoller. Was der Zug da macht, ist zwar immernoch unklar, aber ein bisschen soll man ja auf den Artikel neugierig gemacht werden. Nachdem das jetzt endlich geschafft ist, und ich mir auch den Titel erklären kann, geht es also los mit der ersten Neuigkeit:

Öl, oder besser: die durch Wärmeeinwirkung entstehenden Dämpfe sind leicht entflammbar. Nicht nur das, wenn es einmal brennt, kann das unter bestimmten Umständen sogar explodieren. Dem Artikel nach aber nur, wenn es mit der Methode des "Hydraulic Fractioning" gefördert wurde. Auf herkömmliche Art gefördertes Öl ist dagegen ganz harmlos1, und vor allem gibt es keinerlei Argumente gegen das Fracking, die man sonst anführen könnte2.

Nachdem der physikalische Schmerz, den mir diese Offenbarung bereitet hat, erst einmal abgeklungen ist, konnte ich mich dann also mit dem weiteren Artikel beschäftigen. Insgesamt habe ich sechs Grammatikfehler4, einen äußerst dähmlichen5 Rechtschreibfehler6 und ein falsch benutztes Fremdwort7 identifizieren können. Nicht schlecht für einen Text von gerade mal 17 Zeilen Länge.

Nein, mal ehrlich, ein kleiner Fehler kann jedem Mal passieren. Dagegen bin auch ich nicht Imam8. Aber wer an einer Rechtschreib- oder Grammatikschwäche leiden lässt, sollte vielleicht ein Einsehen mit der Welt haben und die Auokorrektur-Funktion welchen Office-Paketes auch immer nutzen. Das ist nicht schwer, und hilft gegen Kopfschmerzen.

Und, nur für den Fall dass die Verantwortlichen das hier lesen und ihren Artikel dann ändern, möchte ich euch noch den Screenshot der Seite, wie ich sie vorgefunden habe, zur Verfügung stellen: Screenshot anzeigen.


1 Die logische Konsequenz wäre, auf fossile Brennstoffe ganz zu verzichten. Aber das zu fordern ist unnötig, es gab nämlich noch nie Unfälle mit herkömmlich gefördertem Öl.
2 Da fallen mir spontan nur das auf extreme Kurzzeitgewinne abgezielte Wirtschaftsinteresse3 und der Umweltschutz (nachzulesen bei Wikipedia) ein. Bestimmt kann man da noch mehr finden, wenn man nur mal drüber nachdenkt...
3 Die Förderungsleistung eines Hydraulic Fracturing-Bohrloches sinkt im Verlauf eines Jahres um 70%.
4 Geben Sie Ihre Stimme den Kandidaten, die schlechter Grammatik in Deutschland den Zutritt zu Deutschland verbieten wollen!
5 Ja, so dämlich.
6 Ich dachte immer "avon" wäre ein Putzmittel. Oder Faltencreme. Irgendwas mit Beraterin auf jeden Fall.
7 Äh, wie noch mal isoliert man einen Vorfall?
8 Sag ich doch!

Übersetzung: Programmieren stinkt!

Mai 10 2014

Ein Essay von Peter Welch, ins Deutsche übersetzt von Christian N. Hofmann.

Peter Welch ist ein freier Autor aus Brooklyn, der auf seiner Webseite stilldrinking.org Essays über fast alles und jeden schreibt. Seine Meinungsäußerungen gibt es ebenfalls in geballter Ladung in Buchform (auch auf Papier!) unter dem Titel And Then I Thought I Was A Fish beim Medienriesen käuflich zu erwerben, allerdings nur für diejenigen, die des Englischen mächtig sind.

 

Programmieren stinkt

Jeder meiner Freunde - jeder mit einem Job, der auch nur im entferntesten etwas damit zu tun hat, mehr als zweimal pro Woche irgendetwas hochzuheben, das mehr wiegt als ein Laptop -, schafft es irgendwann, die folgende Aussage in eine Unterhaltung einfließen zu lassen: "Junge", denn es fängt immer mit "Junge" an, "deine Arbeit ist nicht hart. Ich habe gerade eine 4700-Stunden-Woche hinter mir, in der ich nur mit einem Schraubenzieher bewaffnet einen Tunnel unter Mordor gegraben habe."

Klar - keiner mag Mordor und es ist bestimmt körperlich wesentlich anstrengender, einen Tunnel zu graben, als eine Tastatur zu pieksen, es sei denn man ist eine Ameise. Aber könnten wir uns, nur für diese Abhandlung, darauf einigen, dass Stress und Irrsin ebenfalls schlechte Dinge sind? Klasse. Willkommen in der Welt der Softwareentwicklung.

 

Alle Softwareentwickler-Teams sind aus und von Verrückten zusammengestellt

Stell Dir vor, Du würdest in einem Ingenieursteam anfangen. Frisch von der Universität, aufgeregt und voller Enthusiasmus und neuer Ideen - gerade aus einer Welt aus sauberen, hübschen Entwürfen, die durch ihre Einheit aus Zweck und Design beinahe Erstaunen hervorrufen. Zuerst lernst Du Mary kennen. Mary leitet ein Brückenbauprojekt in einem wichtigen Metropolgebiet. Sie stellt Dir Fred vor, nachdem Du es durch die 15 Sicherheits-Checks geschafft hast, die Dave installiert hat, weil Daves Sweatshirt Einmal Und Nie Wieder von seinem Schreibtisch gestohlen wurde. Fred arbeitet nur mit Holz, daher fragst Du, warum er an einer Brücke arbeitet, die den Rush-Hour-Verkehr einer Großstadt über 60m Stromschnellen tragen soll. Keine Sorge, antwortet Mary. Er ist für die Gehwege verantwortlich. Welche Gehwege? Naja, Fred hat sich für die Einführung von Gehwegen stark gemacht, und sie machen auf der Brücke schon was her. Natürlich müssen sie ohne Geländer gebaut werden, denn es gibt eine strikte Keine-Geländer-Regel von Phil, der übrigens kein Ingenieur ist. Keiner weiß genau, was Phil eigentlich macht, aber es ist definitiv voller Synergie und hat etwas mit der Managementabteilung zu tun, und kein Ingenieur will sich mit dem Management beschäftigen, also lassen sie Phil einfach tun, was er will. Sara hat währenddessen einige Techniken zum Betonieren ausgegraben - allerallerneueste Bananentechnik!, und hat sie allesamt ins Brückendesign eingearbeitet, was bedeutet dass man sie alle irgendwie vermeiden muss, da jede Technik ihre eigenen Sicherheitsrisiken birgt. Tom und Harry arbeiten schon seit Jahren zusammen, und mindestens genauso lange streiten sie sich darum, ob sie jetzt das metrische oder das angloamerikanische Maßsystem benutzen. Mittlerweile bestimmt es einfach derjenige, der zuerst an einem Entwurfsteil arbeitet, was unglaubliche Kopfschmerzen bei alle denjenigen zur Folge hat, die tatsächlich versuchen, die Dinge zusammenzubauen, die die beiden zeichnen. Deswegen wird nun einfach ein Teil an das nächste geschraubt, gehämmert oder geschweißt, komme was da wolle. Ach, übrigens, das Projekt war ursprünglich eigentlich als Hängebrücke konzipiert, da aber keiner hier weiß, wie man eine Hängebrücke baut, wurden einfach irgendwann mal Unterstützungspfeiler dazugestellt, damit das Ding irgendwie stehen bleibt. Die Seile der Hängebrücke sind natürlich immernoch da - die halten schließlich auch noch Teile zusammen. Keiner weiß genau, welche Teile, aber jeder ist sich absolut sicher, dass es sehr wichtige Teile sind. Nachdem Du nun das ganze Team kennengelernt hast, darfst Du auch gerne eigene Ideen einbringen - leider hast Du keine Ideen, denn eigentlich bist Du Antriebstechniker und hast überhaupt keine Ahnung von Brücken.

Würdest Du über diese Brücke fahren? Nein. Falls sie irgendwie gebaut werden würde müsste man dafür wohl alle Beteiligten exekutieren. Und dennoch ist jedes Programm, das Du nutzt von irgendeiner Version dieses Teams geschrieben worden - Bankensoftware, Webseiten und ein universell eingesetztes Programm, dessen eigentlicher Zweck es war, Daten im Internet zu schützen und den es nie erfüllt hat.

 

Jedes Stück Quellcode ist schlecht

Jeder Programmierer tut es: wenn niemand zu Hause ist schaltet er die Lichter an, schenkt sich ein Glas schottischen Whiskys ein, schaltet etwas seichte deutsche Electronica ein, und öffnet eine Datei auf seinem Computer. Es ist nie die gleiche Datei, einige Entwickler haben sie selbst geschrieben, einige haben sie gefunden und wussten, dass sie sie abspeichern müssen. Sie lesen die Zeilen Zeichen für Zeichen und weinen vor Freude über ihre Schönheit, und dann vor Trauer, sobald sie einen Gedanken an all die anderen Dateien und den unausweichlichen Kollaps alles Guten in dieser Welt.

Diese Datei enthält Guten Code. Er hat sinnvolle und konsistente Namen für Funktionen und Variablen. Er ist knapp und prägnant. Er macht nichts offensichtlich dummes. Er musste nie in der Wildnis überleben oder sich gegenüber dem Sales-Team rechtfertigen. Er erledigt genau eine mundane, spezifische Aufgabe, und er erledigt sie gut. Er wurde von einer einzelnen Person geschrieben und niemals von einer anderen Person berührt. Er ließt sich wie Poesie, die jemand über 30 geschrieben hat.

Jeder Programmierer beginnt seine Karriere damit, eine perfekte kleine Schneeflocke wie diese zu schreiben. Dann erfährt er am Freitag, dass er bis Dienstag 600 solcher Schneeflocken geschrieben haben muss, also wird hier ein wenig gemogelt, und dort ein wenig kopiert, und dann muss das Ganze noch irgendwie zusammengeflickt werden, oder man muss einen Kollegen bitten, eine dieser Schneeflocken zu bearbeiten. Dieser schmilzt sie natürlich prompt ein, und zum Schluss sind alle dieser Schneeflocken zu einer undefinierbaren Masse zusammengepanscht und jemand lehnt einen Picasso dagegen, weil niemand die Katzenpisse sehen will, die in all die zerbrochenen Schneeflocken einsickert, die im Tageslicht dahinschmelzen. Kaum eine Woche später schaufelt irgendwer weiteren Schnee darauf, nur damit der Picasso nicht umfällt.

Es gibt eine Theorie, dass dafür eine Medizin existiert. Diese besteht daraus, Standards zu folgen, nur dass es mehr "Standards" gibt, als Dinge die ein Computer tun kann, und dass diese Standards beliebig durch die persönlichen Präferenzen derjenigen verbessert und verschlechtert werden, die versuchen, sie umzusetzen, sodass keine Ansammlung von Quellcode es jemals in die wirkliche Welt schafft, ohne ein paar dutzend identische Aktionen mit genauso vielen nichtmal ansatzweise ähnlichen Methoden zu erledigen. Die ersten paar Wochen an jedem unserer Arbeitsplätze bestehen einfach nur darin, herauszufinden, was ein Programm wie tut - selbst wenn man mit jeder einzelnen verwendeten Sprache, jedem Framework und jedem Standart so vertraut ist, wie mit seiner eigenen Hand, denn: Standards sind Einhörner.

 

Es wird immer dunkel sein

Ich bin einige Jahre mit einem Schrank in meinem Kinderzimmer aufgewachsen. Der Schrank hatte einen seltsamen Aufbau. Zuerst sah er ganz normal aus, dann setzte man sich hinein um Schrankdinge zu tun, und bemerkte, dass die Wand rechts einen Alkoven barg, der ein praktisches kleines Regal bildete. Dann sah man nochmal genauer hin, und bemerkte, dass die Wand des Alkoven nachgab, und einem Versteck Platz machte, in das kein Licht eindrang und das sofort als die Tagesbehausung jedes Monsters erkennbar war, dem man des Nachts mit Taschenlampe und Stofftier Paroli bot.

Genau so fühlt es sich an, Programmieren zu lernen. Man lernt all die nützlichen Werkzeuge kennen, nur um sich danach nach weiteren Werkzeugen umzuschauen, und darauf hin noch einige nützliche zu finden, und einige, die den bodenlosen Horror bergen, der immer in diesem Schrank lauerte.

Nehmen wir einmal an, Du wärst ein durchschnittlicher Webentwickler. Du kennst Dich mit einem Dutzend Programmiersprachen aus, jeder Menge hilfreicher Bibliotheken, Standards, Protokollen und was nicht sonst noch alles. Du musst Dein Repertoire immer noch wöchtentlich um etwa ein Sonst-Noch-Alles erweitern und die anderen hundert Dinge, die Du bereits kennst auf Neuerungen oder Fehler überprüfen, sicherstellen, dass sie alle zusammen passen, und dass niemand den Bug in einem davon gefixt hast, den Du ausnutzt, weil Du dachtest, das wäre eine echt klasse Idee als Du irgendwann mal an einem Wochenende ziemlich betrunken… naja, lassen wir das. Du bist mit allem auf dem neuesten Stand, und alles funktioniert - und dann bricht alles zusammen.

"We Te Eff?" fragst Du, und beginnst das Problem zu suchen. Du stellst fest, dass irgendwann mal ein Idiot sich gedacht hat, dass, weil ein anderer Idiot einmal festgelegt hat, dass 1/0 unendlich ist, man ja 1/0 als Abkürzung für "unendlich" benutzen könnte, um den Code zu vereinfachen. Dann hat ein Nichtidiot korrekterweise festgestellt, dass das dumm war, was eigentlich der erste Idiot festgestellt haben hätte sollen, aber weil er das nicht hat, hat der Nichtidiot beschlossen, ein Arsch zu sein und genau das in seinem neuen Compiler zu einem "failing error" zu machen, zu einem "unverzeihlicher Fehler". Weil er aber nun ein Arsch war, hat er beschlossen, keinem zu erzählen, dass das ein Fehler ist, und jetzt stehst Du da und alle deine Schneeflocken sind Katzenpisse, und Du kannst nicht einmal die Katze finden.

Du bist also ein Experte in all diesen Technologien, und das ist gut, denn die Erfahrung und das Wissen haben dir geholfen, das Problem in nur sechs Stunden zu lösen - die andere Option wäre gewesen, deinen Job zu verlieren. Und nun hast Du eine kleine Extrainformation, die Du irgendwo in diesen Millionen kleiner Informationen vergräbst und von der Du dir merken musst, wo und warum - denn fast alle deiner Werkzeuge wurden einmal von Ärschen und Idioten geschrieben.

Und all das nur im Feld deiner Wahl, das nur einen winzigen Bruchteil all der Dinge darstellt, die es in der Informatik zu wissen gibt, einen so kleinen Bruchteil, dass Du genauso gut einfach gar nichts gelernt haben könntest. Niemand, nicht eine einzige Person auf der Welt, weiß, wie alles in deinem fünf Jahre alten MacBook funktioniert. Warum sagen wir Dir, dass Du es aus und einschalten sollst? Weil wir nicht die geringste Ahnung haben, an welcher Krankheit es leidet, und weil es wirklich einfach ist, einen Computer in ein Koma zu versetzen und seine eingebauten automatischen Ärzte nach dem Problem suchen zu lassen. Der einzige Grund, warum die Computer von Programmierern besser laufen als die aller anderen ist, dass Programmierer wissen, dass Computer schizophrene kleine Kinder mit Autoimmunerkrankungen sind und wir sie nicht schlagen, wenn sie böse sind.

 

Viel Arbeit steckt im Internet, dem Internet als seine eigene spezielle Hölle

Erinnerst Du Dich an das Zeug mit den Verrückten und dem schlechten Code? Das Internet ist genau das - nur dass es sprichwörtlich eine Milliarde mal schlimmer ist. Webseiten, wie z.B. glorifizierte Einkaufswägen mit vielleicht drei dynamischen Seiten, werden von ganzen Entwicklerteams rund um die Uhr gewartet, denn die Wahrheit ist: alles bricht immer und überall zusammen. Gerade jetzt bekommt jemand bei Facebook zig tausende von Fehlermeldungen und versucht irgendwie den Fehler zu finden, bevor die ganze Scharade in sich zusammenbricht. Es gibt ein Team bei Google, das seit drei Tagen nicht geschlafen hat. Irgendwo sitzt eine Datenbank-Programmiererin umgeben von jeder Menge Mountain Dew-Flaschen, während ihr Ehemann glaubt, sie sei tot. Und wenn diese Menschen aufhören, bricht in der ganzen Welt ein Inferno los. Die meisten Menschen wissen nicht, was Systemadministratoren tun, aber glaube mir: wenn sie alle zur gleichen Zeit Mitagspause machen würden hätten sie nicht genug Zeit bis zum Griechen zu kommen, bevor Deine Munition zur Neige ginge, mit der Du Dein Hab und Gut vor marodierenden Banden von Mutanten zu schützen versuchst.

Man kann das Internet nicht neu starten. Abermilliarden von Dollars sind davon abhängig, dass ein klappriges Gestell aus den Spinnweben inoffizieller Vereinbarungen und "es reicht grad so fürs Release"-Code mit Kommentaren wie "TODO: RICHTIGE LÖSUNG FINDEN, DAS IST EIN WIRKLICH GEFÄHRLICHER HACK, ICH WEISS NICHT WAS EIGENTLICH FALSCH LÄUFT", die vor zehn Jahren geschrieben wurden. Und die Legionen von Menschen, die breite Teile des Internets angreifen, aus Gründen der Spionage, für Geld oder einfach nur weil ihnen langweilig ist. Schon jemals was von 4chan gehört? 4chan kann dein Leben und deine Firma zerstören, weil sie Dich für einen Nachmittag nicht mögen, und wir sind dadurch nichteinmal beunruhigt, denn was ist schon eine einzelne Atombombe in einem Nuklearkrieg.

Im Internet kann man leicht sagen "weißt Du, das funktioniert meistens, wenn man die richtige Technologie dafür benutzt", und BAM! ist es Teil des Internets. Jeder, der nur ein paar hundert Dollar und einen Computer hat, kann sich einen kleinen Teil des Internets schnappen und welchen grausamen Hack auch immer er gerade für genial hält hineinsetzen, und der kleine Hack kommt dann zu vielen anderen kleinen Hacks und alles wird ein wenig schlimmer. Selbst die guten Entwickler geben sich keine Mühe, die arkanen Regeln, die die Mitarbeiter der Organisation zum implementieren einiger Einhörner aufgestellt haben, zu erlernen, weswegen jeder die Hälfte seiner Zeit damit verbringt, darüber nachzudenken, dass nichts mit nichts zusammenpasst oder auch nur den geringsten Sinn ergibt, und jederzeit auseinander fallen könnte, und wir versuchen nur, es zu verschleiern und hoffen, dass es keiner bemerkt.
Hier sind die geheimen Regeln des Internet: Fünf Minuten, nachdem Du das erste Mal einen Webbrowser öffnest, hat ein Kind in Russland Deine Sozialversicherungsnummer. Hast Du dich für irgendetwas angemeldet? Ein Computer bei der NSA verfolgt Deine physikalische Position für den Rest Deines Lebens. Eine eMail verschickt? Deine Mailadresse ist gerade in Nigerien auf einer Reklametafel erschienen.

Das alles passiert nicht, weil es uns egal ist und wir nicht versuchen, es aufzuhalten. Es passiert, weil alles kaputt ist, weil es keinen guten Code gibt, und jeder nur versucht, es am Laufen zu halten. Das ist dein Job, wenn Du mit dem Internet arbeitest: hoffen, dass das, was Du zuletzt geschrieben hast stark genug ist, um Dir ein paar Stunden zum Essen und Schlafen zu verschaffen.

 

Wir waren nicht "schon immer" verrückt, wir werden erst verrückt gemacht

FEHLER: Versucht, HTML mit regulärem Ausdruck zu parsen; System gab "Cthulhu" zurück.

Lustig, nicht? Nein? Wie ist es mit dieser Unterhaltung:

"Heißt das da umkehrArray"?
"s/camel/_/"
"Danke."

War der Kerl nicht hilfreich? Mit dem Kamel? Wirkt das wie eine angemessene Antwort? Nein? Gut. Du kannst Jesus noch finden. Du hast noch nicht so viel Zeit Deines Lebens damit verbracht, Code zu lesen, dass Du anfängst in Code zu reden. Das menschliche Gehirn ist nicht sonderlich gut darin, auch nur grundlegende Logik zu verarbeiten, und wir arbeiten in einem Karrierezweig, dessen Aufgabengebiet ausschließlich aus Logik besteht - und zwar sehr, sehr komplexer Logik. Endlose Ketten abstrakter Bedingungen und Voraussetzungen müssen nach kleinen Dingen wie fehlenden Kommas durchforstet werden. Das den ganzen Tag zu tun bringt dich in einen Status milder Aphasie, wenn Du Leuten in die Augen schaust, während sie reden, und Du nicht weißt, wann sie fertig sind, weil sie nicht "Semikolon" sagen. Du tauchst in eine Welt der absoluten Bedeutungslosigkeit, in der alles was zählt eine kleine Folge von Zahlen in einem gigantischen Labyrinth aus Symbolen ist, nur um am anderen Ende eine völlig andere Folge von Zahlen oder ein Bild eines Kätzchens zu finden.
Der zerstörerische Einfluss auf das Gehirn wird dargestellt durch die Programmiersprachen, die die Menschen so schreiben.

Das hier ist ein Programm:

#include <iostream> int main( int argc, char** argv ) { std::cout << "Hello World!" << std::endl; return 0; } 

Dieses Programm tut genau das gleiche:

`r```````````.H.e.l.l.o. .w.o.r.l.di

Genau wie dieses:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

Und dieses:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.

Und irgendwann mal hat jemand eine Programmiersprache geschrieben, die jemand anderen dieses Programm schreiben ließ:

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :|| open(Q,$0);while(){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/| /:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"n"; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:| 

Laut dem Autor, besteht das Programm aus "zwei Zeilen Code, die zwei Zeilen eingebetteter Kommentare auf die Mayazahlen durchsuchen, die die Nummern der ASCII-Zeichen des Titels des Magazines repräsentieren, dargestellt um 90 Grad gedreht und in ASCII-Art."

Das Programm hat einen Wettbewerb gewonnen, weil… natürlich hat es das. Möchtest Du in dieser Welt leben? Nein. Das ist eine Welt, in der Du eine Schachtel Zigaretten am Tag rauchst und niemand darüber auch nur nachdenkt. "Natürlich raucht er eine Schachtel am Tag, wer würde das nicht tun?" Irgendwann wacht jeder Entwickler einmal auf, und bevor er bei vollem Bewusstsein ist, sieht er die ganze Welt und jede Beziehung in ihr als Codefetzen, und er tauscht Geschichten darüber aus als wäre es das normalste auf der Welt, dass Müdigkeit Halluzinationen auslöst. Es ist eine Welt, in der Menschen auf Sex verzichten, um eine Programmiersprache für Orang-Utans zu entwickeln. Alle Entwickler zwingen Ihre Gehirne dazu etwas zu tun, wofür sie nie gemacht wurden, in einer Situation die sie nie verbessern können, acht bis fünfzehn Stunden am Tag, fünf bis sieben Tage die Woche, und jeder von ihnen wird langsam aber sicher verrückt.

</rant>

Also: nein. Ich muss keine 50 Kilo schweren Dinge heben können. Ich habe das für die Möglichkeit getauscht, Satans Schamhaare zu rasieren, während er aus meinem offenen Schädel speist, nur damit ein paar Teile des Internets ein paar Tage länger funktionieren können.

 

TL;DR: Professionelle Softwareentwicklung in 5 Schritten

 

Weitere empfehlenswerte Essays von Peter Welch:

Schuber und Romanreihen

Sep 05 2013

Wie so oft streune ich in virtuellen Buchläden umher, freue mich meiner Leselust und stöbere durch Sammelbände und Einzelstücke. Ich bin eine Leseratte, doch nicht nur, auch eine Sammlerratte.

Gerade war ich auf der Suche nach einem ganz bestimmten Stück Information. Wie vielleicht einige von euch mitbekommen haben, hat Stephen King ja unter anderem eine sehr komplexe Buchreihe geschrieben, den "žDunklen Turm". Diese Reihe hatte er eigentlich im Jahr 2004 beendet. 2012 hat sich Stephen King nochmals umentschieden, und einen achten Band geschrieben, den er zwischen Band 4 und Band 5 einordnet.
Nun verhält es sich so, dass ich alle sieben Bände des Dunklen Turms bereits als Taschenbuch besitze - in dieser hübsch glänzenden Auflage von Heyne. Und in dieser Form will ich auch den achten Band noch nachkaufen.
Und was macht Heyne? Die veröffentlichen das Buch nicht im alten Layout - sondern machen ein neues. Wer auf gleiches Aussehen steht, kann ja die anderen sieben Bände nochmal im neuen Layout kaufen.

Nun ja, dies ist auf jeden Fall der Grund dafür, dass ich diesen etwas älteren Text von mir noch einmal umarbeite und nun auch veröffentliche. Damals ging es um Eragon und dessen Komplettausgabe im Schuber: Ich stand vor einem virtuellen Bücherregal, in dem mir ein Schuber mit drei Bänden der vierteiligen Eragon-Saga feilgeboten wurde. Drei Bände im Schuber. Vier Bände sollten es am Schluss werden. Nur um sicher zu gehen, zähle ich nochmals nach: Eins, zwei, drei. Tatsächlich. Und kein Platz im Schuber für einen vierten. (mittlerweile gibt es einen Schuber mit allen vier Bänden!) Und da drängt sich mir die Frage auf: Wer zum Geier kauft sowas? Nicht, dass es das erste Mal wäre - nein, es gab bereits DVD-Schuber für Herr der Ringe, Film 1+2, für Harry Potter, Filme 1-4, sowie Bücher 1-4, 1-5 und 1-6, für den Goldenen Kompass, Band 1-2, und die Aufzählung könnte noch unendlich weitergehen. Vor Veröffentlichung jedes einzelnen Schubers war bekannt, dass die Buch/Filmreihe noch nicht beendet ist. Und dennoch: Der Wahnsinn nimmt kein Ende...

Liebe Leser, würdet ihr beispielsweise einen Urlaub buchen, einen dieser All-Inclusive-Urlaube, mit dem Wissen, dass die Sonnenschirme erst ein oder zwei Tage nach Ihrer Ankunft aufgestellt werden können - man will schließlich vor Saisonbeginn anreisen -, nur um dann festzustellen, dass die Schirmständer vorsorglich zubetoniert wurden?
Würdet ihr euch eine Lampe kaufen, ohne Birnen, versteht sich, die müssen noch nachgekauft werden, - nur um dann zu bemerken, dass das Gewinde abgeschliffen wurde?
Würdet ihr euch den Brockhaus in 20 Bänden (beispielsweise als Abo-Version) kaufen - angeboten mit "passendem Regal", in das nur 18 davon reinpassen?

Genauso wenig möchte ich eine unfertige Bandreihe kaufen, bei der die Möglichkeit den letzten Band passend zu den ersten zu erstehen nicht gegeben ist.

Deswegen: Liebe Verlage da draußen! BITTE lasst diesen Schwachsinn, verkauft Schuber erst, wenn ihr das vollständige Produkt habt - oder dies zumindest annehmen könnt. Aber doch nicht, wenn VOR Erscheinen der gesammelten Anthologie schon feststeht, dass noch ein Band erscheinen wird. Das ist nämlich weder lustig, noch praktisch, sondern einfach nur unpassend.

Und WENN es doch noch einmal vorkommen sollte, dass, wie im aktuellen Fall, eine eigentlich fertige Romanreihe nochmal um einen Roman erweitert wird - was ist denn so schlimm daran, diesen passend zu den alten Büchern zu gestalten? Glaubt ihr ernsthaft, dass in der Zeit von eBooks irgendwer sich die anderen sieben Bücher doppelt kauft?