sit nl 2014 agile software engineering

32
Agile Software Engineering The bigger picture @WouterPeeters #SitNL

Upload: wouter-peeters

Post on 10-Jul-2015

412 views

Category:

Technology


1 download

DESCRIPTION

SAP Inside Track 2014 - Agile Software Engineering in ABAP

TRANSCRIPT

Page 1: Sit nl 2014 Agile Software Engineering

Agile Software Engineering

The bigger picture

@WouterPeeters #SitNL

Page 2: Sit nl 2014 Agile Software Engineering
Page 3: Sit nl 2014 Agile Software Engineering
Page 4: Sit nl 2014 Agile Software Engineering

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.

Page 5: Sit nl 2014 Agile Software Engineering

There are two main ingredients to successful software projects

Page 6: Sit nl 2014 Agile Software Engineering

Build the right thing Build it right

Page 7: Sit nl 2014 Agile Software Engineering

Design Thinking

• Design Thinking process

• Flexible environment

• Multidisciplinary Teams

Page 8: Sit nl 2014 Agile Software Engineering

Build the right thing Build it right

Agile frameworks/methodologies

KANBAN

Page 9: Sit nl 2014 Agile Software Engineering
Page 10: Sit nl 2014 Agile Software Engineering
Page 11: Sit nl 2014 Agile Software Engineering

Way of working

• Mail• Excel• Word• IBM Rational ClearQuest• HP ALM/Quality Center

• Whatever ...

Page 12: Sit nl 2014 Agile Software Engineering

But Developers need something special ...

• Atlassian JIRA

• Atlassian Confluence ( Wiki )

* Team chat buzz: Atlassian HipChat or Slack

Page 13: Sit nl 2014 Agile Software Engineering
Page 14: Sit nl 2014 Agile Software Engineering
Page 15: Sit nl 2014 Agile Software Engineering

JIRA

Page 16: Sit nl 2014 Agile Software Engineering
Page 17: Sit nl 2014 Agile Software Engineering
Page 18: Sit nl 2014 Agile Software Engineering

But Scrum is not enough ...

• Framework that focusses on project management and who’s doing what and talking to who, but no technical practices

Page 19: Sit nl 2014 Agile Software Engineering

Build the right thing Build it right

© SAP AG

Page 20: Sit nl 2014 Agile Software Engineering

• Comprimises a set of principles and technical practices that developers need to know to work successfully in an agile/iterative environment

Page 21: Sit nl 2014 Agile Software Engineering

Test Driven Development

* UML sketching up front

Page 22: Sit nl 2014 Agile Software Engineering

Test Isolation

Page 23: Sit nl 2014 Agile Software Engineering

Test Isolation Concept

Page 24: Sit nl 2014 Agile Software Engineering

Test Doubles

Solution is to inject a Test Double

- DAO Class – Data Access Object

- Public methods behind interface

- Constructor Dependency Injection

- Private Dependency Injection

Page 25: Sit nl 2014 Agile Software Engineering

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

Page 26: Sit nl 2014 Agile Software Engineering

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

Page 27: Sit nl 2014 Agile Software Engineering

Clean code: Class Design

• Single Responsibility Principle (SRP)

• Open Closed Principle (OCP)

• Seperation of Concerns ( SoC)

• Dont Repeat Yourself (DRY)

Page 28: Sit nl 2014 Agile Software Engineering

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 ! )

Page 29: Sit nl 2014 Agile Software Engineering

Other

• Rubber Duck Debugging

• If you can’t explain it simply, you don’t understand it well enough

Page 30: Sit nl 2014 Agile Software Engineering

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

Page 31: Sit nl 2014 Agile Software Engineering

CODE CODE CODE

Page 32: Sit nl 2014 Agile Software Engineering

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