Microservices architectures seem to be the new trend in the approach to application development. However, one should always keep in mind that microservices architectures are always closely associated with a specific environment: Companies want to develop faster and faster, but resources are also becoming more limited, so they now want to use multiple languages and approaches. Therefore, it is difficult to evaluate a microservice architecture without reference to the environmental conditions. However, if you separate these external factors, you can still see that a microservice architecture offers much more isolation than other architectures – and can also handle security measures better than, for example, monolithic approaches due to today’s techniques and tools.
Continue readingsecure systems
Home Sweet Home Office
Working from home has many advantages but also numerous risks
During the global pandemic in 2020 the German government has decided to restrict social contacts as much as possible. Companies increasingly allowed their employees to work from home.
According to the statista website, only 4% of all those surveyed have been working from home before 2020. This value increased to 27% during the first lockdown in April 2020, which is almost a quarter of all respondents who worked exclusively or mainly from home. The value fell over the year but increased to 24% in January 2021. This shows a clear trend towards more people working from home.
(statista 2021)
This blogpost pursues two central questions:
- What factors influence performance, commitment and job-satisfaction of employees working from home
- What are the risks for employers and how can these risks be reduced?
The magazine “Spiegel” published an article with the headline “Homeoffice mit drei Kindern Zu Hause im Versuchslabor” (Der Spiegel 2020). This article clearly shows the challenge of balancing work and childcare. A challenge that many people had to overcome during last year. But what are the advantages, and what are the disadvantages of working from home?
Not every job is suitable for remote work. A surgeon can hardly operate on his patients at home. Also a baker can not sell his rolls to his customers at home. A software developer, on the other hand, can easily program his application at home or anywhere else in the world. Industries that are most suitable for working at home include jobs in the IT industry, marketing, services such as travel agencies, and jobs in the service sector such as call centres. But also areas of public administration, such as the citizens’ office, increasingly worked from home last year. As schools were closed, teachers also had to restructure their teaching and offered online classes or provided teaching material while the students had to work independently from home.
So why was there less work from home in the past?
Continue readingThe Way of System Thinking – Was Systemdenken ausmacht

Ein Artikel von Jessica Hofmann und Julia Grimm
In unserem Leben, egal ob im Privaten oder Beruf, müssen wir Entscheidungen treffen. Diese Entscheidungen haben so gut wie immer eine Konsequenz. Bei alltäglichen Entscheidungen ist uns das oft nicht bewusst. Erst bei großen und schweren Entscheidungen sind wir Menschen uns darüber im Klaren, dass das was wir vorhaben zu tun unser Leben in Zukunft beeinflussen wird. Wir erwarten häufig von uns selbst Entscheidungen schnell zu treffen, da wir uns nur selbst als nützlich erachten, wenn wir etwas tun. Daher kommt es, dass wir uns oft nicht die Zeit nehmen über Entscheidungen nachzudenken und herauszufinden was gerade wirklich passiert. Wir fokussieren uns darauf so schnell wie möglich weiterzukommen und verlieren das große Ganze – the Big Picture – aus den Augen, in welchem sich alle unserer Entscheidungen und unser Handeln zusammenfinden.
Die Welt, in der wir leben ist immer mehr vernetzt und durch die wachsende Globalisierung wächst auch die Komplexität sozialer Systeme. Der internationale Handel zum Beispiel verknüpft Nationen auf der ganzen Welt zu einem mächtigen wirtschaftlichen Feedbackloop. Was genau ein solcher Feedbackloop ist werden wir später noch genauer betrachten. Einzelne Systeme (falls diese überhaupt je getrennt voneinander funktioniert haben) wachsen und kommen immer näher zusammen. Verwachsen einige dieser Systeme miteinander, erzeuget dies komplexe und unvorhersagbare Effekte. Es ist also kaum noch möglich, einen Überblick über das gesamte System zu haben. Aber dieser Tatsache sind wir uns nicht immer bewusst. Je nachdem welche Perspektive wir hierbei einnehmen, bekommen wir ganz unterschiedliche Eindrücke wie die Realität aussieht. Hier passt das bekanntes Gleichnis „Die blinden Männer und der Elefant“ sehr gut.
In dieser Erzählung untersuchen fünf Blinde, die noch nie zuvor einem Elefanten begegnet sind, einen echten Elefanten mit ihren Händen. Sie sollen dadurch einen Eindruck bekommen, was ein Elefant ist. Jeder von ihnen steht an einer anderen Stelle und betastet so eine andere Stelle des Elefanten. Einer untersucht den Rüssel, einer ein Ohr usw.. Am Ende sprechen sie darüber wie ein Elefant aussieht und fangen heftig an zu streiten, weil jeder sein Bild für richtig hält, aber alle völlig unterschiedlich sind. Schließlich kommt der Elefantenführer dazu und sagt ihnen, dass sie alle richtig und alle falsch liegen, denn jeder von ihnen kennt nur einen Teil des wirklichen Elefanten. Wenn sie all ihre Erfahrungen zusammennehmen, dann würden sie einen Eindruck bekommen, wie der tatsächliche Elefant aussieht. Jeder von ihnen ist also aufgrund seiner individuellen Erfahrung zu einer eigenen, unvollständigen, aber logischen Schlussfolgerung gekommen.
Genau mit diesen Problemen – der Komplexität von Systemen, dem Hang überstürzte Entscheidungen zu treffen und die Realität nur aus einer Perspektive zu betrachten – befasst sich System Thinking.
Was ist System Thinking?
Beim System Denken wird davon ausgegangen, dass sich all unsere Handlungen und Entscheidungen mehr oder weniger in Verbindung zueinanderstehen und voneinander abhängig sind. System Thinking soll Menschen und auch Organisationen, wie Teams, Abteilungen oder Firmen dabei helfen, die Konsequenzen ihres Handelns besser zu verstehen und sich an die Umwelt, in welcher wir uns befinden anzupassen. System Thinking ist ein Skillset, um die Komplexität des Verhaltens besser vorherzubestimmen und zu verstehen und letzten Endes auch den Ausgang anzupassen. System Thinking bietet uns Menschen eine Möglichkeit die Realität zu sehen so wie sie ist und über diese zu Sprechen.
Bevor wir uns genauer damit beschäftigen und dieses Skillset genauer betrachten, wie man tatsächlich im System denkt, werden wir uns erst noch genauer mit dem Begriff System Thinking auseinandersetzen und diesen genauer einordnen. Außerdem wollen wir uns noch genauer mit den psychologischen Aspekten befassen, die die Denkweise des Menschen beeinflussen und was hierbei besonders wichtig wird, wenn wir im System denken wollen. Zu guter Letzt werden noch einige methodische Ansätze kurz erläutert, um ein paar praktische Methoden des System Thinkings mit auf den Weg zu geben.
Sind wir nur schick angezogene Höhlenmenschen?
Versetzen wir uns in folgende Situation: Bei einem Projekt laufen wir in ein Problem. Wir können nicht weitermachen, weil weitere Arbeitsschritte von dem Problem abhängig sind. Was tust du? Findest du schnell eine Lösung, um das Problem zu lösen oder nimmst du dir die Zeit, um die Ursache des Problems zu finden?
Die meisten Menschen würden hierbei wahrscheinlich antworten, dass sie sich die Zeit nehmen würden, die verschiedenen Möglichkeiten für die Ursache des Problems abzuwägen, und dann nach dem sie alle Pros und Cons für die unterschiedlichen Lösungen verglichen haben, treffen sie eine rationale Entscheidung.
Dieses rationale Entscheidungsmuster wird von uns Menschen jedoch gar nicht so oft genutzt, wie wir uns das gerne einreden. Oft verlassen wir uns bei der Lösung komplexer Probleme auf unsere sogenannte Intuition und treffen eine emotionsgetriebene Entscheidung. Der rational denkende Mensch, das was uns vom Tier unterscheidet, ist vielmehr ein Bild, welches wir Menschen gerne von uns selbst haben, aber meist nicht immer der Realität entspricht.
Der Grund dafür liegt aber schon Jahrtausende zurück. Und zwar tragen wir Menschen immer noch unser evolutionäres Erbe von vor 10 000 Jahren mit uns herum. Denn seit her hat sich bei der Entwicklung unseres Gehirns nicht mehr viel getan. Unsere Umwelt hat sich hingegen in den letzten 10 000 Jahren rapide geändert. War es bei unseren Vorfahren vor 20 Generationen noch wichtig im Bruchteil einer Sekunde über Leben oder Tod zu entscheiden, weil hinter jedem Baum ein Raubtier lauern konnte, welches einen fressen wollte, leben wir heutzutage in einer vollkommen industrialisierten und digitalisierten Welt.
Die Welt, in der wir aktuell leben ist so komplex, dass emotional Entscheidungen oft nicht zielführend sind. In einer so vernetzen Welt ist es wichtig, sich erst ein Bild und Überblick über dieses Komplexe zu verschaffen und das direkte Tun und Handeln einen Moment zurückzustellen und stattdessen zu denken. Und genau hier kommt System Thinking ins Spiel.
Das Seerosen-Modell
Es steckt oft mehr dahinter als das, was wir im ersten Moment sehen. Beim System Thinking geht es darum unter die Oberfläche zu blicken oder wie man gerne sagt über den Tellerrand hinauszuschauen. Es geht darum die Muster in unserem Alltag oder bei der Arbeit zu erkennen und Situationen besser einzuschätzen und zu bewältigen.
Bei der Recherche für diesen Artikel sind wir immer wieder auf die Metapher des Seerosenteichs gestoßen, um den Grundgedanken des System Thinkings zu veranschaulichen. So ist bei einer Seerose der größte Teil verborgen und liegt unter der Wasseroberfläche. Unsere Aufmerksamkeit gilt auf den ersten Blick aber nur den wunderschönen Blüten und Blättern der Seerose. Diese wunderschöne Blüte kann jedoch nur existieren und wachsen, weil sie durch ein enormes Wurzelsystem mit Nährstoffen aus dem Wasser und dem Boden versorgt wird. Es bringt also nichts nur die Seerosen an der Oberfläche zu betrachten und diese zu pflegen. Um einen gedeihenden Seerosenteich zu haben, reicht es nicht nur die verwelkten Blüten und Blätter zu stutzen. Wir müssen auch unter die Wasseroberfläche schauen und an der Wurzel arbeiten, denn nur dann kann die Seerose weiterwachsen. Wenn wir nun unsere Welt mit einer Seerose gleichsetzen, bedeutet das, dass wenn wir bei einem System strukturelle Änderungen vornehmen und die Wurzel des Problems anpacken wollen, um nicht nur Symptome zu behandeln, sondern die Ursache, wir tiefer schauen und einen Blick unter die Oberfläche wagen müssen. Je tiefer wir also in den Teich hinabschauen, desto effektiver sind unsere Maßnahmen.
Nachdem wir das Seerosen-Modell nun im Kontext des System Thinking betrachtet haben, lässt sich sagen, dass es beim System Thinking in erster Linie darum geht das große Ganze – the Big Picture – zu betrachten.
Wo sind die Ursprünge des System Thinking? Was sind die Grundannahmen?
Die Ursprünge des System Thinking liegen in der System Theorie. Die Wurzeln finden sich in so unterschiedlichen Disziplinen wie Biologie, Kybernetik und Ökologie. Systemdenken bietet einen Einblick in die Funktionsweise der Welt, die sich deutlich von der traditionellen reduktionistischen, analytischen Sicht unterscheidet. Kognitive Prozesse des Erkennens und Problemlösens, die auf Konzepte der Systemtheorie Bezug nehmen, werden oft unter dem Begriff System Thinking oder Systemdenken zusammengefasst.
Wie bereits erwähnt leben wir in einer immer komplexer werdenden Welt. Um in dieser Welt vernünftig zu überstehen, fordern Experten, welche sich mit System Thinking befassen, mehr Systemdenker. Menschen mit solch einem Skillset werden nicht nur in wissenschaftlichen oder Disziplinen oder dem Ingenieurwesen benötigt, sondern in allen Bereichen unseres Lebens. Entscheidungen am anderen Ende der Welt, wie zum Beispiel die Rodung des Regenwaldes haben Auswirkungen auf den gesamten Globus. Auf Grundlage dieser Überlegung könnte man gar argumentieren, dass alle Menschen in Entscheidungspositionen ein solides Verständnis für das System Thinking haben sollten.
Wenn nun System Thinking das Allheilmittel für die Probleme dieser Welt sind, was ist es überhaupt genau? Hierauf gibt es keine eindeutige Antwort.
In der Literatur gibt es eine Reihe verschiedener Definition für den Begriff des System Thinking, jedoch unterscheiden sich diese oftmals und es gibt keine eindeutige allgemeingültige Definition. Das Problem bei der Begrifflichkeit ist, bzw. was sie so schwer macht zu definieren, dass dieser Begriff schon so oft definiert und redefiniert wurde. Wenn man die verschiedenen Definitionen und Erklärungen betrachtet, weißen sie dennoch eine Vielzahl an Gemeinsamkeiten auf. Diese wollen wir im Folgenden genauer betrachten und damit den Oberbegriff, um den es in diesem Blogbeitrag geht eingrenzen.
Prägend für das System Thinking an sich ist der Begriff System für sich selbst. Schon das Wort System hat je nach dem in welchem Kontext und welcher Disziplin es verwendet wird unterschiedliche Bedeutungen. In dem Fall des System Thinking macht die naturwissenschaftliche Definition wohl am meisten Sinn. So ist ein System laut Duden in einem naturwissenschaftlichen Kontext eine „Gesamtheit von Objekten, die sich in einem ganzheitlichen Zusammenhang befinden und durch die Wechselbeziehungen untereinander gegenüber ihrer Umgebung abzugrenzen sind“. Ein Grundprinzip eines Systems ist also, dass es mehr ist als eine bloße Ansammlung seiner Teile. Dies können wir auch für das System Thinking annehmen. So finden sich einige Grundannahmen, die für das bloße System gelten auch beim System Thinking wieder. Wenn wir System Thinking genau betrachten, besteht es in erster Linie zunächst einmal aus drei Dingen. Den einzelnen Elementen, die Beziehung der einzelnen Elemente zueinander und dem Zweck oder auch dem Ziel. Aus diesen Grundannahmen lassen sich wiederum Charakteristiken für ein System ableiten.
Charakteristik von Systemen
- Zweck: Systeme haben immer einen Zweck. Der Zweck oder auch das Ziel eines Systems ist eine Eigenschaft des Systems als Ganzes und nicht eines der Elemente. So ist das System Flugzeug in seiner Gesamtheit dafür verantwortlich Passagiere von A nach B zu fliegen. Dieser Zweck ist eine Eigenschaft des gesamten Systems und nicht das einer einzelnen Turbine oder eines Flügels und wird erst durch das Zusammenspiel der einzelnen Flugzeugteile erreicht.
- Gesamtheit: Es müssen alle Teile vorhanden sein, damit ein System seinen Zweck optimal erfüllen kann. Wenn wir einem System ein Element wegnehmen oder auch hinzufügen können, ohne dass es die Funktion des Systems beeinflusst, dann haben wir kein System, sondern eine bloße Ansammlung von Elementen, die nicht in Abhängigkeit zueinanderstehen. Wenn wir zum Beispiel aus einem Werkzeugkasten ein Werkzeug herausnehmen, bleibt die Funktion des Kastens erhalten. Wir haben lediglich den Inhalt geändert.
- Reihenfolge: Die Reihenfolge, in der die Elemente unseres Systems angeordnet sind, beeinflussen dessen Leistung. Wenn wir die Elemente beliebig anordnen können, dann ist es kein System. So spielt es bei unserem Werkzeugkasten keine Rolle, ob der Schraubenzieher über oder unter dem Hammer liegt. Bei unserem Flugzeug hingegen ist die richtige Anordnung der einzelnen Elemente für einen sicheren Flug überlebenswichtig. Daraus können wir schließen, dass die Anordnung der einzelnen Elemente in einem System sehr wichtig ist.
- Feedback: Beim Feedback oder auch zu Deutsch der Rückkopplung werden Informationen übermittelt und zurückgegeben. Das wichtigste Merkmal des Feedbacks ist, dass es Informationen an das System liefert, die es wissen lassen, wie es sich in Bezug auf einen bestimmten Zustand verhält.
Dies sind wichtige Charakteristika, die für die Definition eine prägende Rolle spielen.
So definiert Barry Richmond, System Thinking als die Kunst und Wissenschaft, zuverlässige Rückschlüsse auf das Verhalten zu ziehen, indem man ein immer tieferes Verständnis der zugrunde liegenden Struktur entwickelt. Er betont, dass Menschen, die Systemdenken praktizieren, sich so positionieren, dass sie sowohl den Wald als auch die Bäume sehen können.
Auf Richmonds Definition berufen sich die meisten anderen Definitionen, jedoch werden diese noch erweitert.
Eine Definition, welche sich aus der Auswertung umfassender Literatur ergab, ist die von Megan Hopper und Krystyna Stave. Hopper und Syave bekräftigen die Notwendigkeit einer allgemein akzeptierten Definition. Sie warnen auch davor, dass der Begriff System Thinking auf verschiedene und manchmal auch widersprüchliche Weise verwendet wird, was bei der Findung für eine allgemeingültige Definition nicht gerade hilfreich ist.
Aus der Arbeit von Hopper und Stave ergeben sich folgende Grundannahmen für das System Thinking, welche auch die bereits erwähnten Charakteristiken von Systemen ergänzen:
- Erkennen von Zusammenhängen
- Erkennen von Rückkopplungen
- Dynamisches Verhalten verstehen
- Unterscheidung der Arten von Flüssen und Variablen
- Konzeptuelle Modelle verwenden
- Erstellen von Simulationsmodellen
- Erprobung von Politiken
Was alle Definitionen berücksichtigen und worunter sich die meisten einig sind ist, dass Elemente und die Charakteristiken, die ein System ausmachen, die Zusammenhänge, das Verständnis von dynamischen Verhalten, die Systemstrukturen als Ursache für dieses Verhalten und die Idee, Systeme als Ganzes und nicht als Teile zu betrachten, sind.
Einblick in unsere Psyche
Jetzt haben wir einen Eindruck was unter System Thinking eigentlich zu verstehen ist. Bevor wir nun mit den Methoden des System Thinking beschäftigen, sollten wir nochmal einen Schritt zurücktreten und uns anschauen, wie das menschliche Denken überhaupt funktioniert. Wie fällen wir Urteile und kommen zu Entscheidungen? Zuerst einmal müssen wir uns von dem Gedanken verabschieden, dass wir in der Lage sind rein objektive Entscheidungen aufgrund der Kenntnis aller relevanter Fakten zu treffen. Der Mensch ist weder in der Lage völlig objektiv zu sein noch die Wirklichkeit zu 100% exakt zu erfassen.
Wir konstruieren uns unsere Wirklichkeit
Unser Gehirn ist ein Meister darin Lücken zu schließen, um ein vollständiges Bild zu formen. Ohne dass wir bewusst etwas davon mitbekommen, ergänzt unser Gehirn fehlende Informationen oder übergeht Unpassende (zumindest bis zu einem gewissen Grad). Und diese Eigenschaft ist essenziell wichtig, damit wir uns in der Welt überhaupt orientieren können.
Unsere Wahrnehmung ist durch mehrere Faktoren beschränkt. Zum einen sind unsere Sinnesorgane nicht in der Lage alle möglichen Informationen auch aufzunehmen. Beispielsweise können Licht nur in im Spektrum zwischen 380 nm und etwa 780 nm wahrnehmen. Ein anderer Faktor ist die beschränkte Verarbeitungskapazität unseres Gehirns. Pro Sekunde sind wir in der Lage 15.000.000 Bits an Daten über unsere Sinnesorgane wahrzunehmen. Von all diesen Informationen können wir aber nur ca. 0,0004% bewusst verarbeiten. Unser Gehirn hat sich also im Laufe der Evolution so entwickelt, dass es sich auf ein Minimum der notwendigen Informationen beschränkt und den Rest ergänzt. Auf diese Weise konstruiert das Gehirn ein Abbild unserer Realität. Dieses Konstrukt hat Einfluss darauf, was wir fühlen und wie wir handeln.
Neben den biologischen Faktoren wird die Wahrnehmung auch von psychologischen und soziokulturellen Faktoren beeinflusst. Das bedeutet, dass unsere aktuelle Stimmung, unsere Erwartungen und Erfahrungen mitbeeinflussen was wir wahrnehmen und wie wir es verarbeiten. Somit ist der Wahrnehmungsprozess keine reine Abbildung der physiologischen Realität, sondern vielmehr eine Konstruktion der individuellen Wirklichkeit. Das unser Gehirn auf diese Weise alle Informationen zusammenfügt, sorgt dafür, dass wir uns relativ problemlos in der Welt orientieren und in ihr agieren können.
Wir sind in der Lage innerhalb von Sekundenbruchteilen eine Situation einzuschätzen, indem die gesammelten Informationen in unser mentales Model – unseren Bezugsrahmen – gesetzt werden und fehlende Informationen ergänzt werden. Welche Teile des Gesamtbildes in unserem Kopf nun aber auch tatsächlich wahrgenommenen Reizen beruhen und welche ergänzt wurden, ist für uns nicht mehr nachvollziehbar. Das ist mitunter einer der Gründe warum Augenzeugenberichte sich teilweise stark voneinander unterscheiden können. Je nachdem was die Zeugen für Vorerfahrungen hatten und wo ihre Aufmerksamkeit in dem Moment lag unterscheiden sich die Bilder, welche sie von der Situation im Gedächtnis behalten.
Diese Funktionsweise unseres Gehirns hat sich über viele Jahre entwickelt und unseren Vorfahren das Überleben gesichert. Das Problem ist aber, dass sich unsere Umwelt seitdem dramatisch verändert hat. Unsere heutige Umwelt ist deutlich komplexer und erfordert viel mehr Vorausdenken, um Veränderungen zu antizipieren.
Denken wir immer gleich?
In der modernen Psychologie wird davon ausgegangen, dass wir zwei voneinander abhängige Systeme des Denkens haben. Ein System (System 1) für das unbewusste, automatische und schnelle Denken und ein System (System 2) für das bewusste und langsame Denken. Welches System gerade aktiv ist, ist uns oft gar nicht bewusst. Doch in den meisten Fällen ist System 1 aktiv. Die Aktivitäten von System 1 geschehen automatisch und nahezu mühelos, während System 2 Aufmerksamkeit und mehr kognitive Ressourcen erfordert.
In den meisten alltäglichen Situationen ist der Hauptakteur System 1, da dieses deutlich weniger mentale Ressourcen benötigt und viel schneller ist. In den meisten Situationen ist System 1 auch völlig ausreichend beziehungsweise notwendig. Wir wären kaum lebensfähig, wenn wir über jeden Schritt, jeden Atemzug und jede unserer Handlungen bewusst nachdenken müssten. System 1 geht dabei nach dem What you see is all there is (WATASI) Prinzip vor und ist auch in der Lage Informationen parallel zu verarbeiten. Es geht davon aus, dass wir alle notwendigen Informationen besitzen, um die richtige Entscheidung zu treffen. Unser Gehirn ignoriert in diesem Fall, dass es Informationen gibt, auf die es keinen Zugriff hat. System 1 ist auch völlig unempfindlich gegenüber Qualität und Quantität von Informationen. Das oberste Ziel ist es ein konsistentes Gesamtbild aus den vorhandenen Informationen zu schaffen, um handlungsfähig zu bleiben. Das ist auch der Grund warum wir dazu neigen überall kausale Zusammenhänge herzustellen und bereits aus einem Minimum an Informationen einen Kontext abzuleiten. System 1 beurteilt alle Ereignisse danach, ob sie in unser mentales Muster passen. Da wir unbewusst danach streben, ein möglichst konsistentes Gesamtbild zu erhalten, akzeptieren wir oftmals auch wenig stichhaltige Argumente, solange diese in unser mentales Modell passen.
Wollen wir nun im Zuge des System Thinking das Gesamtsystem versuchen zu erfassen und das im Bewusstsein, dass wir niemals alle Informationen besitzen, müssen wir aktiv das System 2 nutzen. System 2 ist für das bewusste Denken und unsere Selbstbeherrschung zuständig. Dieses Denksystem ist in der Lage zu zweifeln und Dinge zu überdenken, indem wir bewusst nach neuen Informationen suchen oder die gegebenen Informationen neu strukturieren. Es ist das Kontrollsystem, welches die Aktivitäten von System 1 überwacht und dann aktiv wird, wenn System 1 an seine Grenzen stößt. Bei der Lösung komplexer Denkaufgaben greifen wir auf dieses System zu. Allerdings schöpft dieses System auch deutlich stärker unsere mentale Arbeitskraft aus, was dazu führt, dass wir schneller ermüden. System 2 kann sich auch nur auf eine Aufgabe konzentrieren es arbeitet Informationen sequentiell ab. Das heißt, wenn wir mental gerade sehr mit einer Aufgabe beschäftigt sind, werden wir in allen anderen Bereichen leichtgläubig, da System 1 keine Zweifel kennt und System 2 beschäftigt ist.
System 2 wird also nur in bestimmten Situationen und für eine bestimmte Zeit lang aktiv. Es akzeptiert auch eine gewisse Fehleranfälligkeit von System 1. Der Grund ist, dass voreilige Schlussfolgerungen dann effizient sind, wenn sie mit hoher Wahrscheinlichkeit zutreffen, wenn die Kosten eines gelegentlichen Fehlers akzeptabel sind und wenn dadurch Mühe und Zeit gespart werden können. Dieses Vorgehen hat uns im Laufe unserer Evolution vor dem Aussterben bewahrt. Wir mussten oft innerhalb von Sekunden auf Basis der aktuell vorhandenen Informationen entscheiden, ob wir fliehen oder kämpfen sollten.
Das System Thinking hingegen erfordert, dass wir uns ganz bewusst mit allen Möglichkeiten auseinandersetzen und damit gezielt das System 2 nutzen ohne dass wir den Vereinfachungen von System 1 zu sehr vertrauen. Dies erfordert ein hohes Maß an Selbstbeherrschung und bewusstem Denken. Aber allein das Bewusstsein, über die beiden Systeme und ihre Funktionsweise kann dabei hilfreich sein, das eigene mentale Modell häufiger infrage zu stellen, um Unstimmigkeiten aufzudecken.
Wie lösen wir eigentlich Probleme?
Nachdem wir uns jetzt mit den beiden Systemen beschäftigt haben, ist die nächste Frage: Wie lösen wir eigentlich Probleme und was macht ein Problem für uns kompliziert? Und was ist für uns überhaupt ein Problem?
Ein Problem entsteht dann, wenn man in irgendeiner Form ein Ziel hat und dieses erreichen will, aber dabei auf ein oder mehrere Hindernisse stößt. Wenn wir für die Überwindung dieser Hindernisse keine Routine verfügbar haben, haben wir ein Problem. Das problemlösende Denken ist eine der Fähigkeiten, welche uns gegenüber vielen anderen Spezies besonders auszeichnet. Problemlösendes Denken erfolgt immer zu dem Zweck, ein oder mehrere Handlungsziele zu erreichen. Dabei bedarf es zielgerichteter Entscheidungen und weiterer Komponenten wie z.B. Problemidentifikation, strategisches Planen, Reflexion und Abstraktion.
Auch wir als Informatiker werden oft mit dem Thema Problemlösen konfrontiert.
Wie kann ich den Wunsch meines Kunden am besten umsetzten? Wie setzte ich es überhaupt um? Warum funktioniert das schon wieder nicht? Warum habe ich plötzlich mehr Fehlermeldungen als vorher?
Egal welche der Fragen wir lösen müssen eins haben alle gemeinsam. Idealerweise sollten wir zuerst das zugrundeliegende Problem identifizieren, bevor wir es lösen können. Klingt logisch, ist aber in der Praxis oft ein Problem für sich. Wir neigen gerade bei komplexen Problemen dazu lieber eine schnelle sofort verfügbare Lösung zu probieren, als erst mal zu warten und das Problem in seinem gesamten Umfang zu erfassen. Vor allem wenn wir unter Druck stehen, nehmen wir öfter mal die erstbeste Lösung, ohne sie richtig zu prüfen.
Aber: „There is no use of running, if you’re on the wrong road.”
Oftmals liegt dem Offensichtlichen ein größeres komplexeres Problem zugrunde, welches tiefer im System verankert ist. Um eine Lösung zu finden, die das Problem wirklich langfristig und vollständig löst, ist es notwendig das gesamte System oder zumindest einen deutlich größeren Kontext im System zu betrachten. Wie umfangreich die Veränderungen dann sein müssen, um das Problem zu beheben, kann dann wieder ganz unterschiedlich sein. In Bezug auf Software bedeutet das, dass die Lösung, die der Kunde sich wünscht, nicht immer die ist, die er braucht.
Bei der Erfassung eines Problems bekommen wir es wieder mit einigen Fallstricken unseres Denkens zu tun. Denn wir überschätzen systematisch unser eigenes Wissen und Fokussieren und eher auf das was wir wissen und ignorieren das wir etwas nicht wissen. Es ist leichter davon auszugehen, dass man alle relevanten Informationen zur Lösung eines Problems schon hat, als zu überlegen was man nicht weiß, was aber wichtig sein könnte. Haben wir dann eine These, welche für uns schlüssig ist, gebildet, tendieren wir dazu vor allem den Fakten Beachtung zu schenken, die diese These stützen. Wir verbiegen ganz unbewusst die hinzukommenden Informationen so, dass sie möglichst nicht mit unserer gefassten Meinung kollidieren. Also aufpassen, wenn eine Lösung zu leicht erscheint und alles wunderbar zu passen scheint. Lieber noch einmal bewusst kritisch auf die Lösung schauen.
Aber um ein Problem lösen zu können, sollten wir auch anschauen, unter welchen Umständen ein Problem für uns komplex erscheint.
In unserem Alltag werden wir ständig mit unterschiedlichen Problemen konfrontiert, manche davon sind leicht zu lösen und manche schwer. Verbrennt uns beispielsweise das Abendessen und wir brauchen schnell eine Alternative, wenn wir nicht hungern wollen, ist das für die Meisten von uns kein allzu großes Problem. Die Frage wie wir die Klimaerwärmung noch aufhalten können, ist hingegen ein deutlich komplexeres Problem.
Aber was macht die Komplexität eines Problems eigentlich aus? Was mach ein Problem zu einem schweren Problem? Dazu tragen mehrere Faktoren bei. Einige dieser Faktoren sind:
- Intransparenz: Wenn wir nicht alle relevanten Informationen besitzen und damit zu viele Variablen oder vielleicht sogar ein ganzes System außerhalb unseres Horizontes liegen, ist es schwierig ein Problem zu lösen. In der Realität ist es sogar meisten so, dass wir nicht alle Variablen eines Problems kennen.
- Vielschichtigkeit: Wir verfolgen gleichzeitig zu viele Ziele und haben nicht genügend Ressourcen, um sie alle zu erreichen. Wenn wir an zu vielen Stellen gleichzeitig aktiv werden müssen, wird es schwer mit den vorhandenen Ressourcen zum Ziel zu kommen.
- Komplexität: Sind an einem Problem eine Vielzahl von Variablen beteiligt, welche alle miteinander in Abhängigkeit stehen, macht dies die Lösung des Problems um einiges schwieriger. Um das Problem lösen zu können, müssen wir dann ein hochkomplexes Geflecht aus Variablen durchschauen, um die Lösung zu finden.
- Konnektivität der Variablen: Nicht nur die Anzahl der Variablen macht ein Problem schwer. Vor allen die Abhängigkeiten zwischen den Variablen machen es schwer Vorhersagen zu den Konsequenzen von Handlungen zu treffen. Wenn die Veränderung einer Variablen viele andere in mehr oder weniger bekannter Weise beeinflusst, wird es sehr schwer die Resultate abzuschätzen.
- Dynamische Entwicklung: Ein weiterer Faktor ist Zeitdruck. Wenn es sich um ein Problem handelt, welches sich mit der Zeit weiterentwickelt oder sogar verschlimmert, erhöht auch dies die Problemkomplexität.
- Zeitliche Trennung: Es fällt uns sehr schwer ein Problem nachzuvollziehen, wenn Ursache und Wirkung zeitlich voneinander getrennt sind. Wenn Einwirkungen auf Variablen des Problems erst zeitlich versetzt zu einem Effekt führen, wird es sehr schwer abzuschätzen, was genau welchen Effekt hatte oder haben wird.
Während viele der kleinen Alltagsprobleme mit wenig Aufwand und oftmals ohne bewusstes Nachdenken gelöst werden können, erfordern komplexe Probleme unsere volle Aufmerksamkeit. Unser Gehirn versucht darum öfter schwere Fragen durch leichtere zu ersetzen, um unser System 2 nicht zu sehr zu belasten. Wenn wir beispielsweise gefragt werden, wie zufrieden wir mit unserem Leben sind, ersetzt unser Gehirn diese Frage gerne durch eine leichter zu beantwortende. Beispielsweise wie unsere Stimmung gerade ist. Das passiert unbewusst und ist in vielen Fällen ausreichend zielführend. Aber eben nicht immer.
Im Vergleich zu der Zeit, in der sich unser Gehirn hauptsächlich entwickelt hat, haben wir es heute vermehrt mit komplexen Problemen zu tun, welche unsere volle Aufmerksamkeit benötigen. Wir müssen zum Teil ein großes Geflecht zusammenhängender Variablen beachten, um ein Problem wirklich verstehen zu können. Um alles zu erfassen und entsprechende Lösungsmaßnahmen antizipieren zu können, brauchen wir vor allem mehr Zeit. Wir können oft nicht innerhalb kürzester Zeit alle relevanten Informationen herausfiltern und ihre Zusammenhänge erfassen. Wir müssen lernen stillzustehen und erst alle Informationen und Möglichkeiten zu betrachten, bevor wir aktiv werden. Was so einfach klingt, ist oft enorm schwer umzusetzen. Wir sind darauf programmiert schnell zu agieren. Wenn wir ein Problem vor uns haben wollen wir so schnell wie möglich etwas dagegen tun. Auch wenn wir dabei riskieren etwas Falsches oder wenig Wirkungsvolles zu machen.
“Getting it right or getting it right now”
Auch wenn wir in der Regel ziemlich gut darin sind Probleme zu lösen, kommen wir in einer immer komplexer werdenden Welt auch öfter an unsere Grenzen und müssen vermehrt mentale Stolpersteine umgehen. Um dem gegenüberstehen zu können, sollten wir uns bewusst werden, wie unser Gehirn arbeitet und uns auch die Zeit nehmen, uns von mental anstrengenden Aufgaben zu erholen. Dass sich auch mentale Anstrengung körperlich auswirken kann, zeigt sich beispielsweise darin, dass unser Blutzuckerspiegel sinkt, wenn wir über ein schwieriges Problem nachdenken oder große Selbstkontrolle aufbringen müssen.
Methodische Ansätze
System Thinking in der Theorie klingt ja schön und gut, aber wie kann ich diese Denkweise nun praktisch anwenden.
“To Enlarge first, To Shrink then.”
Ein wichtiger Ansatz ist das Big Picture zusehen. Dies erreichen wir am besten in dem wir zuerst auf den Kontext erweitern, bevor man dann wieder einschränkt. Das bedeutet wir nehmen zusätzliche Faktoren, wie z.B. Zeit und das Umfeld in welchem sich unser System befindet mit auf und können dadurch mögliche Einflüsse auf unser System erkennen und diese mit einfließen lassen und mögliche Störungen und Probleme schneller erkennen oder diese sogar komplett verhindern. Wenn wir also beispielsweise Dinge clustern wollen, macht es Sinn, erst den Kontext der einzelnen Elemente zu erweitern, um herauszufinden, wie sie wirklich sinnvoll geclustert werden können. Nach diesem Ansatz sollte immer zuerst vorgegangen werden, um die anderen Methoden richtig einsetzen zu können.
Ein weiterer methodischer Ansatz sind hierbei die sogenannten Feedbackloops.
Um Systeme richtig zu verstehen, müssen wir uns im Klaren sein, dass beim System Thinking alles miteinander verbunden ist und wir davon ausgehen, dass diese Denkweise eine Organisation als lebendes System betrachtet. Die Teile eines Systems stehen in einem Ursache-Wirkungs-Zusammenhang und formen sogenannte dynamische Feedbackloops. Es gibt nur zwei Arten von solchen Feedbackloops, positives (Reinforcing) Feedback und negatives (Balancing) Feedback. In einem Feedbackloop gibt es außerdem auch nur zwei Arten von Beziehungen in welcher die einzelnen Elemente zueinanderstehen können. Elemente können entweder in einer kausalen Beziehung „+/s“ (gleich) oder „-/o“ (gegenteilig) verbunden sein. Eine solche visuelle Repräsentation, wie die Teile miteinander interagieren, hilft uns zu verstehen, wie zum Beispiel eine Intervention unser System beeinflussen würde.
Reinforcing-Feedbackloop
Ein Reinforcing oder auch positiver Feedbackloop ist die Basis von allen Veränderungen und der Motor für Wachstum aber auch Abschwung. Als Beispiele für solche Feedbackloops wären hier zum einen der Schneeball-Effekt, Pygmalion-Effekt oder auch das Phänomen „Die Reichen werden reicher, die Armen werden ärmer“ aufzuführen. Hierbei kann der Trend entweder rauf oder runter gehen.
Eine Eigenschaft ist, welche auch schon im Namen dieser Feedbackschleife steckt, dass sie selbstverstärkend ist. Sie verbindet Veränderungen in eine Richtung mit noch mehr Veränderungen, was zu exponentiellem Wachstum, aber auch zu einem Kollaps führen kann.
Wie kann ich einen solchen Reinforcing-Feedbackloop erkennen?
Eine schnelle Methode, um festzustellen, ob eine Schleife verstärkend oder ausgleichend ist, besteht darin, die Anzahl der „-/o“ zu zählen. Ist die Anzahl von „-/o“ gerade (oder Null) ist die Schleife verstärkend, bei einer ungeraden Anzahl ist sie ausgleichend. Obwohl dies eine effiziente Methode ist, sollten wir den Feedbackloop immer noch einmal genau überprüfen und checken, ob die Verbindungen richtig beschriftet sind.
Wann immer wir ein exponentielles Wachstum oder einen Niedergang erleben, steckt mindestens ein verstärkender Prozess dahinter. Reinforcing-Feedbackloops neigen dazu, Systeme aufgrund ihres Schneeballeffekts zu destabilisieren und so werden kleine Veränderungen schnell zu großen Veränderungen. Deswegen macht es Sinn diesen Prozess so früh wie möglich zu identifizieren, um die Ursache für das Wachstum oder auch dem Abschwung zu finden und gegebenenfalls rechtzeitig eingreifen zu können.
Balancing-Feedbackloop
Balancing-Feedbackloops sind die Grundlage aller Stabilität in unserer Umwelt und die Natur ist voll von solchen Ausgleichsprozessen. So besteht zum Beispiel der menschliche Körper aus tausenden von stabilisierten Prozessen, die dafür sorgen, dass unser Bedarf an Nahrung durch Hunger und Wasser gedeckt wird oder unsere Temperatur konstant bleibt. Auch im Arbeitsumfeld finden sich solche Feedbackloops. Zum Beispiel die, die dafür sorgen, dass Angebot und Nachfrage übereinstimmen. In solch einem Prozess wird auf ein Ziel hingearbeitet, ob es nun sichtbar ist oder nicht. Dieses Ziel oder auch Normwert wird Set Point genannt. Beim Ausgang eines solchen Feedbackloops besteht immer eine Lücke zwischen dem gewünschten Niveau (Ziel oder Norm) und dem tatsächlichen Niveau. Das tatsächliche Niveau wird bei einer zu großen Diskrepanz zwischen beiden so lange durch korrekturmaßnahmen angepasst, bis die Lücke kleiner wird. Ein Balancing-Feedbackloop versucht also immer die Bedingungen ins Gleichgewicht zu bringen.
Was bei einem Balancing-Feedbackloop eine große Rolle spielt ist die Verzögerung. Zwischen einer Aktion und dessen Ergebnis gibt es fast immer eine Verzögerung. Wenn solche Schleifen in Verbindung mit Verzögerungen stehen, können diese ein komplexes Verhalten hervorrufen. Dies liegt dran, dass es so viele verschiedene Quellen und Größen von Verzögerungen gibt. Wenn wir nun vermuten, dass es sich um einen Balancing-Feedbackloop mit Verzögerung handelt, macht es Sinn die beteiligten Verzögerungen zu identifizieren und zu beschreiben. Wenn uns das gelingt, können wir die Verzögerungen gegebenenfalls verkürzen oder zumindest besser damit umgehen und unser System damit zu einer größeren Stabilität verhelfen.
Das gute beim Systemdenken ist, dass es diesen Effekt der Zeit mit aufnimmt, da wir den Kontext erst erweitern bevor wir ihn dann schließlich wieder verkleinern.
In der folgenden Darstellung sehen wir noch jeweils ein Beispiel für einen Reinforcing- und einen Balancing-Feedbackloop.
Wir müssen uns darüber im Klaren sein, dass die Systeme, mit denen wir im Alltag oder Beruf zu tun haben, selten ein einzelner kleiner Feedbackloop ist, sondern aus vielen zusammenhängenden Feedbackloops besteht.
Kausale Zusammenhänge
Wie bereits erwähnt stehen die Elemente unseres Systems in sogenannten Ursache-Wirkungs-Zusammenhängen. Die einzelnen Teile unseres Systems können unterschiedlich in Verbindung miteinander stehen. Wir unterscheiden im Folgenden zwischen drei verschiedenen Verbindungen:
Mediator Junction: A → B → C
Hierbei handelt es um eine vermittelnde Verbindung. Wenn wir folgendes Beispiel betrachten, dann sehen wir, wenn „Rauch“ gefixt wurde, dann stehen „Feuer“ und „Alarm“ nicht länger in einer kausalen Verbindung zueinander. „Rauch“ nimmt hierbei die Rolle des Mediators (dt. Vermittler) ein.
Feuer → Rauch → Alarm
Fork Junction: A ← B → C
Bei einer Gabelverbindung hat eine Ursache mehrere Wirkungen. Die beidem Wirkungen haben eine gemeinsame Ursache und es besteht eine Scheinkorrelation zwischen A und C. So könnte man im folgenden Beispiel schließen, dass Kinder mit größeren Schuhen tendenziell besser lesen. Da zwischen der „Schuhgröße“ und der „Leserfertigkeit“ aber kein kausaler Zusammenhang besteht, ist die Schlussfolgerung wahrscheinlich falsch.
Schuhgröße ← Alter der Kinder → Lesefertigkeit
Collider Junction: A → B ← C
Bei einer Kollisionsverbindung beeinflussen mehrere Ursachen ein Ergebnis. In dem folgenden Beispiel beeinflussen die Ursachen „Talent“ und „Schönheit“ das Ergebnis „Prominente“.
Talent → Prominente ← Schönheit
So ist für Prominente nur eines von Beiden relevant, um prominent zu sein. Wenn eine bekannte Persönlichkeit ein guter Sänger wäre, müsse er weniger gut aussehen. Und umgekehrt müsste ein Sänger mit weniger Talent besser aussehen.
Wir haben nun einige wichtige methodische Ansätze kennen gelernt haben, um Systemdenken praktisch umzusetzen. Was wir aus den oben genannten methodischen Ansätzen mitnehmen sollten ist, dass wir zuerst den Kontext vergrößern, dann wieder verkleinern, die Zusammenhänge verstehen und die Hintergründe prüfen bevor wir handeln.
Was offen bleibt
Wir haben jetzt ausführlich betrachtet was die Grundannahmen des System Thinking sind, welche Methoden es gibt und was die psychologischen Grundlagen sind, aber es bleiben dennoch einige Fragen für uns offen. Denn so wie wir es verstehen basiert das System Thinking vollständig auf Prozessen von System 2 und es scheint eher so zu sein, dass versucht wird gegen System 1 zu kämpfen. Das ist aber auf Dauer nicht nur extrem anstrengend, es ist auch wenig sinnvoll, wenn man so ausgereifte und leistungsstarke Prozesse einfach ignoriert. Es ist natürlich sinnvoll, die Schwächen unseres Gehirns zu kennen, aber ebenso sinnvoll wäre es, wenn wir lernen, wie wir die Stärken besser nutzen. Zum Beispiel könnte es wirkliches Potential haben, wenn wir die Fähigkeit unseres Gehirns Zusammenhänge herzustellen und auf Basis von wenig Informationen ein mentales Modell zu schaffen nutzen würden. Mit der falschen Auswahl an Informationen wird unser mentales Modell fehlerhaft, aber wenn wir optimieren welche Informationen wir aufnehmen, dann würde auch das mentale Modell besser werden. Strategien wie wir die „richtigen“ Informationen herausfiltern, sollten deswegen besser herausgearbeitet werden. Es wäre also interessant, wenn das System Thinking sich noch gezielter die Stärken unseres Gehirns zunutze macht.
Auch bei der Problemlösung sollten wir keine Energie darauf verwenden, unseren angeborenen Drang schnell handeln zu wollen immer zu unterdrücken. Stattdessen wäre eine mögliche Strategie dem Ganzen eine produktivere Richtung zu geben. Welche Handlungen, die man schnell machen kann, helfen dabei dem Verständnis des eigentlichen Problems und damit einer langfristigen Lösung näher zu kommen? Denn wenn wir unser Verlangen immer unterdrücken bei einem für uns schwerwiegenden Problem nach etwas zu suchen, dass wir sofort tun können, setzt uns das unter Stress und gerade unter Stress treffen wir oft unreflektierte Entscheidungen oder fallen sogar in ein unproduktives „ich gegen die“ Denken.
Alles in allem bietet das System Thinking aber tolle Ansätze, um unser alltägliches Denken und Handeln ins Positive zu lenken. Es zeigt einige relativ einfache aber sinnvolle Methoden auf, wie wir komplexe Vorgänge besser verstehen können und die Zusammenhänge überblicken können. Es gibt einigen bekannten Methoden wie dem Clustern eine neue Richtung. Aber es verlangt auch ein hohes Maß an Selbstreflexion und Selbstkontrolle und ist demnach nicht für jede Situation im Alltag anwendbar. Um die Art des Denkens wie es im System Thinking vermittelt wird, besser zu verbreiten, sollten wir uns fragen, ob es nicht etwas sein sollte, was bereits in unser Bildungssystem einfließen sollte. Nicht nur Inhalte, sondern auch Konzepte und Strategien wie wir mit unserer komplexen Welt umgehen und zielführend Denken lehren.
Gerade im Management ist das System Thinking ein sehr wichtiges Konzept. Instinktive Entscheidungen stehen gutem Management oft im Weg und es wird selten über den Tellerrand des eigenen Teams oder der eigenen Abteilung hinausgeschaut. Aber genau das ist wichtig. Es ist notwendig über die alltäglichen Probleme hinauszudenken und wenn nötig in einem großen Kontext nach Lösungen zu suchen. Dazu ist ein interdisziplinärer Ansatz oft der richtige. Egal wie gut jemand ist, er kann nie ein Experte für alles sein und nie alle Blickwinkel annehmen. Das fliegt häufig noch unter dem Radar, obwohl es in unserer heutigen Zeit ein mächtiges Werkzeug sein kann, um gute Entscheidungen zu treffen.
Ein wichtiger Aspekt, über den man sich bewusst sein sollte, wenn man versucht tiefer in das System Thinking einzusteigen und die Konzepte auch anzuwenden ist, dass es uns nicht leicht fällt. Zum einen ist das System Thinking sehr umfangreich in seiner Theorie und zum anderen ist es sehr schwer die eigenen Denkmuster und Gewohnheiten abzulegen. Jede Veränderung, die zu einer neuen Sichtweise auf die Welt, unsere Arbeit und unsere Beziehungen und wie wir uns zu anderen verhalten führt, kann Widerstand hervorrufen. Es braucht Zeit, etwas Neues zu lernen und wenn wir mit dem Anspruch herangehen, von Anfang an alles wissen zu wollen und alles „richtig“ zu machen, blockieren wir uns im Endeffekt nur selbst.
Aber ist System Thinking jetzt das Schlüsselkonzept des 21. Jahrhundert?
Wir würden sagen ja und nein. System Thinking ist ein wichtiges Konzept und mehr Menschen sollten darauf zurückgreifen, aber es ist nur ein Werkzeug unter vielen. Auch der analytische Ansatz hat beispielsweise seine Berechtigung und kann für manche Probleme die essenzielle Schlüsselrolle spielen. Es sollte also eher so sein, dass wir uns mit einer Reihe von Denkkonzepten und Strategien dem 21. Jahrhundert gegenüberstellen. Würden wir uns zu sehr auf ein Konzept versteifen, würden wir uns ja wieder einschränken und uns weiteren Verbesserungen und Neuerungen verschließen.
Ob wir wollen oder nicht, die Welt wird immer komplexer und es ist immer mehr voneinander abhängig. System Thinking sieht dabei die Individuen und Organisationen als Bestandteile, die auf einer multidisziplinären Ebene in einem großen System arbeiten und nicht als einzelne unabhängige Elemente. Die Akzeptanz, dass alles miteinander in Verbindung steht, hilft uns unsere Interessen, Ziele, Probleme und Lösungen klarer zu kommunizieren und in unserer Realität zu verorten.
Quellen
- Making better decisions using systems thinking. 2017. New York, NY: Springer Berlin Heidelberg.
- Müsseler, Jochen, und Martina Rieger, Hrsg. 2017. Allgemeine Psychologie. 3. Auflage. Lehrbuch. Berlin Heidelberg: Springer.
- Myers, David G., und Siegfried Hoppe-Graff. 2014. Psychologie. 3., Vollst. überarb. und erw. Aufl. Springer-Lehrbuch. Berlin: Springer.
- Kahneman, Daniel, 1934- author. Thinking, Fast and Slow. New York :Farrar, Straus and Giroux, 2011.
- Systemic thinking. 2014. New York, NY: Springer Berlin Heidelberg.
- Arnold, Ross D., und Jon P. Wade. „A Definition of Systems Thinking: A Systems Approach“. Procedia Computer Science 44 (2015): 669–78. https://doi.org/10.1016/j.procs.2015.03.050.
- Han Kai. Introduction of System[s] Thinking – Seeing “forest” from “tree”. Präsentation.
- https://medium.com/disruptive-design/tools-for-systems-thinkers-the-6-fundamental-concepts-of-systems-thinking-379cdac3dc6a (21.09.2021)
- https://thesystemsthinker.com/anatomy-of-a-reinforcing-loop/ (23.09.2021)
- https://thesystemsthinker.com/balancing-loop-basics/ (23.09.20219)
HAFNIUM EXCHANGE SERVER ATTACKS – What happened and how to protect yourself
an article by Carina Szkudlarek, Niklas Schildhauer and Jannik Smidt
This post is going to review the zero day exploit of the Microsoft Exchange Servers starting in January 2021.
It will look into the methods of SSRF and the exploitation of mistakes in the deserialization of input values to procure privileged code execution.

INTRODUCTION
In early 2021, several vulnerabilities were discovered in the Microsoft Exchange server software of the 2010, 2013, 2016 and 2019 releases that could be used by attackers to gain access to such an Exchange server.
With Exchange Server, Microsoft offers a service with which e-mail communication can be controlled in networks, but electronic communication can also be checked for harmful files such as viruses. All incoming and outgoing e-mails end up on the corresponding Exchange server. From there they are distributed to the recipients. Although there are alternatives, numerous state and private-sector institutions around the world rely on Microsoft Exchange servers.
On January 6, 2021 the security company Volexity observed several attacks via a previously unpublished Exchange vulnerability. In the course of the following weeks there were additional individual attacks on selected Exchange servers.
Microsoft instantly planned to release a security patch. However, the responsible attacker group Hafnium had already started a large amount of mass scans starting several months prior to january 6th when the attack was first exploited (see R[17]) . Exchange servers that were vulnerable were automatically infected with a webshell. Less than a week later, Microsoft published several security updates. However only a few hours after the publication of these unscheduled updates for the known vulnerabilities, the unprecedented infection of all unpatched Exchange servers accessible via the Internet began. As a result, administrators had little time and opportunity to react.
Generally, the exploit of overall four known vulnerabilities can be used as a gateway to penetrate deeper into the corporate network, as the Exchange servers are often publicly accessible. Yet it only affects on-premise Microsoft Exchange Server and not Exchange Online or Microsoft 365.
According to estimates, generally around 250,000 Exchange servers worldwide are open like a barn door to cyberattacks. 30,000 US customers have already been hacked, according to Heise [R1] tens of thousands of Exchange servers are affected in Germany alone, some of them in German federal authorities, according to the BSI [see: R2]
Continue readingZero Trust Security – The further development of perimeter security?
Most companies use perimeter security to secure their cooperate applications, services and data from attackers and unauthorised users. This approach includes a cooperate network, where clients, that are part of the network are able to access the applications. This includes attackers that got access to these networks.
Additionally more applications are getting shifted from cooperate networks into the cloud and clients are getting more mobile from day to day. It’s getting increasingly difficult to trust or identify who and what should be allowed or trusted with access to their network. That means that setting up firewalls and other security mechanisms, securing the perimeter, is getting a real challenge and can result in very high costs. [12] [13]
In order to adapt to the new requirements and to create a system that is compatible with the cloud- and the cooperate applications there is a new security approach: Zero Trust Security.
Continue readingThe Dark Side of AI – Part 2: Adversarial Attacks
Part 1 of this series discussed how AI technology can be used for good or evil. But what if the AI itself becomes an attack vector? Could an attacker use my models against me? Also, what’s the worst that could happen? Welcome to the domain of adversarial AI!
Continue readingGDPR and Information Security: A practical guide for Startups and small businesses

Let me start with a story. My first contact with GDPR (general data protection regulation) and the topic of information security was during my bachelor throughout an app project. We had set ourselves the goal of uploading the app to Google Play Store by the end of the semester and were thus inevitably confronted with the data protection and privacy topic, which was still relatively fresh at the time.
Since we had no previous experience and background knowledge in this area, we were rather intimidated by the available information and very vague wording in correlation with GDPR. The intrinsic desire to take care of personal and sensitive data was rather absent and overshadowed by the fear of doing something wrong and experiencing legal consequences. When we turned to professors and lawyers at the university, who were (in theory) responsible for the topic of GDPR and information security, the responses were comparable to the game “hot potato”. Everyone we approached tossed the hot potato (aka GDPR) to the next person by saying something along the lines of “Ah yes, I think Mr. X would be more suitable for that”. In the end, we kind of patched together a data privacy declaration and implemented suitable protective measures, which was okay for the time being, but not particularly good and worthwhile. Overall, it left a rather unsatisfactory feeling and aftertaste.
The combination of founding my own Startup and attending the lecture “Secure Systems” during my masters made me rekindle with that topic again and I decided to take matters into my own hand and shine a new light on this rather unattractive and dry, but also very important and meaningful subject.
Therefore – with this blog entry – I’m hoping to provide you with a more practical and satisfactory approach to information security and GDPR. I will answer questions like “Why should I even strive for GDPR compliance or security in general?” and “What can I – as a programmer – do to achieve information security?”. Furthermore I will explain terms like Privacy By Design, Privacy By Default and Security By Design. This guide is addressed to all those who want to gain a better understanding of this topic in general, as well as start-ups, smaller companies or freelancers who are looking for specific information to implement this topic in their own applications with a focus on inexpensive but effective measures. However, it should not be considered as a complete and sufficient solution for information security.
My forecast for the future is: In the future we will talk much more about information security instead of talking about IT security and data protection / GDPR separately!
Eric Weis (CISO and auditor of ISO/IEC ISO27001)
With this fitting quote in the back of our minds, let’s dive right into it. 🤿
Why should you even strive for GDPR compliance?
Depending on the severity of the violation, fines of up to €10 million or 2% of the total annual turnover of the previous business year, or respective €20 million or 4% for the higher severity level, may be imposed if your organisation violates data privacy guidelines. The respective frame that is chosen is the one which is higher (GDPR Article 83, section 4 and 5).
For example, Google (Sweden) was fined €7 million in March 2020 for failing to remove personal information from various individuals who had requested exclusion from Google search results.
An Italian telephone and network operator (TIM SpA) was hit even harder, being fined €27 million in January. The reason for this was several legal violations in marketing and advertising campaigns. Unsolicited calls were made, people were entered into competitions without consent and in one case, a person was called 155 times after requesting exclusion from calls.
Even in law-abiding Germany there was a high penalty in December 2019. 1&1 Telekom was fined €9 million because anyone could get complete access to a person’s data as long as they simply knew that person’s date of birth and name.
The vagueness and individuality of GDPR
Upon reading statements and guidelines of the GDPR, such as the following excerpt of Article 32, which targets the Security of processing, one often has more questions and uncertainties than before.
Art. 32 (1): „Taking into account the state of the art, the costs of implementation and the nature, scope, context and purposes of processing as well as the risk of varying likelihood and severity for the rights and freedoms of natural persons, the controller and the processor shall implement appropriate technical and organizational measures to ensure a level of security appropriate to the risk…”.
All wordings, components and safety measures that vary according to context and organization, are color highlighted. Only once you start breaking down the separate parts and enrich them with background knowledge from information security, a greater picture starts to form. With that being said, here’s my breakdown of the separate parts:
“…the state of the art…”
Mainly refers to technology. It makes sense: the safety and security measures you implement today might be outdated in 3-5 years. Technology and software have a fast pace, which should be reflected and reviewed in your infrastructure and design choices.
“…nature, scope, context and purposes of processing…”
Depending in which field your organization is operating and what kind of sensitive information you’re processing the needed safety measures vary a lot. The how and where of data processing are also really important. Do you dispose of all data completely independently or are third parties involved? Do you process highly sensitive information like racial and ethnic background, political opinions or religious beliefs, health data or information regards the sexual life or orientation of your users.
“…risk of varying likelihood and severity for the rights and freedoms of natural persons…”
“…appropriate technical and organizational measures…”
“…level of security appropriate to the risk…”.
This is basically risk management. If you’re striving for ISO 27001 compliance this is handled by your Risk Treatment Plan (RTP) and your Statement of Applicability (SoA). There are different approaches for application thread modeling. One popular and widespread one is using STRIDE and DREAD.
It’s about analyzing which vulnerabilities or weaknesses in your infrastructure / architecture lead to risks of violating the core pillars of information security. Confidentiality, Integrity and Availability.
Depending on your background knowledge and the field you’re specialized in, even in those more detailed explanations there might be a lot of unknown terms for you. I’ll try to provide you with some basic knowledge in the following paragraphs.
Before taking a closer look at core pillars of GDPR a quick side note about the LFDI: The LFDI is a German authority and roughly translates to “state commissioner for data protection and freedom of information”. It supervises and advises the public authorities of the country on data protection and information security issues. One of the tasks of the LFDI is to impose fines on companies that violate data protection. In June 2020, for example, a fine of €1.2 million was imposed on the AOK, since they handled personal data incorrectly in regard to competitions during the timeframe from 2015 to 2019. Following an administrative fine, the LFDI also works with the organisation to improve the technical and organisational measures.
However, if you’re looking for advice and specific recommendations, one must not have to wait until a fine is imposed on you. Instead, contact with the LFDI can also be proactively sought in order to receive advice and gain valuable insights. As part of my Startup, I did just that and will therefore incorporate advice and insights that have arisen throughout this cooperation. So, if I’ll say something along the lines of “the LFDI recommended using encryption at rest” you’ll know what and who I’m talking about.
The core pillars of GDPR
Hint: This is not an official classification; this is simply how I personally structured GDPR into different sections. It might help you too for forming a better understanding.
🔐 Security
Prevent physical access to (personal) data. Ensure through appropriate infrastructure and technology that only authenticated users have access to data.
Safety measures might include:
- no openly accessible databases
- no default (admin) users for databases
🤝 Accountability
As an organisation, one must clearly and comprehensively explain how data is processed, for what reason, for what purpose, etc.
An awareness of who is responsible should be created. Am I? My company? A third-party company? Someone else? In general, you should be aware of what happens with the data and have an understanding of the complete flow of data in your system. The importance of a proper sense of responsibility was strongly emphasised by the LFDI’s technical manager.
Accountability also includes that a privacy statement is available, complete and easy to find.
👤 Individual Rights
You should respect and implement the user rights set out in the GDPR. Included is Privacy By Design and Privacy By Default. Ask yourself what the absolute minimum of data is you need in order for your service / product to work. Then try to stick to that. Work as data efficient and minimizing as possible. It’s also essential to only process data for as long as needed and delete it from your system once possible.
Content of the GDPR
Content of the EU General Data Protection Regulation | Articles |
---|---|
General provisions | 1-4 |
Principles | 5-11 |
Rights of the data subject | 12-23 |
Persons responsible for data processing and Third-Party Processors | 24-43 |
Transfer of personal data to third countries or to international organisations | 44-50 |
Independence of supervisory authorities | 51-59 |
Cooperation and coherence | 60-76 |
Remedies, liability and sanctions | 77-84 |
Provisions relating to specific processing situations | 85-91 |
Delegated acts and implementing acts | 92-93 |
Final provisions | 94-99 |
We’ll focus mainly on the developer and technical side of things, which are covered by the highlighted articles (5-50). Some key words and important components are shown in the visual below.

Putting the user at the centre
One cornerstone of the GDPR is that any processing of personal data is forbidden by default – unless the user has explicitly transmitted his consent. The consent of a user requires the clearly recognizable added value of the data processing.
If the user gives his consent, it must be given voluntarily, explicitly and verifiably. According to the LFDI an opt-out or pop-up is not an effective consent! It is essential that the user can revoke this consent at any time and that his right to revoke must be pointed out directly at the time of consent.
An example of the correct use of consent is asking the user for permission to use his e-mail address for sending him newsletters and updates. It’s key to adhere to the coupling prohibition, meaning that non-consent has no significant disadvantage for the user! Consent may only be mandatory if the disclosure of the data is absolutely necessary to provide the service.

To add on the point “Information obligation and transparency”:
Data privacy statements must be worded in a way that minors and persons without legal capacity can understand them.
With the following examples of imposed fines, it should be made clear what one should not do:
Violated_Right__ | Description |
---|---|
Right to data deletion | In October 2019, “Deutsches Wohnen” was sentenced to a €14 million fine for storing data in an archive system that offered no possibility to delete data at all. Their system therefore had confidential information on previous users who have long since stopped using the service. |
Right to limitation of processing | Delivery Hero was fined just under €200,000 in Sept 2019 for failing to delete dormant customer information and continuing to send unsolicited marketing emails. |
Right to protection of personal data | An insurance company in France was fined €180,000 in July 2019 because confidential data of other customers could be accessed simply by changing the number (user ID) at the end of the URL. The data disclosed included driving licences, registration cards and bank documents. |
Privacy By Design
Too many entrepreneurs, in the interest of building the product as quickly as possible, think that security is a “freeze all the code, do an assessment, and write all the policies” project they can do later. It isn’t. Think about security from the very beginning. It’s actually not that hard to anticipate what needs you’ll have to deal with in the future.
Michael Borohovski – Cyber Security Expert
Data protection must be included from the beginning of the design and development of an app. You should NOT develop the app, add functionality, acquire customers and then at some point – possibly when there are already millions of users on the system – realize “Oh, maybe I should take a look at privacy and information security”. This approach has been possible in the past, however since GDPR a bare minimum of information security is required by law.
All in all, it is anyway much easier and more sustainable to develop a safety mindset and culture from the very beginning and then to continuously improve and expand it as you grow.

Risk Assessment has some overlapping points with Security By Design, however since Privacy By Design can also be viewed as Data Protection By Design this overlap is unavoidable and reasonable. This includes the different likelihood of occurrence and the damage potentials of the risks associated with the processing of data. Information security and data protection are simply closely tied together, as already depicted in the quote at the beginning.
Another key element that should be targeted by a thorough analysis is data minimization. During data processing, only as much personal data should be collected as is absolutely necessary for the respective application.
Authentication, anonymisation and pseudonymisation and encryption of data are all safety measures that are actually explicitly listed and specified in the GDPR. According to LFDI using TLS 1.2 or above in transit is mandatory and additionally encrypting your data at rest is highly recommended. The reason being for the latter that servers are often located with a provider. If, for example, technical errors or the termination of the contract should occur, there shouldn’t be any resulting problems if your data is encrypted. Therefore the risk of violating confidentiality is reduced.
In summary the system should be conceptualized and developed so that maintenance of user rights, such as access, deletion and correction of data are addressed from the very beginning.
Privacy By Default
When using an application, the preconfigured settings must always offer the highest possible security and data protection. Only by opting out or manual configuration of the user can the security or data protection be reduced in order to obtain simplifications or advantages regarding usability. The aim of this directive is to protect the less technologically inclined users, who are not able to adjust their data protection settings themselves.

Users should therefore be able to decide for themselves what data they make available to companies beyond what is necessary.
Airbnb has a really good and interesting approach in my opinion. In their mobile App they list all services and tools they use in their privacy section and you can decide which one to enable or disable. There’s only 4 SDKs that are strictly necessary and therefore can’t be disabled (Braintree, Facebook, Google Maps and Google reCAPTCHA).
Security By Design
Applications without security architecture are as bridges constructed without finite element analysis and wind tunnel testing. Sure, they look like bridges, but they will fall down at the first flutter of a butterfly’s wings. The need for application security in the form of security architecture is every bit as great as in building or bridge construction.”
OWASP, Secure Coding Principles

As already mentioned earlier, a proper implementation of information security is now basically mandatory and legally required due to GDPR.
That this is unfortunately not (yet) always the case is depicted by the €123 million fine Marriott received in July 2019. After acquiring its competitor Starwood, Marriott discovered Starwood’s central reservation database had been hacked. This included 5 million unencrypted passwords and 8 million credit card records. The breach dated back to 2014 but was not discovered until November 2018. In total about 30 million EU residents were affected.
I hope that the violations and respective fines listed in this blog have already given you some insight into what you should NOT do if you intend to correctly apply privacy and information security in your company and processes.
However since I always feel that illustrative examples provide a lot of benefit in understanding a complex topic, this is exactly what we’ll do now to deepen the understanding. Guided by the core pillars of information security, we’ll look at some concrete measures one can implement to increase security and robustness.
The core pillars of information security

🤫 Confidentiality
In short: Sensitive or personal data should not be disclosed to outsiders. Countermeasures include (strong) passwords, access control lists and authentication procedures. It’s beneficial to use encryption so information that may be accessed despite the previous controls is still protected.
👌 Integrity
Integrity means on the one hand that data may not be changed from the outside and manipulation is impossible, but on the other hand it also means protection against unintentional changes, such as through user error or data loss due to a system error. Changes should only be made by authorized persons.
In short: the correctness and completeness of data must be guaranteed.Countermeasures include access controls and strict authentication. Administrative controls such as separation of duties and training are also beneficial.
🙋 Availability
An example of an availability violation is the loss of data through malware. Actually, most threats for availability are non-malicious in nature and include hardware failures, unscheduled software downtime and network bandwidth issues.
Countermeasures include redundant systems in separate physical locations and backing up data. Especially Systems that have a high requirement for continuous uptime should have significant hardware redundancy with backup servers and data storage immediately available.
Additional principles are:
- Authentication ⇒ Recipient must be able to determine the origin of the message
- Non-Repudiation ⇒ The authorship of a message/action must not be deniable
- Anonymity ⇒ Protection of the confidentiality of the identity
- Accountability ⇒ Ensuring that subjects can be assigned to their actions
- Auditability ⇒ Ensuring that previous system states can be reconstructed and processes can be traced
Security – Practical Measures
Monitoring
In this example, specifically Event Loop Monitoring.
Affects | Availability, Auditability |
What | If the application server is under heavy load, it may not be able to serve newly arriving users. By monitoring the status of your application it can be checked whether certain thresholds are exceeded, such as response time, memory usage, CPU load or in this case the lag of the memory loop in seconds. ![]() If a predefined threshold is reached, new requests can be blocked and a 503 server too busy response sent. This way the application remains responsive at least for current sessions. |
Safety measures against Brute Forcing
Affects | Confidentiality, Integrity |
What | Attackers could use brute forcing to obtain account passwords and thus illegitimate access to user data. Certain routes (e.g. /login) can be explicitly protected against brute forcing. One possible measure could be using a rating limiter which specifies how many requests a specific IP address may make in a given period of time. ![]() However, this measure would not work if the attacker uses multiple IPs for the attack. For this case an additional Account Lockout control should be used. In this case not the source IP address is checked, but the target account itself, i.e. in the attacked user account there is a counter for failed login attempts. Corresponding to that there are 3 variables: Lockout Threshold: number of failed attempts before the account is locked out Observation window: time period that these attempts must occur within Lockout duration: how long the account is locked out for |
Application Activity Logging
Affects | Confidentiality, Integrity, Availability |
What | Must have. Insufficient Logging & Monitoring is still in the OWASP Top 10. Not only can you detect errors at runtime, but attacks can be identified early or even prevented. As an advanced setup you can feed all your logs into a SIEM (Security Information and Event Management System) and enable Intrusion Detection / Prevention. So that you’re prepared and know what to do once an attack or breach is detected you should setup an Incident Response Plan. |
Limit data flow
Affects | Confidentiality |
What | The information about the users is generally the most critical information an application has and despite that it’s not unheard of that applications transmit entire user objects back to the frontend. Including the full name, e-mail address, hashed password, birthdate and other sensitive information. Let’s say you’re developing a forum. A thread may have multiple messages / entries of different users. For an entry of another user to display correctly the only thing the frontend needs to know and see are the user id, his username, his avatar, maybe his total amount of submissions / moderator status and obviously the message itself. But there’s no need for your backend to send anything else. So what you can and should do is sanitize objects before sending them to the client. ![]() |
Keep your packages and dependencies up to date
Affects | Confidentiality, Integrity, Availability |
What | Using components with known vulnerabilities is part of the OWASP Top 10 as well. Security of your application depends directly on how secure the third-party packages you use in your application are. Therefore, it is important to keep your packages up-to-date. OWASP – CheatSheetSeries The reasons why this affects all three parts of the CIA-triad is because it depends entirely on the libraries and frameworks you use. Whatever vulnerabilities and risks might be in any of the components you use, your application automatically has them too. One tool I find really helpful for keeping track of used packages and their respective security & status is Dependabot. You can link your GitHub project to it and it automatically checks for updates and bug fixes in the libraries you use. For everything it finds, a pull request is created. Severe fixes are for example highlighted by a “Security” tag (as seen in the figure below). ![]() |
Stay clear of unfavourable regexes
Affects | Availability |
What | Most Regular Expressions can reach extreme situations that cause them to work very slowly (exponential in relation to input size). Therefore, an attacker can use regular expressions to crash an application by performing a Regular expression Denial of Service (ReDoS). There are some tools to check if a regex has a potential for causing denial of service. One example is vuln-regex-detector. Besides that, applying input validation in general is already a good and meaningful approach. |
Security Linters and Code Checking
Affects | Confidentiality, Integrity, Availability |
What | There’s a big overlap between secure code and good software design. The theory that applies here is: the cleaner and stricter your code is, the fewer bugs you have and the more readability you achieve. By using linters and code checking you can find bugs BEFORE they happen and therefore also need less time for testing. Imagine the advantage of detecting an error while writing the code vs detecting the same error only now it’s once the application is already deployed to production.![]() https://xkcd.com/1285/ Another advantage gained is that you’ve standardized code if all your team members use the same guidelines and rules. This eliminates discussing about stylistic issues and enables you to focus on more meaningful topics like architectural decisions or security issues. |
Input Validation
Affects | Integrity, Availability |
What | The secure principle Reluctance to Trust applies here. When building an application, you should always anticipate malformed input from unknown users. Even if users are known, they are an easy target to social engineering attacks, making them therefore potential threats to a system. With correct input validation widespread and popular attacks like (SQL) Injection or XSS can be prevented. Any integer between -2 billion and 2 billion is seldom a good representation of anything. One interesting approach to input validation is using Domain Primitives. For example, instead of using a string as type for a username you define a class called UserName. This class has all domain rules related to a username bundled in itself, e.g. minimum and maximum lengths, allowed characters, etc. Therefore, if the value exists, its automatically valid! |
Transactions in NoSQL Databases
Affects | Integrity |
What | Say you’re using MongoDB as database. By default, it doesn’t support transactions and therefore the ACID principles are not given. If you do have any logic chains in your application that consist of more than one write command, you’re in trouble. It might happen that your server restarts during one of those logic chains and only a fraction of many dependent writes is executed. As a result, you’d end up with corrupted and incorrect data in your database. Depending on the context of your application and the severity of that risk, you should either consider switching to a database that innately supports the all or nothing principle – transactions -, or setup transactions for your MongoDB database. This can be done since version 4.0 by setting up a replica set. The opinion of the LFDI towards this topic is actually quite strict and limiting. Their advice is to always use a “proper” database, like PostgreSQL. Their argumentation is that only sequential databases can guarantee mathematical correctness and thus integrity of the data. However, it’s totally reasonable that you might chose a “non-optimal” database for your projects for reasons like being lean or simply being more experienced with it. This is absolutely valid. You should still try to get the best possible security with the choice you have made. By doing so you probably end up with a higher security level anyways than when you’d have chosen the theoretically best fit with which you’ve no or limited experience. The statement of the LFDI being: “Only if a lack of technology leads to a protection goal being violated, then it can become a problem”. In other words: if a violation or a breach could’ve been prevented if you’d have chosen another technology, like SQL instead of a NoSQL, only then there might be repercussions. |
Prevent data (e.g. IP Address) leakage
Affects | Confidentiality |
What | This goes hand in hand with being conscious about data flow in your application. Chances are high that you carelessly give data of your users to strangers. The easiest example is embedding an image into your app which is hosted by someone else. If the image is not physically located within your own infrastructure, any external hoster could read the IP addresses of your users accessing said embedded image. Another popular example is using SDKs. The very polarizing opinion of the LFDI is that one would have to forego using ANY third-party components or libraries, if the objective pursued is to be as data protection friendly and correct as possible. However, the LFDI also realizes that this is contrary to the entire open source movement and ultimately simply not feasible. If you’d follow that guideline, you would have to constantly reinvent the wheel as a developer. They key takeaway is Reluctance to Trust again. Be really conscious about which libraries or SDKs you’re adding to your project. If you want to be really sure, you should check each library for potential data leakage before adding them. And if you’re planning on adding something like Facebook or Google SDK, ask yourself if it’s worth it. Are your users okay with their data being shared? Does the benefit outweigh the negative? At the end of the day there’s always a business model behind something. Facebook and Google are not offering their SDKs for free, because they are such kind hearted people. They want to gather as much data as possible. And that’s exactly what happens once you add those SDKs to your project. Be aware of that. |
Conclusion
GDPR and information security can be a daunting task and overwhelm you on first approach. I totally get it, since I’ve been there and quite frankly still am. However, I think it is essential to recognize the importance of the issue. In the end, it is not just a matter of taking action out of fear of fines, but of actually seeing the bigger picture. First of you establish trust. If you’re honest and authentic your users and customers will definitely notice and appreciate it. Secondly, the complexity of software systems is constantly increasing and connectivity between systems and devices is growing. In combination with weaknesses due to errors in requirements, architecture, design, implementation, operation and organization this could break your neck financially if you don’t take safety and security into account from the start. According to the IBM System Science Institute the relative cost of fixing defects can be up to 100 times higher in production than in the design & planning phase (as seen in the figure below).
Security incidents regularly affect companies of all sizes, often putting them on public display and causing irreversible damage to the reputation of the companies involved.
To add on this, our society is more technologically reliant than ever before and there is no sign that this trend will slow.
If you plan on your software existing for more than 5 years, start developing a data and information security mindset. Be mindful about the tools you use, where data flows in your application and learn to think ahead. Ask yourself what risks or vulnerabilities might arise and what inconsistencies could appear. Be careful, anticipatory and conscientious. But don’t overdo it, after all it’s about your (and your companies) priorities. Decide what is best for you right now and plan a little into the future. But there’s no need to try and anticipate everything that might happen and to build a Fort Knox infrastructure right from the start. Information security should be seen as continuous process in which you iterate and evolve in many small and incremental steps.
I truly hope this blog helps you get started on your way and gives you some insight into the possibilities and opportunities. As another help to get you started, I attached a small cheat sheet and some useful resources.

Helpful & Interesting Websites
- https://gdprtracker.io/
- https://gdprchecklist.io/
- https://cheatsheetseries.owasp.org/
- https://databreach.es/
- https://www.coreview.com/blog/alpin-gdpr-fines-list/
References and further reading
- Waidner, M., Backes, M., and Müller-Quade, J. (2013), Entwicklung sicherer Software durch Security by Design, Technical Report SIT-TR-2013-01, Fraunhofer-Institut für Sichere Informationstechnologie, Darmstadt, Germany, URL: http://www.kastel.kit.edu/downloads/Entwicklung_sicherer_Software_durch_Security_by_Design.pdf
- Adkins, H., Beyer, B., Blankinship, P., Lewandowski, P., Oprea, A., Stubblefield, A. (2020), Building Secure and Reliable Systems, O’Reilly Media, Inc. ISBN: 9781492083122
- User Privacy Protection Cheat Sheet by OWASP, https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/User_Privacy_Protection_Cheat_Sheet.md
- Third Party JavaScript Management Cheat Sheet by OWASP, https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html
- Authentication Cheat Sheet by OWASP, https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
- NodeJS security Cheat Sheet by OWASP, https://cheatsheetseries.owasp.org/cheatsheets/Nodejs_Security_Cheat_Sheet.html#monitor-the-event-loop
- GDPR: From confusion to chaos by Halak Mehta, https://www.datacenterdynamics.com/en/opinions/gdpr-confusion-chaos/
- GDPR: General Data Protection Regulation, https://advisera.com/eugdpracademy/gdpr/
- ICO: Statement: Intention to fine Marriott International, Inc more than £99 million under GDPR for data breach, https://ico.org.uk/about-the-ico/news-and-events/news-and-blogs/2019/07/statement-intention-to-fine-marriott-international-inc-more-than-99-million-under-gdpr-for-data-breach/
- Was ist Privacy By Design? By TUEV Nord, https://www.tuev-nord.de/explore/de/erklaert/was-ist-privacy-by-design/
The (in)security about speaker legitimacy detection
For the most of us, voices are a crucial part in our every-day communication. Whether we talk to other people over the phone or in real life, through different voices we’re able to distinguish our counterparts, convey different meanings with the same words, and – maybe most importantly – connect the voice we hear to the memory of a person we know – more or less.
In relationships lies trust – and whenever we recognize something that’s familiar or well-known to us, we automatically open up to it. It happens every time we make a phone call or receive a voice message on WhatsApp. Once we recognize the voice, we instantly connect the spoken words to that person and – in case of a friend’s or partner’s voice – establish our connection of trust.
Continue readingAbout the Robustness of Machine Learning

In the past couple of years research in the field of machine learning (ML) has made huge progress which resulted in applications like automated translation, practical speech recognition for smart assistants, useful robots, self-driving cars and lots of others. But so far we only have reached the point where ML works, but may easily be broken. Therefore, this blog post concentrates on the weaknesses ML faces these days. After an overview and categorization of different flaws, we will dig a little deeper into adversarial attacks, which are the most dangerous ones.
Continue readingMetadata in the world of smartphones
Metadata is data about data. Thus, it provides information about data. Examples for metadata are file size, time and date of creation, means of creation of data etc. Every day, we deal with it, but no one really cares about it. Sometimes, metadata gives us more information than the data itself.
But which devices generate metadata? How often do we use it? One of the largest producers of metadata are our smartphones. For this article we will check which metadata cameras or smartphones save in each picture we take. Normally, a picture is shot and then there is the look for the next one or it will be shared on a social media platform. Most people want to share the nice side of life with their friends. Continue reading
You must be logged in to post a comment.