Anlässlich des ABAP CodeRetreat präsentierte die CSS Versicherung ihre Feedback-Loops in der ABAP Softwareentwicklung. Dabei ist sie auf ihr SAP FS-CD Testtool, den Broken-Windows-Effekt und eine SAP ADT Erweiterungen eingegangen.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Feedback-Loops in der ABAP Softwareentwicklung
1. CSS Versicherung - INTRAS - ARCOSANA
Feedback im Software Engineering
Luzern, 16. März 2019
Pascal Erni, Martin Jonen, Andreas Schmidt
Twitter: @pascal_erni
2. Wieso sind Feedback-Loops in der
Softwareentwicklung so wichtig?
Was zeichnen sie aus?
Etwas Grundlagen…
und etwas Praxis
Was die CSS in der ABAP Entwicklung diesbezüglich tut.
3. Simple
Sense – Categorise – Respond
«Best Practice»
Complicated
Sense – Analyze – Respond
«Good Practice»
Complex
Probe – Sense – Respond
«Emergent Practice»
?
?
Chaos
Act – Sense – Respond
Cynefin-Framework – Dave Snowden
6. Wie lässt sich die Qualität von Feedbackloops bestimmen:
Feedback
Loop
Eigenschaft
4) Aussagekraft Belastbarkeit/Stabilität der Aussage
1) Laufzeit / Latenz
Zeitdauer von der ersten Umsetzung bis
zum Abschluss der Feedbackauswertung
2) Aufwand
Umsetzungsaufwand und
Prozessaufwand für den Feedback Loop
3) Risiko
Maximale Kosten, die von einem
negativen zu einem positiven Feedback
entstehen oder «Abbruchkosten»
Beschreibung
Hoch: konkreter Scope,
Umsetzbarkeit
Kurz, wegen 3)
Wiederkehrend: klein
Klein: Wirtschaftlichkeit
und Beherrschbarkeit
sicherstellen
Optimum
8. Feedback-Loops in der SAP ABAP Entwicklung
real World
E2E Regression
Review & Retro
Unit Tests
IDE Checks
E-Catt
FS-CD TestsuiteDaily Scrum
Schnittstellen
Integration
Test/Build Lamp
Code Metriken
14. Aufbau der Build/Test-Lampen
• Idee: Zustand der Software «spürbar» machen
Ausbreitung der «Broken-Windows» verhindern
Pro Team einen klaren Status sichtbar machen
Überblick verschaffen
CacheOpenHab
CI Server
Teamcity
Service Bus
HealthCheck
15. Eclipse ABAP Forced Feedback Plugin
• Idee: Schnelles und spürbares Feedback über Code Qualität
Forced Feedback = Entwickler wird bei schlechtem Code «gestört»
Hintergrund der IDE verfärbt sich bei schlechtem Code Rot
Aktuell wird als einziger Parameter «Zeilen pro Methoden» gemessen.
• Opensource
Eclipse Plugin
Gehostet auf GitHub https://github.com/css-ch/abap-code-feedback
Sind noch im Experimentierstadium
• SAP ADT
Leider kein offenes API, keine Dokumentation
lexikalischen Analyse noch ungeklärt
ABAP Lint ist eventuell eine Alternative
16. Fazit
• Software sind komplexe Systeme. Ursache und Wirkung können oft nur im
Nachhinein wahrgenommen werden. Wir brauchen Feedback-Loops, um dies
zu beherrschen (Sense-Respond, Inspect-Adapt).
• Feedback-Loops dürfen nicht per Zufall entstehen. Diese müssen bewusst
eingesetzt und weiterentwickelt werden (Pyramide).
• Der Aufbau dieser Feedback-Loops/Werkzeuge benötigt Aufwand, Zeit und
den Mut etwas auszuprobieren (Experimente).
• Kein Feedback-Loops zu haben, ist keine Ausrede nicht zu starten. Wichtig ist
nur, dass man sich kontinuierlich verbessert (Geschwindigkeit > 0).
• Beginnt am Montag darüber zu sprechen. Ihr könnt euch nicht vorstellen, wie
intensiv unsere Diskussionen nach dem ersten «ABAP CodeRetreat» waren.
Editor's Notes
Modell, das verwendet wird, um Probleme, Situationen und Systeme zu beschreiben
Simple, in der die Beziehung zwischen Ursache und Wirkung für alle offensichtlich ist. Herangehensweise ist Sense - Categorise - Respond, und wir können bewährte Praktiken (best practice) anwenden.
Complicated, in der die Beziehung zwischen Ursache und Wirkung eine Analyse, eine andere Form der Prüfung und/oder die Anwendung von Fachwissen erfordert. Hier geht man mittels Sense - Analyze - Respond heran, und man kann gute Praktiken (good practice) anwenden.
Complex, in der die Beziehung zwischen Ursache und Wirkung nur im Nachhinein wahrgenommen werden kann, aber nicht im Voraus. Hier ist der Ansatz Probe - Sense - Respond, und wir können emergente Praktiken (emergent practice) feststellen.
Chaotic, in der es keine Beziehung zwischen Ursache und Wirkung auf Systemebene gibt. Hier ist der Ansatz Act - Sense - Respond, und wir können innovative Praktiken entdecken.
Simple, in der die Beziehung zwischen Ursache und Wirkung für alle offensichtlich ist. Herangehensweise ist Sense - Categorise - Respond, und wir können bewährte Praktiken (best practice) anwenden.
Complicated, in der die Beziehung zwischen Ursache und Wirkung eine Analyse, eine andere Form der Prüfung und/oder die Anwendung von Fachwissen erfordert. Hier geht man mittels Sense - Analyze - Respond heran, und man kann gute Praktiken (good practice) anwenden.
Complex, in der die Beziehung zwischen Ursache und Wirkung nur im Nachhinein wahrgenommen werden kann, aber nicht im Voraus. Hier ist der Ansatz Probe - Sense - Respond, und wir können emergente Praktiken (emergent practice) feststellen.
Chaotic, in der es keine Beziehung zwischen Ursache und Wirkung auf Systemebene gibt. Hier ist der Ansatz Act - Sense - Respond, und wir können innovative Praktiken entdecken.