SlideShare una empresa de Scribd logo
1 de 32
1
Mastering the Hard Way
Safe custom ABAP code
Implementing Virtual Forge CodeProfiler for ABAP security and
quality in a grown application landscape
Markus Theilen, EWE AG
22
Agenda
About EWE
Your presenter
Motivation
Looking back
Approach with CodeProfiler
Lessons learned
Comprehensive solutions in three key sectors
3
EWE brings together energy, telecommunications
and information technology, and
thereby possesses all the key expertise
for sustainable, intelligent energy supply systems
EWE – one of the largest companies in northwest
Germany
4
Sales of €8.9 billion
Net profit of €57.2 million
Average number of employees 9,162
Our strengths are our excellent service and advice
as well as the proximity to our customers
5
2013
1.4 million electricity customers
1.6 million gas customers
680,000 telecommunications customers
EWE’s regions in Germany, Poland and Turkey
6
77
Introducing your presenter: Markus Theilen
Enterprise Architect
2001 – 2012: software developer and architect working in the easy+ ABAP
development at BTC AG
o Created and established development guidelines
o Introduced automated checks of development objects
Since 2012: IT coordinator in the E-IT group “Billing and Market
Communication”
o Responsible for coordination of development and operation of easy+
Since 2009: associate speaker of DSAG working group Development
Co-Author: Best Practice Guidelines for Development – Practical tips on
the ABAP Development
Author of one of the most popular presentations about ABAP code
analysis:
http://www.slideshare.net/therealtier/static-abap-code-analyzers
88
About easy+
o 100% custom-developed, based on SAP ERP 6.0
o Includes components for meter reading, accounting, invoicing, claims
management, market communication
o Reports and controls EWE group energy services
o Comparable with the functionality of SAP IS-U
o Entirely written in ABAP
o In productive use since 1995
o Approximately 100 people in development
99
Why “mastering the hard way?”
o Easy+ developed over decades
o Involved more than 100 developers with very different skill levels
o No distinct encapsulation of internal modules  ultra dependent
monolith  extremely difficult to maintain
o Rare checks for compliance with developer guidelines
o Completely manual regression testing (high efforts), including for purely
technical changes (even higher efforts)
1010
Technical view on easy+
o 8Tb data volume
o 10 Mil. lines of code
o 1,600 packages
o 11,000 programs
o 8,600 classes and 1,500 interfaces
o 1,500 function groups
o 4,400 tables
1111
Far too much code for manual reviews
o The more code, the higher the complexity
(exponential growth)
o Code might look OK upon manual review, but
it can have a severe impact in the context of
the call hierarchy
o It’s impossible to check complex code
manually
Our paradigm:
We do not allow development requirement that
we can’t check automatically!
Risky Statement
1212
Looking back
Before 2009:
o No static analysis tools
o No regular code reviews
o No meaningful reporting about code quality was possible
However, we found bad code in old programs and expected better in new
developments
1313
Starting with static analysis tools
In 2009:
o Introduction of a ABAP code scanning product in easy+ development at BTC
o Focus: ABAP and risk reporting for management
o Scanned non-ABAP, including Java, C/C++, .NET, and other languages
1414
The Good …
o Some limited reporting on the quality of code
o Developers got “used to” code analysis
o Knowledge transfer about good and bad coding was spread among
developers informally
o From a 10,000 feet point of view, many dashboards were available for a
management target group, revealing insightful results
1515
… and the bad
o The tool was expensive, hard to use, and error-prone
o Many false positives or entirely wrong checking rules  decreasing
acceptance by developers
o Developers started to do a “benchmark optimization” with negative impact
 they tried to satisfy the tool and stopped thinking
o No integration in ABAP development process possible (workbench, TMS)
 no simple way to bring “their” results to the developer’s desk
o Distinction between legacy coding (not-changed) and recently changed
coding almost impossible  corrections could only be made in context of
complete code, which significantly increased the manual testing effort
1616
A (last) word on the competitive product
o The vendor has much in-house expertise in languages other than ABAP. In
a non-ABAP context, it’s much more stable and mature.
o The product offers interesting and informative analysis tools based on a
“development object database” with meta data and manifold relations
between objects
o The products focus aims at the management level
o It was only after using the tool that we realized we should follow a different
direction  we need a different tool for this
1717
Changeover to CodeProfiler
End of 2012: start of a productive pilot
Since early 2013: in full productive use
Initial focus was more on feedback for developers, not on dashboards
1818
Positive experience and potential
o Faster analysis
o Much lower false positive rate
o TMS integration for automatic checking of code changes
o Targeted checking of existing code base
o Best coding practices documentation for ABAP
Vendor:
• Applies feedback into future development
• Fast and accurate response
• Semi-annual releases
1919
Impact of Scrum introduction on development
By end of 2012, we started to switch to a Scrum-based development process
in the easy+ environment
Key Scrum principle: feedback early and often!
o The shorter the feedback cycles, the quicker and easier the right target can
be reached again
o In parallel, agile development practices to improve quality were introduced
The principle of quick feedback should be applied to the compliance of
developer guidelines
 Change of behavior necessary
2020
The behavioral change
o Feedback
Regularly inform all involved parties in a factual and
objective way about all issues
o Penalties and rewards
• Impact of “bad” behavior must be tangible for
those who can change something in their day-
to-day work
• Positive behavior must be reinforced by
appropriate rewarding mechanisms
2121
Competitive product feedback
o Infrequent feedback from the beginning
o No direct relation between developer’s day-to-day work and abstract
“management figures”
o No direct “pain” or a feeling of inconvenience from possible penalties
 No incentive for behavioral change
2222
CodeProfiler feedback
o Feedback about security and quality is possible any time through the tight
integration of CodeProfiler in the ABAP development process
o Developers get instant feedback by transport release  several times per
day or week  Much closer to the time of adding issues in newly
developed code
o Immediate “pain” by penalty:
• Violation of known and accepted requirements leads to rejection of
transports and an approval process with potentially unpleasant inquiries
We are still working on providing a rewarding option  gamification
approach
2323
Rollout of CodeProfiler
o Step 1: integrate CodeProfiler in development environment
o Step 2: activate selected, recognized, expert-developed rules that would
block transport release
o Step 3: establish approval instance for deciding about exceptions
(architecture team)
o Step 4: activate entire rule set in waves:
• Approx. every 3 months
• Within 12 months, all rules could be activated
2424
Current status of transports and approvals per month
Transports
without critical
findings: 499
w. Findings: 50
Rejected,
and then
corrected
44%
approvals
56% (*)
∑ Findings: 87
(*) Reasons for approvals:
- Code that we cannot touch
- Technical follow-up transports (system copy)
- False positives (only in rare cases)
After ~12 months:
 All new code tested
 95% of transports “clean:”
 90% good code by developer
 5% after rejection and correction
2525
Criteria for testing rules selection
A board of key developers discussed a selection of rules that are activated
and can also stop a transport according to the following criteria:
o Effort for correction
o Occurrences of findings in existing code
o Impact of findings
o Personal opinion / experience
2626
How we deal with legacy code
Legacy code often violates more rules than new coding because the rules
were not in place when the code was written.
Approach 1: handle legacy code like new code
o Fixes old code when you touch it
o Provokes an “outcry of horror”
o Works if you softly roll out the rules in waves
Approach 2: check code only after a certain creation date
o Makes rollout easier
o Risk: old issues will not be fixed (yet)
We use approach 1
2727
Next steps
o Implement CodeProfiler BW components for management reporting
o Roll out ABAP development tools (ABAP in Eclipse) with CodeProfiler
integration  allows the earliest feedback (interactively while you write the
code)
• ABAP development tools allow seamless integration of further (in-house)
tools in the development environment
2828
Evolution of feedback cycles
14 days
x times per week
any time
Competitive
tool
CodeProfiler
ABAP
Development
Tools with
CodeProfiler
2929
Lessons Learned
o Not everyone is happy about the new code quality transparency, but this is
a “must” if you want to successfully change and improve
o The work council was involved quickly to address possible employee
concerns
o We observed “benchmark optimization” in order to avoid penalties
3030
Lessons Learned
o Start with a small, piecemeal extension of scope:
• Roll out rules in waves
• More and more code will be part of tool-based scans
o Integrate testing tools as efficiently and early as possible in the
development lifecycle
o Involve developers to decide about the set of rules
 High acceptance in overall developer team
32
Contact:
Email Markus.Theilen@ewe.de
Twitter @therealtier
33
Thank you for your attention.
EWE Aktiengesellschaft
Tirpitzstrasse 39
26122 Oldenburg, Germany
T +49 441 4805 - 0
www.ewe.com

Más contenido relacionado

La actualidad más candente

Pair programming and introduction to TDD
Pair programming and introduction to TDDPair programming and introduction to TDD
Pair programming and introduction to TDDArati Joshi
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqXPDays
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And MockingJoe Wilson
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015Kim Herzig
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataCory Foy
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit TestingShaun Abram
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...AgileNetwork
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit TestingJoe Tremblay
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testingikhwanhayat
 
Unit testing (workshop)
Unit testing (workshop)Unit testing (workshop)
Unit testing (workshop)Foyzul Karim
 
Getting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonGetting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonCefalo
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration TestingDavid Berliner
 
SE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitSE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitAmr E. Mohamed
 

La actualidad más candente (18)

Pair programming and introduction to TDD
Pair programming and introduction to TDDPair programming and introduction to TDD
Pair programming and introduction to TDD
 
Unit tests benefits
Unit tests benefitsUnit tests benefits
Unit tests benefits
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
Unit Testing And Mocking
Unit Testing And MockingUnit Testing And Mocking
Unit Testing And Mocking
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
 
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...Agile Mumbai 2020 Conference |  How to get the best ROI on Your Test Automati...
Agile Mumbai 2020 Conference | How to get the best ROI on Your Test Automati...
 
Unit testing
Unit testing Unit testing
Unit testing
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Unit Testing Your Application
Unit Testing Your ApplicationUnit Testing Your Application
Unit Testing Your Application
 
Understanding Unit Testing
Understanding Unit TestingUnderstanding Unit Testing
Understanding Unit Testing
 
Debugging
DebuggingDebugging
Debugging
 
Unit testing (workshop)
Unit testing (workshop)Unit testing (workshop)
Unit testing (workshop)
 
Getting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonGetting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud Shaon
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration Testing
 
SE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and JunitSE2_Lec 21_ TDD and Junit
SE2_Lec 21_ TDD and Junit
 

Destacado

The best debugging tool - your brain
The best debugging tool - your brainThe best debugging tool - your brain
The best debugging tool - your brainChristian Drumm
 
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat
 
ABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat
 
ABAP T codes
ABAP T codesABAP T codes
ABAP T codesPavan Das
 
SAP Inside Track Lima 09 - Keynote
SAP Inside Track Lima 09 - KeynoteSAP Inside Track Lima 09 - Keynote
SAP Inside Track Lima 09 - KeynoteAlvaro Tejada
 
Happy sap hana friends
Happy sap hana friendsHappy sap hana friends
Happy sap hana friendsAlvaro Tejada
 
SmallWorlds - BoF Las Vegas TechEd 2008
SmallWorlds - BoF Las Vegas TechEd 2008SmallWorlds - BoF Las Vegas TechEd 2008
SmallWorlds - BoF Las Vegas TechEd 2008Alvaro Tejada
 
SAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPSAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPAlvaro Tejada
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxAlessandro Lavazzi
 

Destacado (10)

ABAP Unit and TDD
ABAP Unit and TDDABAP Unit and TDD
ABAP Unit and TDD
 
The best debugging tool - your brain
The best debugging tool - your brainThe best debugging tool - your brain
The best debugging tool - your brain
 
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORIABAPCodeRetreat -   ABAP PUSH CHANNELS and SAP FIORI
ABAPCodeRetreat - ABAP PUSH CHANNELS and SAP FIORI
 
ABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit TestingABAPCodeRetreat 23.7.2016 - Unit Testing
ABAPCodeRetreat 23.7.2016 - Unit Testing
 
ABAP T codes
ABAP T codesABAP T codes
ABAP T codes
 
SAP Inside Track Lima 09 - Keynote
SAP Inside Track Lima 09 - KeynoteSAP Inside Track Lima 09 - Keynote
SAP Inside Track Lima 09 - Keynote
 
Happy sap hana friends
Happy sap hana friendsHappy sap hana friends
Happy sap hana friends
 
SmallWorlds - BoF Las Vegas TechEd 2008
SmallWorlds - BoF Las Vegas TechEd 2008SmallWorlds - BoF Las Vegas TechEd 2008
SmallWorlds - BoF Las Vegas TechEd 2008
 
SAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPSAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAP
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
 

Similar a Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EWE AG

Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCodecamp Romania
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategiesRaquel Pau
 
DevOps - Orientation Session
DevOps - Orientation SessionDevOps - Orientation Session
DevOps - Orientation SessionM M Nair
 
Continuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesContinuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesAdam Asnes
 
Introducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the EnterpriseIntroducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the EnterpriseXebiaLabs
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsXebiaLabs
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting AgileCoverity
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseXebiaLabs
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleikram_ahamed
 
To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...Jean-François Nguyen
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsAnant Corporation
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentationAhmed Kamel
 
Introduction To Software Engineering
 Introduction To Software Engineering Introduction To Software Engineering
Introduction To Software EngineeringMohsinAli773
 
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis Rik Marselis
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure rupeshchanchal
 

Similar a Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EWE AG (20)

Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditech
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
DevOps - Orientation Session
DevOps - Orientation SessionDevOps - Orientation Session
DevOps - Orientation Session
 
Continuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesContinuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar Slides
 
Introducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the EnterpriseIntroducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the Enterprise
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
Adopting Agile
Adopting AgileAdopting Agile
Adopting Agile
 
Automation and Technical Debt
Automation and Technical DebtAutomation and Technical Debt
Automation and Technical Debt
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
 
Key items for a digital enterprise
Key items for a digital enterpriseKey items for a digital enterprise
Key items for a digital enterprise
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
 
To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...To successfully deliver your IT project: build your team, build your Agile it...
To successfully deliver your IT project: build your team, build your Agile it...
 
Data Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps FundamentalsData Engineer's Lunch #68: DevOps Fundamentals
Data Engineer's Lunch #68: DevOps Fundamentals
 
Dev ops presentation
Dev ops presentationDev ops presentation
Dev ops presentation
 
Introduction To Software Engineering
 Introduction To Software Engineering Introduction To Software Engineering
Introduction To Software Engineering
 
Bof4162 kovalsky
Bof4162 kovalskyBof4162 kovalsky
Bof4162 kovalsky
 
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
TMAP Quality Engineering workshop on A4Q congress by Rik Marselis
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 

Más 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: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...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
 

Más 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: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
 
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
 

Último

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Último (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Case Study: Automated Code Reviews In A Grown SAP Application Landscape At EWE AG

  • 1. 1 Mastering the Hard Way Safe custom ABAP code Implementing Virtual Forge CodeProfiler for ABAP security and quality in a grown application landscape Markus Theilen, EWE AG
  • 2. 22 Agenda About EWE Your presenter Motivation Looking back Approach with CodeProfiler Lessons learned
  • 3. Comprehensive solutions in three key sectors 3 EWE brings together energy, telecommunications and information technology, and thereby possesses all the key expertise for sustainable, intelligent energy supply systems
  • 4. EWE – one of the largest companies in northwest Germany 4 Sales of €8.9 billion Net profit of €57.2 million Average number of employees 9,162
  • 5. Our strengths are our excellent service and advice as well as the proximity to our customers 5 2013 1.4 million electricity customers 1.6 million gas customers 680,000 telecommunications customers
  • 6. EWE’s regions in Germany, Poland and Turkey 6
  • 7. 77 Introducing your presenter: Markus Theilen Enterprise Architect 2001 – 2012: software developer and architect working in the easy+ ABAP development at BTC AG o Created and established development guidelines o Introduced automated checks of development objects Since 2012: IT coordinator in the E-IT group “Billing and Market Communication” o Responsible for coordination of development and operation of easy+ Since 2009: associate speaker of DSAG working group Development Co-Author: Best Practice Guidelines for Development – Practical tips on the ABAP Development Author of one of the most popular presentations about ABAP code analysis: http://www.slideshare.net/therealtier/static-abap-code-analyzers
  • 8. 88 About easy+ o 100% custom-developed, based on SAP ERP 6.0 o Includes components for meter reading, accounting, invoicing, claims management, market communication o Reports and controls EWE group energy services o Comparable with the functionality of SAP IS-U o Entirely written in ABAP o In productive use since 1995 o Approximately 100 people in development
  • 9. 99 Why “mastering the hard way?” o Easy+ developed over decades o Involved more than 100 developers with very different skill levels o No distinct encapsulation of internal modules  ultra dependent monolith  extremely difficult to maintain o Rare checks for compliance with developer guidelines o Completely manual regression testing (high efforts), including for purely technical changes (even higher efforts)
  • 10. 1010 Technical view on easy+ o 8Tb data volume o 10 Mil. lines of code o 1,600 packages o 11,000 programs o 8,600 classes and 1,500 interfaces o 1,500 function groups o 4,400 tables
  • 11. 1111 Far too much code for manual reviews o The more code, the higher the complexity (exponential growth) o Code might look OK upon manual review, but it can have a severe impact in the context of the call hierarchy o It’s impossible to check complex code manually Our paradigm: We do not allow development requirement that we can’t check automatically! Risky Statement
  • 12. 1212 Looking back Before 2009: o No static analysis tools o No regular code reviews o No meaningful reporting about code quality was possible However, we found bad code in old programs and expected better in new developments
  • 13. 1313 Starting with static analysis tools In 2009: o Introduction of a ABAP code scanning product in easy+ development at BTC o Focus: ABAP and risk reporting for management o Scanned non-ABAP, including Java, C/C++, .NET, and other languages
  • 14. 1414 The Good … o Some limited reporting on the quality of code o Developers got “used to” code analysis o Knowledge transfer about good and bad coding was spread among developers informally o From a 10,000 feet point of view, many dashboards were available for a management target group, revealing insightful results
  • 15. 1515 … and the bad o The tool was expensive, hard to use, and error-prone o Many false positives or entirely wrong checking rules  decreasing acceptance by developers o Developers started to do a “benchmark optimization” with negative impact  they tried to satisfy the tool and stopped thinking o No integration in ABAP development process possible (workbench, TMS)  no simple way to bring “their” results to the developer’s desk o Distinction between legacy coding (not-changed) and recently changed coding almost impossible  corrections could only be made in context of complete code, which significantly increased the manual testing effort
  • 16. 1616 A (last) word on the competitive product o The vendor has much in-house expertise in languages other than ABAP. In a non-ABAP context, it’s much more stable and mature. o The product offers interesting and informative analysis tools based on a “development object database” with meta data and manifold relations between objects o The products focus aims at the management level o It was only after using the tool that we realized we should follow a different direction  we need a different tool for this
  • 17. 1717 Changeover to CodeProfiler End of 2012: start of a productive pilot Since early 2013: in full productive use Initial focus was more on feedback for developers, not on dashboards
  • 18. 1818 Positive experience and potential o Faster analysis o Much lower false positive rate o TMS integration for automatic checking of code changes o Targeted checking of existing code base o Best coding practices documentation for ABAP Vendor: • Applies feedback into future development • Fast and accurate response • Semi-annual releases
  • 19. 1919 Impact of Scrum introduction on development By end of 2012, we started to switch to a Scrum-based development process in the easy+ environment Key Scrum principle: feedback early and often! o The shorter the feedback cycles, the quicker and easier the right target can be reached again o In parallel, agile development practices to improve quality were introduced The principle of quick feedback should be applied to the compliance of developer guidelines  Change of behavior necessary
  • 20. 2020 The behavioral change o Feedback Regularly inform all involved parties in a factual and objective way about all issues o Penalties and rewards • Impact of “bad” behavior must be tangible for those who can change something in their day- to-day work • Positive behavior must be reinforced by appropriate rewarding mechanisms
  • 21. 2121 Competitive product feedback o Infrequent feedback from the beginning o No direct relation between developer’s day-to-day work and abstract “management figures” o No direct “pain” or a feeling of inconvenience from possible penalties  No incentive for behavioral change
  • 22. 2222 CodeProfiler feedback o Feedback about security and quality is possible any time through the tight integration of CodeProfiler in the ABAP development process o Developers get instant feedback by transport release  several times per day or week  Much closer to the time of adding issues in newly developed code o Immediate “pain” by penalty: • Violation of known and accepted requirements leads to rejection of transports and an approval process with potentially unpleasant inquiries We are still working on providing a rewarding option  gamification approach
  • 23. 2323 Rollout of CodeProfiler o Step 1: integrate CodeProfiler in development environment o Step 2: activate selected, recognized, expert-developed rules that would block transport release o Step 3: establish approval instance for deciding about exceptions (architecture team) o Step 4: activate entire rule set in waves: • Approx. every 3 months • Within 12 months, all rules could be activated
  • 24. 2424 Current status of transports and approvals per month Transports without critical findings: 499 w. Findings: 50 Rejected, and then corrected 44% approvals 56% (*) ∑ Findings: 87 (*) Reasons for approvals: - Code that we cannot touch - Technical follow-up transports (system copy) - False positives (only in rare cases) After ~12 months:  All new code tested  95% of transports “clean:”  90% good code by developer  5% after rejection and correction
  • 25. 2525 Criteria for testing rules selection A board of key developers discussed a selection of rules that are activated and can also stop a transport according to the following criteria: o Effort for correction o Occurrences of findings in existing code o Impact of findings o Personal opinion / experience
  • 26. 2626 How we deal with legacy code Legacy code often violates more rules than new coding because the rules were not in place when the code was written. Approach 1: handle legacy code like new code o Fixes old code when you touch it o Provokes an “outcry of horror” o Works if you softly roll out the rules in waves Approach 2: check code only after a certain creation date o Makes rollout easier o Risk: old issues will not be fixed (yet) We use approach 1
  • 27. 2727 Next steps o Implement CodeProfiler BW components for management reporting o Roll out ABAP development tools (ABAP in Eclipse) with CodeProfiler integration  allows the earliest feedback (interactively while you write the code) • ABAP development tools allow seamless integration of further (in-house) tools in the development environment
  • 28. 2828 Evolution of feedback cycles 14 days x times per week any time Competitive tool CodeProfiler ABAP Development Tools with CodeProfiler
  • 29. 2929 Lessons Learned o Not everyone is happy about the new code quality transparency, but this is a “must” if you want to successfully change and improve o The work council was involved quickly to address possible employee concerns o We observed “benchmark optimization” in order to avoid penalties
  • 30. 3030 Lessons Learned o Start with a small, piecemeal extension of scope: • Roll out rules in waves • More and more code will be part of tool-based scans o Integrate testing tools as efficiently and early as possible in the development lifecycle o Involve developers to decide about the set of rules  High acceptance in overall developer team
  • 32. 33 Thank you for your attention. EWE Aktiengesellschaft Tirpitzstrasse 39 26122 Oldenburg, Germany T +49 441 4805 - 0 www.ewe.com

Notas del editor

  1. Bringing together energy, telecommunications and information technology – the key expertise for sustainable, intelligent energy supply systems Developing and operating modern energy supply systems – from power generation to network management and from storage to energy use Integrated infrastructure is the key to success
  2. One of the largest employers in northwest Lower Saxony – among the top 10 of the 100 largest businesses in Lower Saxony in terms of value creation and sales Source: http://www.business-on.de/dateien/dateien/die_100_groessten_unternehmen_in_niedersachsen.pdf The figures specified are consolidated values for 2013 (therefore incl. swb, Brandenburg and abroad) The net profit specified is that in the accounting period
  3. Image: A satisfied EWE customer, the Meyer Werft shipyard in Papenburg The figures are consolidated values for 2013 (incl. swb, Brandenburg and abroad) Telecommunications customers incl. htp customers The EWE standard: Provide constant satisfaction with excellent service excellent products
  4. The regions in question are: northwest Lower Saxony, Brandenburg, parts of north Western Pomerania and the island of Rügen (Germany) the region around Międzyrzecz as well as other smaller regions (Poland) regions around the metropolitan areas of Bursa and Kayseri (Turkey)