sit nl 2014 agile software engineering
DESCRIPTION
SAP Inside Track 2014 - Agile Software Engineering in ABAPTRANSCRIPT
Agile Software Engineering
The bigger picture
@WouterPeeters #SitNL
What will we see?
• Build the right thing
• Build it right
• Way of working
• Agile Software Engineering
Based on SAP AgileSE, TechED && d-code DEV108 and my personal experience.
There are two main ingredients to successful software projects
Build the right thing Build it right
Design Thinking
• Design Thinking process
• Flexible environment
• Multidisciplinary Teams
Build the right thing Build it right
Agile frameworks/methodologies
KANBAN
Way of working
• Mail• Excel• Word• IBM Rational ClearQuest• HP ALM/Quality Center
• Whatever ...
But Developers need something special ...
• Atlassian JIRA
• Atlassian Confluence ( Wiki )
* Team chat buzz: Atlassian HipChat or Slack
JIRA
But Scrum is not enough ...
• Framework that focusses on project management and who’s doing what and talking to who, but no technical practices
Build the right thing Build it right
© SAP AG
• Comprimises a set of principles and technical practices that developers need to know to work successfully in an agile/iterative environment
Test Driven Development
* UML sketching up front
Test Isolation
Test Isolation Concept
Test Doubles
Solution is to inject a Test Double
- DAO Class – Data Access Object
- Public methods behind interface
- Constructor Dependency Injection
- Private Dependency Injection
ABAP Unit Test Framework
• Wizard template based generation of Local Test Class• Fixture, testconfiguration: setup( ) -> test( ) -> teardown( )
• CL_ABAP_UNIT_ASSERT has methods to check test expectations• Actual result vs Expected result
• Not generated in Production Systems
• Tests cannot be run in productive systems
• Abuse eCATT Test Data Containers for data/test scenarios
Pair Programming
• One programmer is in driver seat, other one reviews and thinks steps ahead
• Fewer errors, better design, knowledge transfer, quicker problem fixing
• Common code style, common attitude, similar personalities
• Shouldn’t be obligated – does not work for everyone
• Video conferencing to enable visual feedback
Clean code: Class Design
• Single Responsibility Principle (SRP)
• Open Closed Principle (OCP)
• Seperation of Concerns ( SoC)
• Dont Repeat Yourself (DRY)
Clean Code: Principles
• Loose coupling
• High cohesion
• Descriptive / Unambiguous Names !• Read code !
• Consistent
• Follow Standard Conventions: guidelines
• Boy Scout Rule: leave the campground cleaner than you found it
• Keep it Simple, Stupid (KISS)
• Root Cause Analysis
• Methods should do one thing ( max 50 lines ! )
Other
• Rubber Duck Debugging
• If you can’t explain it simply, you don’t understand it well enough
Retrospectives ( Team meetings )
“Team reflects on how to become more effective, then tunes and adjusts it behavior accordingly”
• MAD - SAD - GLAD
• LIKED - LEARNED - LACKED - LONGED FOR
• KEEP DOING – MORE OF – LESS OF – START DOING – STOP DOING
• SMART – STUPID – GOOD – EVIL
• INTERESTING - DULL
CODE CODE CODE
Big thanks to Jeroen Verbrugge ( SAP Solution Architect ) and Mehmet Metin ( Senior SAP Development Consultant )
1. AgileSE space on SCN
http://scn.sap.com/community/agile-software-engineering
2. Agile Software Engineering at SAP – Juergen Heymann
http://www.slideshare.net/saarasaf/agile-software-engineeringsapagiledevpractices
3. Agile Software Engineering at SAP – Asaf Saar
www.youtube.com/user/agilese
4. SAP TechED && d-code - DEV108 Agile Software Engineering with ABAP: Hype or Best Practice by Tim Jörgen
5. Clean Code by Robert Martin
Thank Yous and Sources