SlideShare ist ein Scribd-Unternehmen logo
1 von 16
CSS Versicherung - INTRAS - ARCOSANA
Feedback im Software Engineering
Luzern, 16. März 2019
Pascal Erni, Martin Jonen, Andreas Schmidt
Twitter: @pascal_erni
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.
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
Complex
Probe – Sense – Respond
«Emergent Practice»
Feedback
Loop
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
Feedback-Loop Pyramide SoftwareentwicklungLaufzeit/Latenz3Monate1Sekunde
Wiederk.Aufwandautomatischmanuell
Risikowert10.-6Mio.
ScopederAussagekonkretglobal
Anzahl; repräsentiert durch Fläche
Inspiriert durch Test-Pyramide vom Mike Cohn. Tests sind auch Feedback-Loops.
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
SAP FS-CD Testsuite bei der CSS
SAP FS-CD Testsuite bei der CSS
• Idee: Automatische Regressionstests (fachliche Prozesse)
SightEffects vermeiden (Robustheit)
Verringerung wiederkehrender manueller Testaufwand
Flexible Gestaltung von komplexen Prozessen
• Test-Driven-Development
Nachstellen fachlicher Fall inkl. Fehlerkonstellation
Programmmodifikation durchführen
Erfolgreiche Ausführung des Testfalls
• Hoher Initialaufwand
Entwicklung Software
Aufbau Prototypen
Übernahme von bereits existierenden manuellen Testfällen
1..*
Aufbau der SAP FS-CD Testsuite
Testfall
Testschritt Aktion
Aktions-Handler
Prüfung
Custom Code
Ausführung
SAP-Funktion
Ausführung
Dispatcher
Testlauf
Testlauf
Container
GUI
1
1 1
«call»
«realize»
- DB Abfrage
- Filevergleich
- Massenaktivitäten
- Anlegen Stammdaten
- Standartprogramm
- Batch Input Mappen
- Schnittstellenaufrufe
- Testresultat
- Erzeugte Stammdaten
- Ausgeführte Aktionen
- Protokolle
Testfall-Design Testfall-Ausführung
CI Server
Teamcity
Demo der SAP FS-CD Testsuite
Build/Test-Lampen bei der CSS
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
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
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.

Weitere ähnliche Inhalte

Ähnlich wie Feedback-Loops in der ABAP Softwareentwicklung

95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemachtNico Orschel
 
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas Fend
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas FendTrivadis TechEvent 2016 Testen wird überschätzt von Andreas Fend
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas FendTrivadis
 
Chaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps TeamsChaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps TeamsRamon Anger
 
DWX 2016 - Load Testing mit Visual Studio richtig gemacht
DWX 2016 - Load Testing mit Visual Studio richtig gemachtDWX 2016 - Load Testing mit Visual Studio richtig gemacht
DWX 2016 - Load Testing mit Visual Studio richtig gemachtMarc Müller
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Markus Unterauer
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebAndreas Schmidt
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performanceglembotzky
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023Johannes Kleinlercher
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?QAware GmbH
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Josef Adersberger
 
Surf 'n' Turf - Scrum und ECSS-E-ST-40C
Surf 'n' Turf - Scrum und ECSS-E-ST-40CSurf 'n' Turf - Scrum und ECSS-E-ST-40C
Surf 'n' Turf - Scrum und ECSS-E-ST-40CStefan Wertheimer
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenOdilo Oehmichen
 
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenPatrick Baumgartner
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 

Ähnlich wie Feedback-Loops in der ABAP Softwareentwicklung (20)

95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
 
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas Fend
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas FendTrivadis TechEvent 2016 Testen wird überschätzt von Andreas Fend
Trivadis TechEvent 2016 Testen wird überschätzt von Andreas Fend
 
Chaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps TeamsChaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps Teams
 
DWX 2016 - Load Testing mit Visual Studio richtig gemacht
DWX 2016 - Load Testing mit Visual Studio richtig gemachtDWX 2016 - Load Testing mit Visual Studio richtig gemacht
DWX 2016 - Load Testing mit Visual Studio richtig gemacht
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
 
Debugging und Profiling
Debugging und ProfilingDebugging und Profiling
Debugging und Profiling
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
1. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.20231. Cloud Native Meetup Innsbruck, 23.11.2023
1. Cloud Native Meetup Innsbruck, 23.11.2023
 
Scaling Rails
Scaling RailsScaling Rails
Scaling Rails
 
Definition of Ready
Definition of ReadyDefinition of Ready
Definition of Ready
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?Cloud Native & Java EE: Freund oder Feind?
Cloud Native & Java EE: Freund oder Feind?
 
Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?Cloud Native und Java EE: Freund oder Feind?
Cloud Native und Java EE: Freund oder Feind?
 
Feature teams
Feature teamsFeature teams
Feature teams
 
Surf 'n' Turf - Scrum und ECSS-E-ST-40C
Surf 'n' Turf - Scrum und ECSS-E-ST-40CSurf 'n' Turf - Scrum und ECSS-E-ST-40C
Surf 'n' Turf - Scrum und ECSS-E-ST-40C
 
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 der Tools & Methoden - Baumgartner, Oehmichen
 
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, OehmichenJFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
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
  • 4.
  • 5. Complex Probe – Sense – Respond «Emergent Practice» Feedback Loop
  • 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
  • 7. Feedback-Loop Pyramide SoftwareentwicklungLaufzeit/Latenz3Monate1Sekunde Wiederk.Aufwandautomatischmanuell Risikowert10.-6Mio. ScopederAussagekonkretglobal Anzahl; repräsentiert durch Fläche Inspiriert durch Test-Pyramide vom Mike Cohn. Tests sind auch Feedback-Loops.
  • 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
  • 9. SAP FS-CD Testsuite bei der CSS
  • 10. SAP FS-CD Testsuite bei der CSS • Idee: Automatische Regressionstests (fachliche Prozesse) SightEffects vermeiden (Robustheit) Verringerung wiederkehrender manueller Testaufwand Flexible Gestaltung von komplexen Prozessen • Test-Driven-Development Nachstellen fachlicher Fall inkl. Fehlerkonstellation Programmmodifikation durchführen Erfolgreiche Ausführung des Testfalls • Hoher Initialaufwand Entwicklung Software Aufbau Prototypen Übernahme von bereits existierenden manuellen Testfällen
  • 11. 1..* Aufbau der SAP FS-CD Testsuite Testfall Testschritt Aktion Aktions-Handler Prüfung Custom Code Ausführung SAP-Funktion Ausführung Dispatcher Testlauf Testlauf Container GUI 1 1 1 «call» «realize» - DB Abfrage - Filevergleich - Massenaktivitäten - Anlegen Stammdaten - Standartprogramm - Batch Input Mappen - Schnittstellenaufrufe - Testresultat - Erzeugte Stammdaten - Ausgeführte Aktionen - Protokolle Testfall-Design Testfall-Ausführung CI Server Teamcity
  • 12. Demo der SAP FS-CD Testsuite
  • 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.

Hinweis der Redaktion

  1. 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.
  2. 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.