SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
1
Mastering the hard way
Einführung von Code Profiler in einer gewachsenen
Applikationslandschaft
22
Agenda
Vorstellung EWE und Referent
Problemstellung
Ein Blick zurück
Vorgehen mit CodeProfiler
Lessons Learned
Ganzheitliche Lösungen in drei Schlüsselbranchen
3
EWE bündelt mit Energie, Telekommunikation
und Informationstechnologie
die Schlüsselkompetenzen
für nachhaltige, intelligente Energiesysteme
EWE – eines der größten Unternehmen im
Nordwesten
4
Umsatz 8,9 Mrd. €
Ergebnis 57,2 Mio. €
Mitarbeiter Ø 9.162
Sehr guter Service, Beratung und die Nähe zu
unseren Kunden sind unsere Stärke
5
2013
1,4 Mio. Stromkunden
1,6 Mio. Gaskunden
680.000 Telekommunikationskunden
EWE Regionen in Deutschland, Polen, Türkei
6
77
Vorstellung Markus Theilen
Diplom-Informatiker
2001 – 2012 bei BTC AG als Software-Entwickler und Software-
Architekt in easy+-Entwicklung (ABAP) tätig
• Erstellung und Etablierung von Entwicklungsvorgaben
• Einführung von automatisierten Prüfungen von Entwicklungsobjekten
seit 2012 als IT-Koordinator für E-IT-Gruppe Abrechnung und
Marktpartner-Kommunikation (AMK), zuständig für
Entwicklungskoordination und Betrieb easy+
Seit 2009 stellv. Sprecher des DSAG-Arbeitskreis Development
•Co-Autor “Best Practice Leitfaden Development - Praxistipps rund um das
Thema ABAP Development”
Autor einer der meistgelesenen Präsentation über ABAP-
Codeanalyse:
http://www.slideshare.net/therealtier/static-abap-code-analyzers
88
Vorstellung easy+
Vollständige Eigenentwicklung auf Basis von SAP ERP 6.0
Umfasst die Komponenten Ablesung, Abrechnung, Fakturierung und
Forderungsmanagement, Marktkommunikation und
Reporting/Controlling für Energiedienstleistungen des EWE-Konzerns
Funktional in etwa vergleichbar mit SAP IS-U
Komplett in ABAP entwickelt, seit 1995 im produktiven Einsatz
Rund 100 Personen in der Entwicklung tätig
99
Warum „Mastering the hard way“?
Über Jahrzehnte gewachsene Applikation
Teilweise über 100 Entwickler mit sehr heterogenen Skill-Leveln
involviert
Keine ausgeprägte Kapselung von internen Modulen (ultra-depandenter
Monolith)
Selten Überprüfung der Einhaltung von Entwicklerrichtlinien
Regressionstests vollständig manuell, auch bei rein technischen
Änderungen notwendig
1010
Technische Daten rund um easy+
8 TByte Datenvolumen
10 Mio. Lines of Code
1.600 Pakete
11.000 Programme
8.600 Klassen und 1.500 Interfaces
1.500 Funktionsgruppen
4.400 Tabellen
1111
Zu viel Code für manuelle Reviews
Mit Größe des Codes kann die Komplexität
exponentiell wachsen
Code kann lokal gut aussehen, aber im
Kontext einer Aufrufhierarchie schlimme
Folgen haben
Diese Komplexität lässt sich manuell nicht
prüfen
Internes Paradigma:
„Keine Entwicklerrichtlinie aufstellen, die
sich nicht automatisiert prüfen läßt!“
1212
Ein Blick zurück
Bis 2009 keine statischen Analysewerkzeuge in Benutzung
Auch keine regelmäßigen Code Reviews
Keine belastbaren Aussagen über Code-Qualität
„Gefühlt“ schlechte Qualität in alten Coding-Teilen, erwartete bessere
Qualität in neuen Code-Teilen
1313
Einführung eines Konkurrenzproduktes
2009 Start der Einführung eines Konkurrenzproduktes in der easy+-
Entwicklung bei BTC
Schwerpunkt ABAP, aber auch einsetzbar für Java, C/C++, .NET-
Sprachen usw.
Fokus auf Auswertungen auf Management-Ebene
1414
Licht…
Aussagen über Code-Qualität waren mit Abstrichen möglich.
Es gab eine „Gewöhnung“ der Entwickler an Einsatz von Code-
Analysewerkzeugen.
Wissen über gutes und schlechtes Coding wurde über Informationen
aus dem Analysewerkzeug unter Entwicklern verbreitet
Sehr viele und aufschlussreiche Dashboards auf hoher Flughöhe
(Management-Ebene) lieferten teilweise erstaunliche Erkenntnisse.
1515
…und Schatten
Eingekauftes Tool war teuer, schwerfällig in der Bedienung, langsam
und fehleranfällig.
Viele false positives oder komplett falsche Regeln führten zu stark
abnehmender Akzeptanz auf Entwicklerseite.
Auftreten von Benchmark Optimization mit negativen Auswirkungen
beobachtet.
Keine direkte Einbindung in ABAP-Entwicklungsprozess möglich
(Workbench, TMS), kein einfacher Weg für Entwickler zu „ihren“
Objekten
Unterscheidung zwischen unverändertem Bestandscoding und gerade
geändertem Coding kaum möglich => Korrekturen konnten nur über den
gesamten Bestand verteilt werden, was zusätzlichen manuellen
Testaufwand mit sich brachte.
1616
Ein (letztes) Wort zum Konkurrenzprodukt
In anderen Entwicklungsumgebungen als ABAP ist dieses Produkt
deutlich stabiler und ausgereifter und der Hersteller besitzt in diesen
anderen Technologien auch deutlich mehr Inhouse-Kompetenz.
Weiterhin bietet es sehr interessante und aufschlussreiche
Analysewerkezuge auf Basis einer „Entwicklungsobjekts-DB“ mit
Metadaten und vielfältigen Beziehungen zwischen Objekten.
Die Fokussierung des Produktes geht in Richtung des Managements.
Wir haben erst im Laufe des Einsatzes gemerkt, dass wir eine andere
Richtung verfolgen und das wir dafür ein anderes Werkzeug brauchen.
1717
Wechsel zu CodeProfiler
Ende 2012 Start einer Teststellung
Seit 2013 im produktiven Einsatz
Fokus vorerst auf Feedback für Entwickler, weniger Dashboarding für
Management
1818
Positive Erfahrungen und Potential
Schnellere Analysen und geringere Anzahl an false positives
Guter und schneller Support
Gute Einflussmöglichkeit auf Weiterentwicklung
Durch Einbindung in TMS können Korrekturen gezielt in den
Entwicklungsobjekten erfolgen, die aus Projektgründen sowieso
geändert und damit auch getestet werden.
Spürbares ABAP-Know-How
Potential für weitere Verbesserung in Regelbasis und Usability wird
spürbar angegangen
1919
Einführung von Scrum mit Auswirkungen auf die
Entwicklungsarbeit
Ebenfalls Ende 2012 startete die Transition der easy+-Entwicklung auf
Scrum als Vorgehensmodell der Projektumsetzung
Wichtiges Prinzip in Scrum: „Feedback early and often!“
Je kürzer die Feedbackzyklen sind, desto schneller und leichter kann
wieder das richtige Ziel angesteuert werden.
Begleitend findet Einführung von agilen Entwicklungspraktiken zur
Steigerung der Qualität statt.
Dieses Prinzip des schnellen Feedbacks soll auf die Einhaltung von
Entwicklungsrichtlinien übertragen werden.
=> Änderung des Verhaltens notwendig.
2020
Änderung von Verhalten erfordert:
Feedback:
• regelmäßig alle Beteiligte sachlich und objektiv über
gute und schlechte Dinge informieren
Schmerzen und Belohnungen:
• Auswirkungen von „schlechtem“ Verhalten muss für
diejenigen spürbar sein, die es ändern können
• Positives Verhalten muss durch Belohnungen
verstärkt werden
2121
Feedback mit Konkurrenzprodukt
Feedback gab es erst jeden Monat, dann alle zwei Wochen, aber immer
noch „zu spät“.
Auf Entwicklerseite entwickelte sich kein Bezug zwischen eigener Arbeit
und abstrakten „Managementzahlen“.
Es wurde aufgrund der zeitlichen Lücke zwischen Entstehung und
Entdeckung keine direkt spürbaren „Schmerzen“ oder Unwohlsein
vermittelt.
Insgesamt: Kaum Anreiz zur Bewegung.
2222
Feedback mit CodeProfiler
Feedback über eigene Entwicklung durch Integration in
Entwicklungsumgebung ist jederzeit möglich, spätestens aber bei
Transportfreigabe (mehrmals pro Woche oder Tag) und damit deutlich
näher am Entstehungszeitpunkt.
Spürbare „Schmerzen“: Die Verletzung von bekannten und
abgestimmten Regeln führt zu Freigabeverweigerung und
Genehmigungsprozess mit Rückfragen.
Ein Belohnungseffekt muss noch entwickelt werden (Gamification-
Ansatz).
2323
Vorgehen bei Einführung von CodeProfiler
Im ersten Schritt stand nur die Integration des Tools in
Entwicklungswerkzeuge im Vordergrund.
Anschließend erfolgte eine Abstimmung mit repräsentativ ausgewählten
Entwicklern über aktivierte Regeln und solche, die Transportfreigaben
verhindern.
Daraufhin wurde eine Genehmigungsinstanz (Architekturteam) für
Ausnahmeanfragen eingerichtet.
Die Aktivierung der Transportblocker erfolgt in Wellen.
2424
Aktueller Stand der Transportblocker pro Monat
Transporte ohne
Findings: 499
mit Findings: 50
Korrigiert
44%
Ausnahmen
56%
∑ Findings: 87
*
* Legacy Code, technische Nachtransporte (Systemkopien), False Positives
2525
Kriterien zur Regelauswahl
Die Auswahl der Regel, die aktiviert und sogar als Transportblocker
eingestellt werden, erfolgt im Entwicklergremium nach folgenden
Kriterien:
• Geschätzter Aufwand für Behebung oder Beseitigung
• Anzahl des Auftretens im bestehenden Code
• Schadenspotential
• Persönliche Meinung
2626
Umgang mit Legacy Code
Legacy Code verletzt meistens deutlich mehr Regeln als neues Coding,
weil die Regeln zum Entstehungszeitpunkt nicht bekannt waren. Wie
geht man damit um ?
Genauso behandeln wie neuen Code
• Provoziert Aufschrei des Entsetzens
• Funktioniert aber bei sanfter Einführung von Regeln
Abgrenzen nach Erstellungsdatum
• Erleichtert den Einstieg
• Gefahr: Alte Fehler bleiben unbehandelt
Wir verwenden die erste Variante.
2727
Nächste Stufen
Neu-Installation der CodeProfiler-BW-Komponenten für Management-
Auswertungen
Ausrollen von ABAP Development Tools (ABAP in Eclipse) mit
Integration von CodeProfiler ermöglicht noch direkteres Feedback beim
Tippen
ADT ermöglicht auch nahtlose Integration von weiteren
(Inhouse-)Werkzeugen in die Entwicklungsumgebung
2828
Evolution der Feedback-Zyklen
14 Tage
x mal pro Woche
ständig
Konkurrenz-
Produkt
CodeProfiler
ADT mit CP
und anderen
Tools
2929
Lessons Learned
Nicht alle sind über Transparenz der Code-Qualität glücklich, aber sie ist
notwendig, um Änderungen / Verbesserungen herbeizuführen
Einbindung des Betriebsrat so früh wie möglich, um Sorgen und Ängste
abzubauen
Beobachtung von „Benchmark Optimisation“, um negative Effekte zu
verhindern
3030
Lessons Learned
Klein anfangen, dann weiter ausbauen:
• Schrittweise Erweiterung des Regelsets
• Schrittweise Vergrößerung der Code-Menge
Prüfwerkzeuge so gut und so früh wie möglich im Entwicklungsprozess
integrieren
Entwickler über aktivierte Regeln entscheiden lassen, um automatisch
für Akzeptanz zu sorgen
31
Fragen und Diskussion
32
Kontaktdaten:
Markus.Theilen@ewe.de
@therealtier
EWE Aktiengesellschaft
Donnerschweer Straße 22-26
26123 Oldenburg
Tel. 04 41 / 48 05-0
www.ewe.de
Vielen Dank für Ihre Aufmerksamkeit.
33

Mais conteúdo relacionado

Mais procurados

Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...
Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...
Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...Christoph Wolf
 
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP UmfeldSelenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP UmfeldChristoph Menke
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererTobias Schlüter
 
Wie steigere ich die Effizienz und Zufriedenheit meiner Mitarbeiter
Wie steigere ich die Effizienz und Zufriedenheit meiner MitarbeiterWie steigere ich die Effizienz und Zufriedenheit meiner Mitarbeiter
Wie steigere ich die Effizienz und Zufriedenheit meiner MitarbeiterThomas Jenewein
 
Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungSuperB2
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDSwissQ Consulting AG
 

Mais procurados (6)

Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...
Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...
Iqnite Schweiz 2013: Requirements Validation & Requirements-based Testing bei...
 
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP UmfeldSelenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
Selenium oder CBTA - Automatisierter Test von Weboberflächen im SAP Umfeld
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
Wie steigere ich die Effizienz und Zufriedenheit meiner Mitarbeiter
Wie steigere ich die Effizienz und Zufriedenheit meiner MitarbeiterWie steigere ich die Effizienz und Zufriedenheit meiner Mitarbeiter
Wie steigere ich die Effizienz und Zufriedenheit meiner Mitarbeiter
 
Lean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-EntwicklungLean Development / Standardisierte Software-Entwicklung
Lean Development / Standardisierte Software-Entwicklung
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 

Semelhante a Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikationslandschaft bei der EWE AG

Open Source Governance - Erfahrungen
Open Source Governance - ErfahrungenOpen Source Governance - Erfahrungen
Open Source Governance - ErfahrungenJan Thielscher
 
OOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweOOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweMarkus Theilen
 
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
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsFabian Niesen
 
VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019Markus Speth
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologieoee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 TechnologieLean Knowledge Base UG
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertQAware GmbH
 
Profi Werkzeug für den Controller - gesucht, gefunden!
Profi Werkzeug für den Controller - gesucht, gefunden!Profi Werkzeug für den Controller - gesucht, gefunden!
Profi Werkzeug für den Controller - gesucht, gefunden!Codec Deutschland
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'scamunda services GmbH
 
Business Case für eine Toolchain-Integrationslösung
Business Case für eine Toolchain-IntegrationslösungBusiness Case für eine Toolchain-Integrationslösung
Business Case für eine Toolchain-IntegrationslösungPlanview
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?HOOD Group
 
Migration von Applikationen in die Cloud
Migration von Applikationen in die CloudMigration von Applikationen in die Cloud
Migration von Applikationen in die CloudAarno Aukia
 
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologieoee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologieifp – Institut für Produktivität
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungErnest Wallmueller
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes QAware GmbH
 

Semelhante a Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikationslandschaft bei der EWE AG (20)

Open Source Governance - Erfahrungen
Open Source Governance - ErfahrungenOpen Source Governance - Erfahrungen
Open Source Governance - Erfahrungen
 
OOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger eweOOP2015 agile im konzern gloger ewe
OOP2015 agile im konzern gloger ewe
 
Xidra 2016 DevOps
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
 
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...
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
 
VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019VSHN DevOps Workshop at topsoft 2019
VSHN DevOps Workshop at topsoft 2019
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologieoee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniert
 
Profi Werkzeug für den Controller - gesucht, gefunden!
Profi Werkzeug für den Controller - gesucht, gefunden!Profi Werkzeug für den Controller - gesucht, gefunden!
Profi Werkzeug für den Controller - gesucht, gefunden!
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
Business Case für eine Toolchain-Integrationslösung
Business Case für eine Toolchain-IntegrationslösungBusiness Case für eine Toolchain-Integrationslösung
Business Case für eine Toolchain-Integrationslösung
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?
 
Migration von Applikationen in die Cloud
Migration von Applikationen in die CloudMigration von Applikationen in die Cloud
Migration von Applikationen in die Cloud
 
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologieoee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
oee.cloud: OEE-Optimierung einfach, schnell mit Industrie 4.0 Technologie
 
Abenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-WartungAbenteuer Qualität in der SW-Wartung
Abenteuer Qualität in der SW-Wartung
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Agents of D.E.V.O.P.S
Agents of D.E.V.O.P.SAgents of D.E.V.O.P.S
Agents of D.E.V.O.P.S
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 

Mais de Virtual Forge

How the U.S. Department of Defense Secures Its Custom ABAP Code
How the U.S. Department of Defense Secures Its Custom ABAP CodeHow the U.S. Department of Defense Secures Its Custom ABAP Code
How the U.S. Department of Defense Secures Its Custom ABAP CodeVirtual Forge
 
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...Virtual Forge
 
SAP HANA Security: New Technology, New Risks
SAP HANA Security: New Technology, New RisksSAP HANA Security: New Technology, New Risks
SAP HANA Security: New Technology, New RisksVirtual Forge
 
Stabile und performante Anwendungen für SAP HANA entwickeln
Stabile und performante Anwendungen für SAP HANA entwickelnStabile und performante Anwendungen für SAP HANA entwickeln
Stabile und performante Anwendungen für SAP HANA entwickelnVirtual Forge
 
Develop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANADevelop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANAVirtual Forge
 
Application Security Management with ThreadFix
Application Security Management with ThreadFixApplication Security Management with ThreadFix
Application Security Management with ThreadFixVirtual Forge
 
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenVirtual Forge
 
Is your SAP system vulnerable to cyber attacks?
Is your SAP system vulnerable to cyber attacks?Is your SAP system vulnerable to cyber attacks?
Is your SAP system vulnerable to cyber attacks?Virtual Forge
 
How to assess the risks in your SAP systems at the push of a button
How to assess the risks in your SAP systems at the push of a buttonHow to assess the risks in your SAP systems at the push of a button
How to assess the risks in your SAP systems at the push of a buttonVirtual Forge
 
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Virtual Forge
 
Uninvited Guests: Why do hackers love our SAP landscapes?
Uninvited Guests: Why do hackers love our SAP landscapes?Uninvited Guests: Why do hackers love our SAP landscapes?
Uninvited Guests: Why do hackers love our SAP landscapes?Virtual Forge
 
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?Virtual Forge
 
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Virtual Forge
 
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAPVirtual Forge
 
Risks of Hosted SAP Environments
Risks of Hosted SAP EnvironmentsRisks of Hosted SAP Environments
Risks of Hosted SAP EnvironmentsVirtual Forge
 
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Virtual Forge
 
Die Top 5 Mythen der SAP Sicherheit
Die Top 5 Mythen der SAP SicherheitDie Top 5 Mythen der SAP Sicherheit
Die Top 5 Mythen der SAP SicherheitVirtual Forge
 
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...Virtual Forge
 
ABAP Code Qualität - Best Practices
ABAP Code Qualität - Best PracticesABAP Code Qualität - Best Practices
ABAP Code Qualität - Best PracticesVirtual Forge
 
Best Practices for Ensuring SAP ABAP Code Quality and Security
Best Practices for Ensuring SAP ABAP Code Quality and SecurityBest Practices for Ensuring SAP ABAP Code Quality and Security
Best Practices for Ensuring SAP ABAP Code Quality and SecurityVirtual Forge
 

Mais de Virtual Forge (20)

How the U.S. Department of Defense Secures Its Custom ABAP Code
How the U.S. Department of Defense Secures Its Custom ABAP CodeHow the U.S. Department of Defense Secures Its Custom ABAP Code
How the U.S. Department of Defense Secures Its Custom ABAP Code
 
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...
How Pratt & Whitney Streamlined Their ABAP Security and Quality Code Review P...
 
SAP HANA Security: New Technology, New Risks
SAP HANA Security: New Technology, New RisksSAP HANA Security: New Technology, New Risks
SAP HANA Security: New Technology, New Risks
 
Stabile und performante Anwendungen für SAP HANA entwickeln
Stabile und performante Anwendungen für SAP HANA entwickelnStabile und performante Anwendungen für SAP HANA entwickeln
Stabile und performante Anwendungen für SAP HANA entwickeln
 
Develop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANADevelop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANA
 
Application Security Management with ThreadFix
Application Security Management with ThreadFixApplication Security Management with ThreadFix
Application Security Management with ThreadFix
 
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
 
Is your SAP system vulnerable to cyber attacks?
Is your SAP system vulnerable to cyber attacks?Is your SAP system vulnerable to cyber attacks?
Is your SAP system vulnerable to cyber attacks?
 
How to assess the risks in your SAP systems at the push of a button
How to assess the risks in your SAP systems at the push of a buttonHow to assess the risks in your SAP systems at the push of a button
How to assess the risks in your SAP systems at the push of a button
 
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
Case Study: Ensuring the Quality and Security of Custom SAP Applications at t...
 
Uninvited Guests: Why do hackers love our SAP landscapes?
Uninvited Guests: Why do hackers love our SAP landscapes?Uninvited Guests: Why do hackers love our SAP landscapes?
Uninvited Guests: Why do hackers love our SAP landscapes?
 
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?
Ungebetene Gäste: Warum lieben Hacker aus aller Welt unsere SAP Landschaften?
 
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EW...
 
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP
10 GOLDEN RULES FOR CODING AUTHORIZATION CHECKS IN ABAP
 
Risks of Hosted SAP Environments
Risks of Hosted SAP EnvironmentsRisks of Hosted SAP Environments
Risks of Hosted SAP Environments
 
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
Case Study: ABAP Development Life Cycle and Governance at THE GLOBE AND MAIL ...
 
Die Top 5 Mythen der SAP Sicherheit
Die Top 5 Mythen der SAP SicherheitDie Top 5 Mythen der SAP Sicherheit
Die Top 5 Mythen der SAP Sicherheit
 
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...
Mobile Trends And The New Threats - Is Your SAP System Vulnerable to Cyber At...
 
ABAP Code Qualität - Best Practices
ABAP Code Qualität - Best PracticesABAP Code Qualität - Best Practices
ABAP Code Qualität - Best Practices
 
Best Practices for Ensuring SAP ABAP Code Quality and Security
Best Practices for Ensuring SAP ABAP Code Quality and SecurityBest Practices for Ensuring SAP ABAP Code Quality and Security
Best Practices for Ensuring SAP ABAP Code Quality and Security
 

Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikationslandschaft bei der EWE AG

  • 1. 1 Mastering the hard way Einführung von Code Profiler in einer gewachsenen Applikationslandschaft
  • 2. 22 Agenda Vorstellung EWE und Referent Problemstellung Ein Blick zurück Vorgehen mit CodeProfiler Lessons Learned
  • 3. Ganzheitliche Lösungen in drei Schlüsselbranchen 3 EWE bündelt mit Energie, Telekommunikation und Informationstechnologie die Schlüsselkompetenzen für nachhaltige, intelligente Energiesysteme
  • 4. EWE – eines der größten Unternehmen im Nordwesten 4 Umsatz 8,9 Mrd. € Ergebnis 57,2 Mio. € Mitarbeiter Ø 9.162
  • 5. Sehr guter Service, Beratung und die Nähe zu unseren Kunden sind unsere Stärke 5 2013 1,4 Mio. Stromkunden 1,6 Mio. Gaskunden 680.000 Telekommunikationskunden
  • 6. EWE Regionen in Deutschland, Polen, Türkei 6
  • 7. 77 Vorstellung Markus Theilen Diplom-Informatiker 2001 – 2012 bei BTC AG als Software-Entwickler und Software- Architekt in easy+-Entwicklung (ABAP) tätig • Erstellung und Etablierung von Entwicklungsvorgaben • Einführung von automatisierten Prüfungen von Entwicklungsobjekten seit 2012 als IT-Koordinator für E-IT-Gruppe Abrechnung und Marktpartner-Kommunikation (AMK), zuständig für Entwicklungskoordination und Betrieb easy+ Seit 2009 stellv. Sprecher des DSAG-Arbeitskreis Development •Co-Autor “Best Practice Leitfaden Development - Praxistipps rund um das Thema ABAP Development” Autor einer der meistgelesenen Präsentation über ABAP- Codeanalyse: http://www.slideshare.net/therealtier/static-abap-code-analyzers
  • 8. 88 Vorstellung easy+ Vollständige Eigenentwicklung auf Basis von SAP ERP 6.0 Umfasst die Komponenten Ablesung, Abrechnung, Fakturierung und Forderungsmanagement, Marktkommunikation und Reporting/Controlling für Energiedienstleistungen des EWE-Konzerns Funktional in etwa vergleichbar mit SAP IS-U Komplett in ABAP entwickelt, seit 1995 im produktiven Einsatz Rund 100 Personen in der Entwicklung tätig
  • 9. 99 Warum „Mastering the hard way“? Über Jahrzehnte gewachsene Applikation Teilweise über 100 Entwickler mit sehr heterogenen Skill-Leveln involviert Keine ausgeprägte Kapselung von internen Modulen (ultra-depandenter Monolith) Selten Überprüfung der Einhaltung von Entwicklerrichtlinien Regressionstests vollständig manuell, auch bei rein technischen Änderungen notwendig
  • 10. 1010 Technische Daten rund um easy+ 8 TByte Datenvolumen 10 Mio. Lines of Code 1.600 Pakete 11.000 Programme 8.600 Klassen und 1.500 Interfaces 1.500 Funktionsgruppen 4.400 Tabellen
  • 11. 1111 Zu viel Code für manuelle Reviews Mit Größe des Codes kann die Komplexität exponentiell wachsen Code kann lokal gut aussehen, aber im Kontext einer Aufrufhierarchie schlimme Folgen haben Diese Komplexität lässt sich manuell nicht prüfen Internes Paradigma: „Keine Entwicklerrichtlinie aufstellen, die sich nicht automatisiert prüfen läßt!“
  • 12. 1212 Ein Blick zurück Bis 2009 keine statischen Analysewerkzeuge in Benutzung Auch keine regelmäßigen Code Reviews Keine belastbaren Aussagen über Code-Qualität „Gefühlt“ schlechte Qualität in alten Coding-Teilen, erwartete bessere Qualität in neuen Code-Teilen
  • 13. 1313 Einführung eines Konkurrenzproduktes 2009 Start der Einführung eines Konkurrenzproduktes in der easy+- Entwicklung bei BTC Schwerpunkt ABAP, aber auch einsetzbar für Java, C/C++, .NET- Sprachen usw. Fokus auf Auswertungen auf Management-Ebene
  • 14. 1414 Licht… Aussagen über Code-Qualität waren mit Abstrichen möglich. Es gab eine „Gewöhnung“ der Entwickler an Einsatz von Code- Analysewerkzeugen. Wissen über gutes und schlechtes Coding wurde über Informationen aus dem Analysewerkzeug unter Entwicklern verbreitet Sehr viele und aufschlussreiche Dashboards auf hoher Flughöhe (Management-Ebene) lieferten teilweise erstaunliche Erkenntnisse.
  • 15. 1515 …und Schatten Eingekauftes Tool war teuer, schwerfällig in der Bedienung, langsam und fehleranfällig. Viele false positives oder komplett falsche Regeln führten zu stark abnehmender Akzeptanz auf Entwicklerseite. Auftreten von Benchmark Optimization mit negativen Auswirkungen beobachtet. Keine direkte Einbindung in ABAP-Entwicklungsprozess möglich (Workbench, TMS), kein einfacher Weg für Entwickler zu „ihren“ Objekten Unterscheidung zwischen unverändertem Bestandscoding und gerade geändertem Coding kaum möglich => Korrekturen konnten nur über den gesamten Bestand verteilt werden, was zusätzlichen manuellen Testaufwand mit sich brachte.
  • 16. 1616 Ein (letztes) Wort zum Konkurrenzprodukt In anderen Entwicklungsumgebungen als ABAP ist dieses Produkt deutlich stabiler und ausgereifter und der Hersteller besitzt in diesen anderen Technologien auch deutlich mehr Inhouse-Kompetenz. Weiterhin bietet es sehr interessante und aufschlussreiche Analysewerkezuge auf Basis einer „Entwicklungsobjekts-DB“ mit Metadaten und vielfältigen Beziehungen zwischen Objekten. Die Fokussierung des Produktes geht in Richtung des Managements. Wir haben erst im Laufe des Einsatzes gemerkt, dass wir eine andere Richtung verfolgen und das wir dafür ein anderes Werkzeug brauchen.
  • 17. 1717 Wechsel zu CodeProfiler Ende 2012 Start einer Teststellung Seit 2013 im produktiven Einsatz Fokus vorerst auf Feedback für Entwickler, weniger Dashboarding für Management
  • 18. 1818 Positive Erfahrungen und Potential Schnellere Analysen und geringere Anzahl an false positives Guter und schneller Support Gute Einflussmöglichkeit auf Weiterentwicklung Durch Einbindung in TMS können Korrekturen gezielt in den Entwicklungsobjekten erfolgen, die aus Projektgründen sowieso geändert und damit auch getestet werden. Spürbares ABAP-Know-How Potential für weitere Verbesserung in Regelbasis und Usability wird spürbar angegangen
  • 19. 1919 Einführung von Scrum mit Auswirkungen auf die Entwicklungsarbeit Ebenfalls Ende 2012 startete die Transition der easy+-Entwicklung auf Scrum als Vorgehensmodell der Projektumsetzung Wichtiges Prinzip in Scrum: „Feedback early and often!“ Je kürzer die Feedbackzyklen sind, desto schneller und leichter kann wieder das richtige Ziel angesteuert werden. Begleitend findet Einführung von agilen Entwicklungspraktiken zur Steigerung der Qualität statt. Dieses Prinzip des schnellen Feedbacks soll auf die Einhaltung von Entwicklungsrichtlinien übertragen werden. => Änderung des Verhaltens notwendig.
  • 20. 2020 Änderung von Verhalten erfordert: Feedback: • regelmäßig alle Beteiligte sachlich und objektiv über gute und schlechte Dinge informieren Schmerzen und Belohnungen: • Auswirkungen von „schlechtem“ Verhalten muss für diejenigen spürbar sein, die es ändern können • Positives Verhalten muss durch Belohnungen verstärkt werden
  • 21. 2121 Feedback mit Konkurrenzprodukt Feedback gab es erst jeden Monat, dann alle zwei Wochen, aber immer noch „zu spät“. Auf Entwicklerseite entwickelte sich kein Bezug zwischen eigener Arbeit und abstrakten „Managementzahlen“. Es wurde aufgrund der zeitlichen Lücke zwischen Entstehung und Entdeckung keine direkt spürbaren „Schmerzen“ oder Unwohlsein vermittelt. Insgesamt: Kaum Anreiz zur Bewegung.
  • 22. 2222 Feedback mit CodeProfiler Feedback über eigene Entwicklung durch Integration in Entwicklungsumgebung ist jederzeit möglich, spätestens aber bei Transportfreigabe (mehrmals pro Woche oder Tag) und damit deutlich näher am Entstehungszeitpunkt. Spürbare „Schmerzen“: Die Verletzung von bekannten und abgestimmten Regeln führt zu Freigabeverweigerung und Genehmigungsprozess mit Rückfragen. Ein Belohnungseffekt muss noch entwickelt werden (Gamification- Ansatz).
  • 23. 2323 Vorgehen bei Einführung von CodeProfiler Im ersten Schritt stand nur die Integration des Tools in Entwicklungswerkzeuge im Vordergrund. Anschließend erfolgte eine Abstimmung mit repräsentativ ausgewählten Entwicklern über aktivierte Regeln und solche, die Transportfreigaben verhindern. Daraufhin wurde eine Genehmigungsinstanz (Architekturteam) für Ausnahmeanfragen eingerichtet. Die Aktivierung der Transportblocker erfolgt in Wellen.
  • 24. 2424 Aktueller Stand der Transportblocker pro Monat Transporte ohne Findings: 499 mit Findings: 50 Korrigiert 44% Ausnahmen 56% ∑ Findings: 87 * * Legacy Code, technische Nachtransporte (Systemkopien), False Positives
  • 25. 2525 Kriterien zur Regelauswahl Die Auswahl der Regel, die aktiviert und sogar als Transportblocker eingestellt werden, erfolgt im Entwicklergremium nach folgenden Kriterien: • Geschätzter Aufwand für Behebung oder Beseitigung • Anzahl des Auftretens im bestehenden Code • Schadenspotential • Persönliche Meinung
  • 26. 2626 Umgang mit Legacy Code Legacy Code verletzt meistens deutlich mehr Regeln als neues Coding, weil die Regeln zum Entstehungszeitpunkt nicht bekannt waren. Wie geht man damit um ? Genauso behandeln wie neuen Code • Provoziert Aufschrei des Entsetzens • Funktioniert aber bei sanfter Einführung von Regeln Abgrenzen nach Erstellungsdatum • Erleichtert den Einstieg • Gefahr: Alte Fehler bleiben unbehandelt Wir verwenden die erste Variante.
  • 27. 2727 Nächste Stufen Neu-Installation der CodeProfiler-BW-Komponenten für Management- Auswertungen Ausrollen von ABAP Development Tools (ABAP in Eclipse) mit Integration von CodeProfiler ermöglicht noch direkteres Feedback beim Tippen ADT ermöglicht auch nahtlose Integration von weiteren (Inhouse-)Werkzeugen in die Entwicklungsumgebung
  • 28. 2828 Evolution der Feedback-Zyklen 14 Tage x mal pro Woche ständig Konkurrenz- Produkt CodeProfiler ADT mit CP und anderen Tools
  • 29. 2929 Lessons Learned Nicht alle sind über Transparenz der Code-Qualität glücklich, aber sie ist notwendig, um Änderungen / Verbesserungen herbeizuführen Einbindung des Betriebsrat so früh wie möglich, um Sorgen und Ängste abzubauen Beobachtung von „Benchmark Optimisation“, um negative Effekte zu verhindern
  • 30. 3030 Lessons Learned Klein anfangen, dann weiter ausbauen: • Schrittweise Erweiterung des Regelsets • Schrittweise Vergrößerung der Code-Menge Prüfwerkzeuge so gut und so früh wie möglich im Entwicklungsprozess integrieren Entwickler über aktivierte Regeln entscheiden lassen, um automatisch für Akzeptanz zu sorgen
  • 33. EWE Aktiengesellschaft Donnerschweer Straße 22-26 26123 Oldenburg Tel. 04 41 / 48 05-0 www.ewe.de Vielen Dank für Ihre Aufmerksamkeit. 33