Nichts darf, aber jede Menge kann schief gehen.

Die neue Studie des Teams um den Epidemiologen Christophe Fraser zeigt einen Weg aus der aktuellen Misere: Wenn mindestens 60% der Bevölkerung eine sogenannte “Contact Tracing App” nutzen, lässt sich mit einer gewissen Wahrscheinlichkeit die Reproduktionszahl R₀ auf unter 1 senken und damit trotz halbwegs normalem öffentlichen Leben die Verbreitung von Covid-19 effektiv stoppen.

Ein großes Team aus Universitäten und Forschungseinrichtungen ist bereits dabei, ein System für eine solche App zu entwickeln. Und eine aktuelle Umfrage kommt zu dem Ergebnis, dass etwa drei Viertel der Deutschen eine solche App installieren würde. So weit, so gut.

Aus unserer Erfahrung mit dem Gründen von Startups wissen wir jedoch, dass solche Umfrageergebnisse nur in den seltensten Fällen der Realität entsprechen, der sich eine App nach ihrer Einführung stellen muss. Besonders in diesem Fall ist eine schnelle flächendeckende Einführung und Akzeptanz von größter Bedeutung. Daher möchte ich in diesem Artikel auf Faktoren eingehen, die das Ausrollen dieser “Corona App” gefährden können, und Lösungsansätze anbieten.

Dabei geht es mir nicht um die anvisierte Technologie, sondern um jene Aspekte, mit denen ich mich in den letzten 20 Jahren befasst habe: Neuentwicklung von Software, Usability Engineering, Marketing von neuen Produkten und Projektorganisation in der Softwareentwicklung.

Warum die Corona App nicht genutzt würde

Die oben erwähnte Umfrage hat nur untersucht, ob die Menschen die App installieren würden, nicht jedoch ob sie sie auch nutzen würden. Wir wissen, dass jede noch so kleine Barriere den Benutzerkreis deutlich verkleinern kann. 25% der Benutzer öffnen eine App kein zweites Mal. Was könnten diese Barrieren sein?

Aufforderungen sich zu registrieren

Abgesehen davon, dass Benutzer sich fragen werden, was mit ihren Daten geschieht, stellt die Eingabe von Daten ein erhebliches Hindernis dar. Der Videokonferenz-Dienst Zoom ist zurzeit mitunter deshalb so beliebt, weil man einfach auf einen Link klickt und dann mit seinen Gesprächspartner verbunden ist. Es ist keine Eingabe von persönlichen Daten notwendig. Auch in der Corona App sollte es nicht notwendig sein, irgendwelche Informationen anzugeben. Und wenn doch, dann könnte es ein einfacher Knopfdruck sein (z.B. ein Button mit der Aufschrift “Ich wurde bereits positiv auf Covid-19 getestet” sowie eine einfache Möglichkeit, einen Fehlklick zu korrigieren).

Der App Zugriffe gewähren

Jeder von uns hat schon einmal eine App installiert, die aus unerklärlichen Gründen Zugriff auf unsere Kontaktadressen, dem Mikrofon oder unseren Standort will. Aber welche Zugriffe benötigt die Corona App wirklich? Hier sollten nur die absolut notwendigen Rechte erfragt werden. Und bevor das passiert, sollte der Benutzer darüber informiert werden, warum die App diese Rechte braucht, zum Beispiel: “Bitte erlauben Sie das Senden von Mitteilungen, damit wir Sie informieren können, wann Sie Kontakt zu infizierten Personen hatten.” Wenn die App für ihre Minimal-Funktion keine Standort-Daten braucht, sollte sie nicht danach fragen. Denn wenn Benutzer einmal “Ablehnen” gewählt haben, ist die Wahrscheinlichkeit, dass sie dies in den Einstellungen korrigieren, fast null.

Zu komplizierte Handhabung

Im Idealfall muss die App nach dem ersten Mal auch nie mehr geöffnet werden. Wichtige Nachrichten könnten per Mitteilung gesendet werden. Wer seinen aktuellen Status erfahren möchte, kann die App öffnen. Das sollte aber wenn technisch irgendwie möglich nie notwendig sein. Erfordert die Corona App, dass man sie regelmäßig öffnet und — schlimmer noch — irgendwelche Funktionen betätigt, wird die Nutzung rapide auf ein Level sinken, auf dem sie der Gesellschaft nicht mehr hilft.

Es ist auch sicherlich nicht ratsam, mehr Funktionen in die App einzubauen, als zur effektiven Nachverfolgen von Infektionsfällen notwendig ist. Das oben erwähnte PEPP-PT-Projekt spricht bereits von “Integration in die Prozesse der nationalen Gesundheitsdienste”, was mich leider nicht hoffen lässt. Wenn dies absolut notwendig ist, dann darf es auf keinen Fall die Benutzung der App verkomplizieren.

Man könnte den folgenden Maßstab ansetzen: Sollte es nach der Einführung YouTube-Videos geben, die die Benutzung erklären, dann haben wir unser Ziel bereits verfehlt. App Entwickler sollten sich bewusst sein, dass sich in ihrem Benutzerkreis auch sehr viele Menschen befinden, die nur wenig von Technologie verstehen. “So einfach wie möglich - aber nicht einfacher” ist die Devise (und ein Zitat von Albert Einstein).

Zwingend Internet-Zugang erforderlich

Ich halte es für selbstverständlich, dass eine App auch ohne Internet-Zugang funktionieren muss. Es scheint, als sei ich da jedoch in der Minderheit. Im Silicon Valley, aber auch in Startup-Hubs wie Berlin geht man wohl davon aus, dass zu jeder Zeit ein schneller Internet-Zugang zur Verfügung steht. Dabei muss man in Berlin zum Beispiel nur mal eine Stunde nach Brandenburg fahren, um zu merken, dass die Netzabdeckung dort miserabel ist. Viele Menschen haben aufgrund von kleinen Prepaid-Kontingenten ihr mobiles Internet ohnehin ausgeschaltet. Ganz klar: Die App muss einwandfrei auch ohne Internet-Zugang funktionieren.

Fehlfunktionen (z.B. falsch positive Ergebnisse)

Natürlich muss die korrekte Funktion gewährleistet sein. Die Nutzung der App wird ganz rapide auf nahe 0% fallen gesetzt den Fall, dass ohne ersichtlichen Grund Benutzer als “gefährdet” oder “infiziert” markiert werden. Es gibt bereits Apps zum Kennenlernen von Menschen, die sich “im wahren Leben begegnet” sind. Benutzer dieser Apps berichten, dass ihnen dort selbst Menschen angezeigt werden, die an ihrem Wohnort vorbeigelaufen oder sogar mit dem Zug vorbeigefahren sind. Wer zum Beispiel nicht seine Wohnung verlassen hat, sollte nich plötzlich alarmiert werden. Hier gibt es kaum Spielraum, wie der nächste Punkt illustrieren soll.

Das Silicon Valley Mantra “fail fast, learn fast” gilt hier nicht. App Entwickler berichten, dass 20-30% der Benutzer keine App-Updates einspielen. Wir können uns nicht leisten, eine fehlerhafte erste Version auszuliefern und auf Korrekturen in darauffolgenden Versionen zu setzen. Die erste Version muss sitzen.

Zu viele Apps

Bisher habe ich nur von einer “Corona App” gesprochen. PEPP-PT ist aber nur ein Konzept, die Organisation entwickelt nicht die App für Deutschland. Das Fraunhofer Heinrich-Hertz-Institut ist bereits dabei, ein entsprechendes System zu entwickeln. Offen bleibt jedoch, ob es für Deutschland nur eine App geben soll, oder ob mehrere Anbieter mit einer App auf den Markt kommen werden.

Aus Benutzersicht wäre es sicherlich besser, wenn es nur eine offizielle App gäbe. Man sollte sich nicht fragen müssen, welche App man denn installieren muss. Darüber hinaus ist zu erwarten, dass in den App und Play Stores auch Trittbrettfahrer auftauchen werden, also Apps, die nur so tun, als seien sie die/eine offizielle App, um Benutzerdaten abzuziehen, Werbung zu schalten oder sogar Malware zu installieren. Eine offizielle Web-Präsenz unter eigener Domain, mit den korrekten Installations-Links könnte sicherlich helfen. Diese könnte von den Medien verlinkt werden, um die Bevölkerung an den richtigen Ort zu lenken.

Wie kommen wir da hin?

Ich habe keinen direkten Einblick in die aktuellen Bemühungen, eine entsprechendes System zu entwickeln. Ich kann nur beschreiben, wie ich ein solches Projekt aufsetzen würde. In den letzten zwei Jahrzehnten habe ich erfolgreiche Neuentwicklungen im Corporate sowie im Startup-Umfeld geleitet. Außerdem habe ich Software in verschiedenen Industrien entwickelt, darunter auch im medizinischen Bereich.

Voraussetzungen für die erfolgreiche Entwicklung einer Corona App:

ein kleines, agiles Team aus erfahrenen Entwicklern und App Designern

enger Kontakt zu Experten (z.B. Epidemiologen)

eine starke Projektführung, die Politik vom Entwicklerteam fern hält und ihnen alle notwendigen Ressourcen bereitstellt

mehrstufige, ausführliche Tests

Rollout in Zusammenarbeit mit den Medien

Auf drei dieser Punkte möchte ich besonders eingehen.

Kleine Teams > große Teams

Man weiß es schon seit 50 Jahren, aber manch einem Manager oder Politiker muss man es auch heute noch erklären: Kleine Teams entwickeln Software schneller und robuster als große Teams. Natürlich arbeiten in den großen Firmen wie Google oder Microsoft sehr viele Menschen, aber die arbeiten auch alle an unterschiedlicher Software. Mehr Mitarbeiter in ein Projekt zu stecken verlangsamt es, anstatt dass es das Projekt beschleunigt. Als Beispiel: Lediglich 32 Entwickler haben WhatsApp für 450 Millionen aktive Nutzer auf die Beine gestellt, und das erscheint mir für die Corona App noch eine große Zahl. Wenn das Kernteam für App und Backend aus mehr als 8 Personen besteht, könnte es ineffizient werden. Der Koordinations- und Kommunikationsaufwand steigt quadratisch und nicht linear. Wir wollen, dass Entwickler entwickeln und nicht den ganzen Tag in Meetings stecken.

Die Entwickler müssen viel Erfahrung mit der Entwicklung von Apps, Backend-Systemen und IT Sicherheit haben. Es mag zwar oberflächlich gesehen einfach erscheinen, eine App zu entwickeln, aber nur Entwickler, die das schon jahrelang in unterschiedlichen Umfeldern gemacht haben, sind in der Lage, mögliche Probleme und Engpässe frühzeitig zu erkennen, und das ist das, was wir in diesem Projekt brauchen. Erfahrung mit den eingesetzten Tools sind unabdingbar. Unüberlegtes Einbinden fremder Code-Bibliotheken oder — Gott bewahre! — blinde Copy-Paste-Stack-Overflow-Programmierung, könnte sich hier zu einer nationalen Krise entwickeln.

Agile Entwicklung ohne Religion

Agile Entwicklung heißt Entwicklung in kurzen Zyklen mit einem Fokus auf ein fertiges, benutzbares System. In Kombination mit den Tests und in Rücksprache mit den Experten sollte eine Software entstehen, die schon früh (zunächst intern) nutzbar ist — wenn auch mit Einschränkungen — und die kontinuierlich optimiert wird. Dabei steht nicht die strenge Verfolgung einer Methodik wie etwa SCRUM um Vordergrund, sondern der Fokus auf die iterative Annäherung an die finale App. Jede Iteration sollte mit den notwendigen Refactorings begleitet werden, auch wenn sie technischer Natur sind. Dies muss der Projektleiter verstehen und unterstützen.

Die Tests

Getestet werden muss auf allen Ebenen und in mehreren Stufen. Unit Tests für kritische Kernkomponenten, CI/CD Methodiken, Code Reviews und wiederholbare Integrationstests sind genauso unverzichtbar wie Usability Tests mit potentiellen Endanwendern. Vor Auslieferung sollte es, wenn möglich, einen größer angelegten Test geben, bei dem eine Gruppe von Menschen (z.B. in einem überschaubaren Stadtteil oder einem Dorf) die App über mehrere Tage hinweg nutzt. Hier muss Feedback von der Testgruppe eingeholt und berücksichtigt werden. Gibt es Anzeichen, dass die App nicht benutzt wird, müssen Korrekturen vorgenommen werden.

Zusammengefasst

Es ist schon erstaunlich, dass in einer solchen Krise die Hoffnung auf IT gesetzt wird. Zwischen der theoretischen Möglichkeiten der Informationstechnologie und der Realität liegt aber sehr häufig eine große Kluft.

Rund 58 Millionen Deutsche besitzen ein Smartphone. Wenn wir erreichen wollen, dass 60% der Deutschen eine App zur Nachverfolgung von Covid-19 Infizierten nutzen, müssen rund 86% aller Smartphone-Nutzer in Deutschland die App installieren und verwenden. Das ist eine hohe Zahl.

In diesem Artikel habe ich aus App-Entwicklungssicht dargestellt, welche Hindernisse es zu diesem Ziel geben kann und wie man organisatorisch ein Entwicklungsteam aufstellen könnte, um diese zu überwinden. Dies ist weder akademische Übungsaufgabe, noch sollte es eine Spielwiese für IT-Berufseinsteiger sein. Aber auch als Profilierungsprojekt eines alteingesessenen Konzerns sehe ich wenig Erfolgschancen. Was wir brauchen ist ein kleines Team aus Spezialisten, das frei von Politik und Begierden externer Entscheidungsträger arbeiten kann und dabei in agiler Weise ein robustes System schafft, das unserer Gesellschaft zum Durchbruch verhilft.

Update 28.04.2020: Die Bundesregierung will das mit der Telekom und SAP machen. Also natürlich genau der maximal politische und ineffizienteste Weg, den man sich vorstellen kann. Da sinkt meine Hoffnung auf einen neuen Tiefstand.

Update 16.06.2020: Die Corona App ist raus (Google Play Store / Apple App Store). Ich nehme meine Kritik zurück. Diese großen Unternehmen haben hier doch erstaunlicherweise mal gute Arbeit geleistet, zumindest was die Datenschutzaspekte angeht. Die App startet mit mehreren Screens, die viel erklärenden Text enthalten und selbst für mich teilweise ein wenig verwirrend sind. Es wird versucht, Zweifel zu entkräften. Das ist gut einerseits, andererseits befürchte ich, dass viele Benutzer damit überfordert sein könnten, denn wir wissen ja, dass die meisten Menschen auf Bildschirmen nicht viel lesen möchten. Ob hier die richtige Balance getroffen wurde, werden wir sehen. Und ob die App wirklich einen Unterschied in der Eindämmung von Corona macht, werden wir auch sehen. (Leider gibt es da aus anderen Ländern, die schon früher eine App hatten, nicht gute Nachrichten, selbst wenn ein Großteil der Bevölkerung eine solche App nutzt.)