Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
SAP Software Engineering – live Agile!Agiles Projektmanagement und Clean Code im SAP-Umfeld
SAP Software Engineering – live Agile!
SAP Software Engineering – live Agile!Ali KavehCertified Scrum Master Solution Consultant SAP
�� mit Scrum groß geworden
�� seit vier Jahren Java-Entwickler und Scrum Master
�� zwei Jahre in SAP-CRM / ERP-Umfeld tätig
Ziele des Vortrags
MotivationUnsere Ziele:
Von prozeduraler Programmierung …
… zu Clean Code mit ABAP (OO)
Hilfreiche Regeln
Foto
: Mor
itz
Rös
el /
pix
elio
.de
Erfahrung
Die Herausforderung:
Unsere SAP-Projekt- landschaft
�� Beratungsprojekte
�� Einführungsprojekte
�� Supportprojekte
�� usw.
Agiler Ansatz mit Kanban
�� Keine Sprints Work in Progress (Queue von Features/Stories)
�� Planungsmeetings (agiler Planungszyklus)
�� Retrospektiven
�� Reviews
�� Daily Stand Up
�� Definition of Ready
�� Mehrere Kanban-Boards
Definition of Ready
Voraussetzungen, die ein Feature erfüllen muss:
�� klar definiert und spezifiziert mit dem Kunden
�� Kundennutzen vorhanden
�� umsetzbar
�� auf dem Agile-Board angelegt und beschrieben
�� festgelegte Akzeptanz-Kriterien
�� hat einen Feature-Owner
Kanban-Boards: Planning-Board
Kanban-Boards: Implementation-Board
Kanban-Boards: Project-Board
Kanban-Boards: Testing-Board
„Wir haben Spezialisten“ „Jeder kann alles“
Agiler Ansatz in Projektteams
Die Herausforderung in SAP: Verschiedene Fachgebiete (Sales, Service, Marketing, usw.) benötigen spezifisches Hintergrundwissen.
Klassische ABAP Entwicklung
Durch den prozeduralen Wald
Klassische Entwicklung ABAP Objects
Der Weg zum agilen Entwickeln:
Clean Code Initiative
Foto
: Rai
ner S
turm
/ p
ixel
io.d
e
Klassische ABAP-Entwicklung
Prozedurale Programmierung
ABAP Objects (OO)
http://www.clean-code-developer.de
Kann man diese Prinzipien und
Praktiken auch in ABAP einsetzen?
Ja, aber …
Clean Code Workshop: roter Grad
Clean Code Workshop: oranger Grad
Clean Code Workshop: gelber Grad
Clean Code Workshop: grüner Grad
Continuous Integration
Clean Code Workshop: grüner Grad
ABAP Test Cockpit
Verfügbar ab:
�� EhP2 for SAP NetWeaver 7.0 support package stack 12 (SAP Basis 7.02, SAP Kernel 7.20)
�� EhP3 for SAP NetWeaver 7.0 support package stack 5 (SAP Basis 7.31, SAP Kernel 7.20)
Quelle: http://scn.sap.com/docs/DOC-31773
ABAP Test Cockpit
Statische Codeanalyse
ABAP Test Cockpit
Statische Codeanalyse (Metriken)
Clean Code Workshop: grüner Grad
Clean Code Workshop: blauer Grad
ABAP Unit Test
Ja, es ist möglich: Unit Test schreiben in ABAP
�� Tests nur für losgelöste Funktionalität (Dateien einlesen, XML parsen usw.)
�� Mock-Aufwand zu hoch
�� Komplexe Objekte und Prozesse
mockA – Open source ABAP Mocking Frameworkhttp://scn.sap.com/community/abap/blog/2013 /10/16/mocka-is-now-open-source-abap-mocking-framework
Definierte Regeln
1. Klassen und Methoden verwenden
2. In FM, BADI, BAPI, Reports… ABAP Objects einsetzen, wenn möglich
3. Keine prozedurale Implementierung
4. Tests für losgelöste Logik5. Abnahme-Tests definieren
(Testprotokoll)6. Cut Over Plan (D Q P)7. Einsatz von ABAP Test Cockpit8. Reviews9. Tägliche Reflexion
Foto: Moritz Rösel / pixelio.de
Fazit und Lessons learned
�� Die Anzahl der Boards kann je nach Projekt variieren
�� Atlassian Jira Agile: erfüllt leider nicht alle benötigten Prozess-Schritte
�� Durch den Einsatz von ABAP Objects können wir flexibler auf Kundenwünsche und Änderungen reagieren: Wiederverwendbarkeit von Methoden und Klassen, zentrale Änderungen
�� ABAP Test Cockpit erleichtert das Arbeiten in größeren Teams durch Namenskonventionen und Metriken
�� Test-driven Development (TDD) ist nur mit größerem Aufwand möglich
�� Refactoring ist durch nicht vorhandene Tests und ohne Unterstützung durch SAP-Tools riskant
�� Eclipse und die darin vorhanden Tools erleichtern das Refactoring
SAP Software Engineering – live Agile!Agiles Projektmanagement und Clean Code im SAP-Umfeld
Vielen Dank für Ihre Aufmerksamkeit!
Ali KavehCertified Scrum MasterSolution Consultant SAP
+49 (0) 7732 [email protected]
Copyright-Hinweis
Wir nutzen neben eigenem Material auch Bilder von folgenden Quellen
nach Maßgabe der dort festgelegten Nutzungsbedingungen.
Falls wir irrtümlicherweise fremde Rechte verletzen, kontaktieren Sie
uns bitte umgehend, damit wir berechtigte Interessen wahren können.
Bildnachweise:
Moritz Rösel / pixelio.de
Rainer Sturm / pixelio.de