«Move fast and break things» war bis vor zehn Jahren das Motto von Facebook. Ohne Kontext wird es aber missverstanden und missbraucht. Vor ein paar Monaten las ich einen tollen Artikel von Glyph, der diese Verständnislücken eindrucksvoll füllt. Nun gibt es diesen Text bei DNIP auch auf Deutsch: Für alle, die besser verstehen wollen, wie Software heute entsteht und was das für Digitalisierung bedeutet.
Das Titelbild ist eine Collage aus Ming-Vase von MicKennei KAGMOIRZ (CC BY-SA 4.0) und eigenem Foto einer Lightning-McQueen-Replika aus der besuchenswerten Enter Technikwelt.
Die Essenz des Glyph-Essays
Das Wichtigste, was Sie aus dem Glyph-Essay (Original oder deutsche Übersetzung) mitnehmen sollten:
Wir brauchen ein Sicherheitsnetz, damit wir rasch und gefahrlos arbeiten können. Auch (bzw. ganz besonders) in der Softwareindustrie.
Hier noch ein paar meiner Erfahrungen, wie wir dieses Sicherheitsnetz aufspannen können und wie wir danach das Hochseil eleganter und effizienter überqueren können. Mögen sie Ihre Softwareprojekte schneller, besser und gefahrloser machen.
Gute Softwareentwicklung
Design
Einfach, übersichtlich, nutzbar
- Nicht mit der eierlegenden Wollmilchsau beginnen, sondern mit einem spezifischen Anwendungsfall, der konkret zu einer Verbesserung führt. Von da aus schrittweise vorgehen. (Oft als „Release early, release often“ formuliert ist es eigentlich nur eine konsequente Weiterführung von „Move fast and break things“.)
Kein Wunder übrigens, dass eierlegende Wollmilchsäue schon lange vor den Dinosauriern ausgestorben sind. - Wenn das Produkt auch für Einsteigerinnen bzw. seltene Nutzer nützlich sein soll (und das ist fast immer der Fall!): Die Benutzerführung auf deren Fall optimieren. Klar, verständlich, unnötige Felder/Fragen vermeiden oder nur bei Bedarf einblenden. Und für die Sonderfälle benutzerfreundliche Möglichkeiten vorsehen, deren Verarbeitung nicht unbedingt automatisiert sein muss („80/20-Regel„).
- Klare Trennung zwischen Frontend und Backend; dies vereinfacht Erweiterungen, Skalierung und Wartung.
Softwareentwicklung
Nachvollziehbar, automatisiert, sicher
- Den gesamten Quellcode und alle Zusatzinformationen (Grafiken, Übersetzungen, …) in unter Versionskontrolle (vorzugsweise git) ablegen. (Sollte heutzutage eigentlich eine Selbstverständlichkeit sein…)
- Automatisierte Tests auf jeder Stufe (Unit Tests, Integrationstests, Systemtests, Akzeptanztests, …). Man ist nicht schneller, wenn man Tests weglässt, auch nicht „nur am Anfang“, im Gegenteil (ausser vielleicht bei wirklich winzigen Projekten, aus denen garantiert(!) nie ein Produkt wird).
Auch hier gilt: Je länger man das Unvermeidliche hinausschiebt, desto grösser ist der Gesamtaufwand. - Automatisierungswerkzeuge wie Continuous Integration (CI), Continuous Delivery (CD), Infrastructure as Code (IaC), … Habe ich schon betont, wie wichtig Automatisierung ist?
- Sicherheit von Anfang an eine zentrale Rolle zukommen lassen, z.B. Unterstützung von 2FA und Single-Sign-On, defensive Programmierung, Nutzung von typsicheren, speichersicheren und Thread-sicheren Programmiersprachen, … (Und Sicherheit nicht als Add-On einplanen oder verkaufen!)
- Nicht zu viele neue Technologien ins Projekt einbringen (also, die im Projekt eingesetzten «Innovation Points» zu limitieren).
Betrieb
Monitoring, Dashboards, Backups
- Das System dauernd messen und beobachten. Bei Verhaltensänderungen sofort nachschauen («Monitoring» und «Dashboards» von oben).
- Alle Änderungen an den Daten protokollieren, damit ein Fehler isoliert und seine Auswirkungen rückgängig gemacht werden können (im einfachsten Falle können das die Transaktionslogs der Datenbank sein).
- Regelmässige Backups des Gesamtsystems und Tests, ob das System nach einem Hardware- oder Datenverlust wieder hochgefahren werden kann (Restore-Tests). Wenn sowieso alles automatisiert und unter Versionskontrolle ist — Continuous Integration/Continuous Delivery (CI/CD), Infrastructure-as-Code (IaC), … — besteht das Backup nur aus den eigentlichen Daten und ein grosser Teil der Restore-Tests finden quasi bei jeder Codeänderung statt.
Weiterführende Literatur
- Getting Real: The smarter, faster, easier way to build a successful web application, 37Signals/Basecamp, 2010-04-03 (auf Papier oder als kostenlose Webseite/PDF).
Für mich das Standardwerk für die Denkweise hinter moderner Softwareentwicklung. Grundsätze zum Planen, Bauen und Vermarkten, an die man sich aber nicht dogmatisch halten muss. - Derksen, Neggers, Onwezen und Zelen: Agile Secure Software Lifecycle Management: Secure by Agile Design, Secure Software Alliance, 2018.
Ein Buch über Secure Software Development Lifecycle. Ich finde es nicht berauschend, kenne aber nichts Besseres, was in die Tiefe geht. Vorschläge werden gerne entgegen genommen!
Bilder
Hier einige nützliche Grafiken, um die wichtigsten Punkte in Erinnerung zu behalten.


Aktuelles zu IT-Sicherheit
- Sichere VoIP-Telefone: Nein, danke‽Zumindest war dies das erste, was ich dachte, als ich hörte, dass der weltgrösste Hersteller von Schreibtischtelefonen mit Internetanbindung, Yealink, es jedem Telefon ermöglicht, sich als beliebiges anderes Yealink-Telefon auszugeben. Und somit als dieses Telefonate zu führen, Kontaktlisten anzuschauen und so weiter.
- Diceware: Sicher & deutschDiceware ist, laut Wikipedia, «eine einfache Methode, sichere und leicht erinnerbare Passwörter und Passphrasen mithilfe eines Würfels zu erzeugen». Auf der Suche nach einem deutschsprachigen Diceware-Generator habe ich keinen gefunden, der nur im Browser läuft, also das Passwort nicht von einem Server lädt. Da man Passwörter mit niemandem teilen sollte, war das für mich keine… Diceware: Sicher & deutsch weiterlesen
- Nextcloud: Automatischer Upload auf Android verstehenIch hatte das Gefühl, dass der automatische Upload auf Android unzuverlässig sei, konnte das aber nicht richtig festmachen. Jetzt weiss ich wieso und was dabei hilft.
- VÜPF: Staatliche Überwachungsfantasien im RealitätscheckDie Revision der «Verordnung über die Überwachung des Post- und Fernmeldeverkehrs» (VÜPF) schreckte die Schweiz spät auf. Am Wochenende publizierte die NZZ ein Streitgespräch zum VÜPF. Darin findet sich vor allem ein Absatz des VÜPF-Verschärfungs-Befürworters mit Aussagen, die nicht unwidersprochen bleiben können.
- Phishing-Trend SchweizerdeutschSpam und Phishingversuche auf Schweizerdeutsch scheinen beliebter zu werden. Wieso nutzen Spammer denn diese Nischensprache? Schauen wir in dieser kleinen Weiterbildung in Sachen Spam und Phishing zuerst hinter die Kulissen der Betrüger, um ihre Methoden kennenzulernen. Und danach – viel wichtiger – was wir tun können, um uns zu schützen.
- Persönliche Daten für Facebook-KIMeta – Zuckerbergs Imperium hinter Facebook, WhatsApp, Instagram, Threads etc. – hat angekündigt, ab 27. Mai die persönlichen Daten seiner Nutzer:innen in Europa für KI-Training zu verwenden. Dazu gehören alle Beiträge (auch die zutiefst persönlichen), Bilder (auch die peinlichen) und Kommentare (auch die blöden Sprüche) auf Facebook und Instagram, die Interaktionen mit dem KI-Chatbot «Meta… Persönliche Daten für Facebook-KI weiterlesen
- In den Klauen der CloudBert Hubert, niederländischer Internetpionier und Hansdampf-in-allen-Gassen, hat einen grossartigen Artikel geschrieben, in dem er die Verwirrung rund um «in die Cloud gehen» auflöst. Ich habe ihn für DNIP auf Deutsch übersetzt.
- Können KI-Systeme Artikel klauen?Vor ein paar Wochen hat die NZZ einen Artikel veröffentlicht, in dem Petra Gössi das NZZ-Team erschreckte, weil via KI-Chatbot angeblich «beinahe der gesamte Inhalt des Artikels […] in der Antwort von Perplexity zu lesen» gewesen sei. Und nun könne «man gratis oder für eine Gebühr von etwa 20 Dollar pro Monat jede Zeitung auf… Können KI-Systeme Artikel klauen? weiterlesen
- Was Prozessoren und die Frequenzwand mit der Cloud zu tun habenSeit bald 20 Jahren werden die CPU-Kerne für Computer nicht mehr schneller. Trotzdem werden neue Prozessoren verkauft. Und der Trend geht in die Cloud. Wie das zusammenhängt.
- Facebook: Moderation für Geschäftsinteressenmaximierung, nicht für das Soziale im NetzHatte mich nach wahrscheinlich mehr als einem Jahr mal wieder bei Facebook eingeloggt. Das erste, was mir entgegenkam: Offensichtlicher Spam, der mittels falscher Botschaften auf Klicks abzielte. Aber beim Versuch, einen wahrheitsgemässen Bericht über ein EuGH-Urteil gegen Facebook zu posten, wurde dieser unter dem Vorwand, ich würde Spam verbreiten, gelöscht. Was ist passiert?
- Was verraten KI-Chatbots?«Täderlät» die KI? Vor ein paar Wochen fragte mich jemand besorgt, ob man denn gar nichts in Chatbot-Fenster eingeben könne, was man nicht auch öffentlich teilen würde. Während der Erklärung fiel mir auf, dass ganz viele Leute ganz wenig Ahnung haben, wie die Datenflüsse bei KI-Chatbots wie ChatGPT etc. eigentlich ablaufen. Deshalb habe ich für… Was verraten KI-Chatbots? weiterlesen
- Sicherheit versteckt sich gerneWieso sieht man einer Firma nicht von aussen an, wie gut ihre IT-Sicherheit ist? Einige Überlegungen aus Erfahrung.
Schreibe einen Kommentar