Top 10 der unagilsten Systemeigenschaften

Stefan Hildebrandt / @hildebrandttk

Motivation

Viele aktuelle Systeme sind

  • schwer zu verändern
  • nicht Teamfähig
  • kontraproduktiv
  • nicht zukunftsfähig

kurz:

unagil

Gilt leider auch für viele aktuelle Systementscheidungen!

Kriterien

Teamfähigkeit

  • Verfügbarkeit
  • Parallele Nutzbarkeit
  • Notwendige Lernkurve

Anpassbarkeit

  • Kleine Features
  • Refactorings
  • Große Richtungswechsel

Testbarkeit

  • Automatisierbarkeit
  • Reproduzierbarkeit
  • Stabilität
  • Verfügbarkeit

DevOps

  • Verfügbarkeit (z.B. Lizensierung)
  • Automatisierbarkeit
  • Verfügbarkeit von Werkzeugen
  • Stabilität
  • Geschwindigkeit

Ziele

Liste zum nachschlagen

Vorträge und Diskussionen

Beispiel

Lange Deployment-Zeiten



Beispiel: Lange Deployment-Zeiten

Mögliche Auswege:

  • Alternative Applikationsserver in der Entwicklung (Aufwand, Komplexität)
  • Tools wie jRebel (Kosten) / DCEVM (Komplexität, Einschränkungen)
Beispiel

Begrenzende Lizenzierung der Entwicklungsumgebung

  • Nicht alle Teammitglieder können entwickeln
Beispiel

Begrenzende Lizenzierung der Testwerkzeuge

  • Nicht alle Teammitglieder können lokal testen
  • Tests erst nach der Integration
  • Kein DevOps
Beispiel

Begrenzende Lizenzierung der Laufzeitumgebung für Entwickler-PCs

  • Entwicklung auf geteilter Umgebung
  • Viele Störungen in der Umgebung
  • Kein DevOps
Beispiel

Begrenzende Lizenzierung der Laufzeitumgebung für Test und CI

  • Nicht ausreichend Branches im CI für Integrationstests
  • Manuelle und automatisierte Tests auf den gleichen Umgebungen
  • Komplexere Testfälle
  • Zu wenig Umgebungen für manuelle Tests
  • Tests erst nach der Integration möglich
  • Kein DevOps
Beispiel

Nicht automatisierbare Installation

  • „DevOps-Clickathlon“ ➧ Kein DevOps
  • Keine Deploymentautomatisierung
  • Kein verlässliches Staging
  • Seltene Deployments
Beispiel

Antwortverhalten (Latenz, Asynchronität)

  • Lange Testausführung
  • Zu wenig Integrationstests
  • Komplexere Testfälle
  • Nightly Builds
Beispiel

Monolithisch

  • Viele interne Abhängigkeiten
  • Kaum änderbar
  • Schwierig testbar
  • Komplexes, langsames Buildsystem

Bewertung

  1. Wie problematisch im Teamalltag
  2. Wie problematisch im Bezug auf "Continuous Deployment"
  3. Häufigkeit / Relevanz

Zeitplan

bis 20 Teilnehmer

  • 11:00 - 11:15: Einleitung und Vorstellung von Beispielen
  • 11:15 - 11:45: Detaillierung und Bestimmung von Favoriten (4 Gruppen)
  • 11:45 - 12:05: Vorstellung von 12 - 15 Favoriten (reihum je 1 noch nicht vorgestelltes)
  • 12:10 - 12:25: Gemeinsames "Magic Estimation" zur Bestimmung der Top 10
  • 12:25 - 12:30: Ergebnisse zusammentragen

Zeitplan 1

ab 20 Teilnehmer

  • 11:00 - 11:20: Einleitung und Vorstellung von Beispielen
  • 11:20 - 11:40: Detaillierung und Bestimmung von Favoriten (6 Gruppen)
  • 11:40 - 12:00: Vorstellung von 12 - 15 Favoriten (reihum je 1 noch nicht vorgestelltes)
  • 12:00 - 12:20: "Magic Estimation" zur Bestimmung der Top 10 (Gruppe)
  • 12:20 - 12:30: Ergebnisse zusammentragen und gemeinsame Top 10 erstellen

Nächste Schritte

Bestimmung der Favoriten in Gruppenarbeit

Ende 11:40

Vorstellung von 12 - 15 Favoriten

reihum je 1 noch nicht vorgestelltes

Ende 12:00

Gemeinsames "Magic Estimation" zur Bestimmung der Top 10

Ende 12:25

Ergebnisse zusammentragen

Ende 12:30

Slides

h9t.eu/s/t10dus

Stefan Hildebrandt - consulting.hildebrandt.tk

  • Beratung, Coaching und Projektunterstützung
  • Java EE
  • Buildsysteme gradle und maven/ant-Migration
  • Testautomatisierung
  • Coach in agilen Projekten
  • DevOps
Datenschutz Impressum