Quantcast
Channel: Lange Artikel – Marcel Waldvogel
Viewing all articles
Browse latest Browse all 47

«Move fast and break things» richtig verstehen und nutzen

$
0
0

Ein Rennauto fährt in eine Ming-Vase und zerbricht sie

«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

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

Bilder

Hier einige nützliche Grafiken, um die wichtigsten Punkte in Erinnerung zu behalten.


Viewing all articles
Browse latest Browse all 47