Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
majcon
Active Participant
2,602

Last Saturday, 24th July 2016, the second ABAP CodeRetreat took place.


It was organized by Hendrik Neumann and his company syskoplan Reply. christian.drumm and I were also involved as facilitators and co-organizers.


Needless to say, that we are more than proud to believe that 'ABAP´s not dead' :smile:

(By the way, the designer of this t-shirt is se38! Thanks Uwe for the outstanding design...)




For registration, we use the SITreg Application. It worked perfectly, and we had 25 registrations.


Generously, SAP provided us access to a state-of-the-art APAP System with NW-Stack 7.50!

I’d like to take this opportunity to thank SAP for their ongoing support and for providing us with this system.

I can tell you; it is a pleasure to write code on such a high release-stack.


What happened at the event?


Hendrik Neumann opened the event by introducing himself and the host sponsor.


Afterward, Hendrik handed over to me.  


I explained the overall concept of the coderetreat format, which was first developed by Corey Haines.

Our ABAP CodeRetreat adopted some new parts, which were held before the coding exercise.


I call this part the ‘knowledge session’. The goal of these sessions is to provide a minimum knowledge required for the techniques and tools we used.


At this event, we had two sessions. The topics were:

  • ‘ABAP Development Tools for Eclipse’ by Hendrik


  • ‘Test Driven Development’ by Christian


The slides will be available soon on the abapcoderetreat.events website!


Right after the sessions we got an introduction to 'Conway´s Game of Life' which was the programming task of the day for all five session´s we had.


If you’re not familiar with ‘Conway’s game of life,' I suggest reading this article to learn more.


Some other simple rules were also introduced:

  • All four coding sessions were done in pair programming
  • The pairs were changed after each session
  • All the coding was deleted after each session

Some of the attendees were pretty astonished when I told them that most of the time the exercises wouldn’t be solved.

I believe it’s not important to solve everything. Try your best and code without any pressure to find a solution or finish the exercise.

Focus on Clean Code, TDD and the related discussions. The approach is more important than the outcome.


“When the student is ready, the teacher will appear."

- Zen proverb


You’ll be amazed how much you can learn in each session. Often an expert can learn more from a beginner than they learn from a fellow expert. “Why?” Because different people will ask different questions. And these questions might lead to think about or to connect things in a way that you’d never thought about before.


Sometimes 1+1 is more than 2.


Why not come to one of our future events and find out more? http://www.abapcoderetreat.events


After building the teams for the first session, they started to code. Each session included 45 minutes for coding and 15 minutes for feedback to the whole group.



First - classical TDD

The first session only focused on TDD.

As a warm up, we started to use ABAP in Eclipse with Test-Driven-Development Modus.

It´s a famous iteration cycle and it goes like this:


1) You write a failing Test (red status)

2) You implement enough code to pass the Test (green status) and

3) you focus on improving the ‘inner structure’ of your coding. This is also called refactoring (blue status)


Second - TDD Ping-Pong style

The second session focused on Ping-Pong.

Oh, not the table game 😉 This session means that one developer only writes the Unit-Test and when this Test fails (Ping) then the other developer try to implement enough production code to fulfill the requirement so that the Unit-Test passes to green. (Pong).


Third - Legacy Code and...

The third session focused on developing the solution without the safety-net of Unit-Tests with ABAP. But then a surprise! We switched the rules...

But I don´t want to give away too much here!   


Forth - TDD Baby-Steps


The fourth session focused on Baby-Steps in TDD. This means treating the TDD-Cycle with phases like ‘Test’, ‘Implementation’ and ‘Refactoring’. It is especially important to follow the order of this cycle.


Fifth - Mob Programming


Our last session focused more on general discussion, therefore, we used Mob-Programming, which means having more than 2 developers working on one Screen. This opened up more general discussions, which supported the outcoming structure of the code.

Conclusion


I really like the format of code retreats because it’s an event where you do not focus on new technology but on improving your skills. This kind of event has been missing so far in the SAP community.

Therefore, a big thank you to Christian Drumm and all the others who supported the second ABAP CodeRetreat with me!


I personally learned a lot.

I highly recommend you visit one or do your own one. There will be some more ABAP Code Retreats coming soon, and they will be posted on the corresponding Wiki page!


Last not but least I want to thank the sponsors - syskoplan Reply, SAP, majcon, espresso tutorials, insider Books and it-onlinemagazin -  of the event who made it possible for this event to be free and for us to enjoy delicious food and free drinks and most importantly high-quality coffee! 😉



One more thing...

How to organize an ABAP CodeRetreat yourself?


If all I described above sounds interesting, organizing an ABAP CodeRetreat yourself is actually quite easy.

All you need is a Saturday, motivated developers, a host, a facilitator, and, most importantly, good food.

Christian Drumm and I are very happy and eager to facilitate your ABAP CodeRetreat.


So simply get in contact with us in our ABAP CodeRetreat 'slack channel', via twitter or our page abapcoderetreat.events!

8 Comments
Labels in this area