Slide 1

Slide 1 text

What it takes to be fast: The Big Five for developing Software fast for a long time Benedikt Stemmildt CTO TalentFormation

Slide 2

Slide 2 text

The rulz for long term software development speed 🚀

Slide 3

Slide 3 text

Assure Speed By Quality.

Slide 4

Slide 4 text

Assure Speed By Quality. ■ QualitĂ€t zerstört Geschwindigkeit ■ Geschwindigkeit zerstört QualitĂ€t ■ Falsch! ■ Testing, Deployment, CodeStyleCheck erzeugen QualitĂ€t UND Geschwindigkeit ■ Automatisierung erzeugt Geschwindigkeit benötigt aber QualitĂ€t ■ Automatisierte QualitĂ€t ist immer qualitativer als manuelle QualitĂ€t ■ Paradox aber wahr ■ Monitoring, Alarming, Operations, Infrastructure as Code, indirekte Dokumentation, Mitarbeiter Onboarding, UrlaubsĂŒbergaben, Wissensverteilung => Geschwindigkeit UND QualitĂ€t ■ Basis Prinzip fĂŒr alle Folgenden A circle has no end

Slide 5

Slide 5 text

Design For Testability.

Slide 6

Slide 6 text

Design For Testability. ■ Vorsicht: DESIGN for Testability. ■ Nicht: Schreib möglichst viele Tests und hab 100% Testabdeckung ■ TDD sorgt fĂŒr gutes Design, nicht fĂŒr viele Tests ■ Schreibe ich zuerst einen Test, muss mein Code modular sein, damit ich ihn gut testen kann. ■ Test getriebenes Design sorgt fĂŒr hohe KohĂ€sion, geringe Kopplung & separation of Concern ■ ModularitĂ€t & UnabhĂ€ngigkeit entsteht ■ Gilt nicht nur fĂŒr Applikation, auch fĂŒr Infrastruktur ■ Design for Testability sorgt ganz natĂŒrlich fĂŒr Einhaltung nachfolgende Prinzipien This Is Not a Test

Slide 7

Slide 7 text

Shift Left On Security.

Slide 8

Slide 8 text

Shift Left On Security. ■ Security nachtrĂ€glich zu erzeugen ist unmöglich. ■ Grundlegende Entscheidungen haben massiven Einfluss auf Security. ■ Geschwindigkeit wird massiv reduziert, wenn ich nachtrĂ€glich auf Security ĂŒberprĂŒfe ■ Security ist ĂŒberall: IAM, Container Scanning, Dependency Scanning, OS Scanning, Network, Injections, Browser, Tokens/Passwörter, 
 ■ Security wird vernachlĂ€ssigt und tut richtig weh ■ Shift Left - also zuerst machen: ■ So viel wie möglich automatisieren ■ VerschlĂŒsselung ■ TLS everywhere ■ Alles ist public! (nicht hinter VPN in Sicherheit wiegen) ■ Mit jeder User Story kommt eine Evil User Story Du kommst hier nicht rein

Slide 9

Slide 9 text

Share Nothing.

Slide 10

Slide 10 text

Share Nothing. ■ Nichts wird geteilt. ■ Keine Daten ■ Kein Code ■ Keine Menschen ■ Keine Infrastruktur ■ Kein Budget ■ Kein BĂŒro(!!!) ■ Keine Synchronen APIs ■ Kein gemeinsames Frontend ■ UnabhĂ€ngigkeit schafft Geschwindigkeit Mein Schatz, oh mein Schatz

Slide 11

Slide 11 text

Share Nothing. DISCOVER DECIDE FULFILL Self Contained System inspire Back End Frontend landing & content pages Database Queue (Kafka) Self Contained System ïŹnd Back End Frontend product lists & search Database Queue (Kafka) Self Contained System products Back End Frontend pdp Database Queue (Kafka) Self Contained System availabilities Back End Frontend availability Database Queue (Kafka) Self Contained System baskets Back End Frontend baskets Database Queue (Kafka) Self Contained System order Back End Frontend checkout Database Queue (Kafka) Frontend Proxy (nginx) Server-Side-Includes customer / visitor

Slide 12

Slide 12 text

Deploy Continuously.

Slide 13

Slide 13 text

Deploy Continuously. Ludicrous Speed ■ Jeder Push geht in Produktion ohne manuellen Eingriff ■ Es gibt nur den Trunk/Main-Branch ■ Keine Merges. Alles wird sofort integriert. ■ Feature Toggles ■ Es wird IMMER deployed. Auch Freitag, kurz vor Feierabend. Auch Samstag. Auch Sonntag. Immer. ■ Deployment darf keine Angst machen ■ Automatisierung stellt alles sicher ■ Pipelines laufen nicht lĂ€nger als 15 Minuten ■ Wenn ja, dann optimieren ■ Es wird IMMER nach vorn geïŹxed und NIE zurĂŒck gerollt

Slide 14

Slide 14 text

Be Agile.

Slide 15

Slide 15 text

Be Agile. ■ Jeder Plan ist falsch ■ Ohne organisatorische FlexibilitĂ€t bringt mir all das nichts ■ Die Teams mĂŒssen Robustheit fĂŒr stetige VerĂ€nderung entwickeln ■ Im Mittelpunkt muss der Wert fĂŒr den Kunden stehen ■ Dieser Wert muss schnell geliefert werden ■ Neue Erkenntnisse mĂŒssen Plan verĂ€ndern ■ Unternehmen, die nicht flexibel genug sind, sich auf ihre Kunden einzustellen scheitern ■ Nicht die GeschĂ€ftsfĂŒhrung oder der Fachbereich hat Recht, sondern der Kunde ■ Neue Technologien verĂ€ndern alles. z.B. No/Low-Code vs. Hard-Code panta rhei

Slide 16

Slide 16 text

The Big Five.

Slide 17

Slide 17 text

The Big Five Assure Speed By Quality. Design For Testability. Shift Left On Security. Share Nothing. Deploy Continuously. Be Agile.

Slide 18

Slide 18 text

THANK YOU.