Bei objective partner bieten wir in regelmäßigen Abständen verschiedene Community–Events für Entwickler:innen an. Diese Events konzentrieren sich auf die Praxis, hier geht es nicht um Vorträge, sondern darum, zu entwickeln, sich auszutauschen und zu coden.
Was ist ein abapGit BunKai?
Beim abapGit BunKai geht es für Teilnehmer:innen darum, sich auf das reine Coden zu konzentrieren, etwas, das im Alltag durch Abgabetermine und Termindruck oft zu kurz kommt.
Der BunKai ist ein ganzer Tag rund um die Grundlagen von Git, Branching, Push und Pull Requests, Zusammenhänge und Best Practices. Wir nutzen verschiedene Versionen, passende Tools, Frameworks, Continuous Testing, Continuous Collaboration und alles, was noch zu diesen Themen passt.
Der Tag ist in verschiedene Sessions aufgeteilt, jeweils 45 Minuten Programmieren und 15 Minuten Pause für einen kurzen Rückblick, eine Tasse Kaffee und ein Briefing für die nächste Session. In jeder Session werden die Paare getauscht.
Am Morgen geht es um die Grundlagen, am Nachmittag wird es etwas komplizierter, denn dann arbeiten wir an verschiedenen, anspruchsvolleren Themen.
Dabei konzentrieren wir uns darauf, nicht nur Neues auszuprobieren, sondern auch bestehendes oder neues Wissen zu vertiefen und praktisch umzusetzen.
Woher kommt das Wort BunKAi?
Der Begriff BunKai beschreibt eine Trainingsform aus dem Karate. Dort wird es eingesetzt, um sich mit dem praktischen Sinn der Kampfhandlungen auseinanderzusetzen und steigert damit die Fähigkeiten des Karatekas. Beim abapGit BunKai werden wir an einem Tag die Fähigkeiten der Teilnehmer:innen zur Verwendung der Git–Versionskontrolle in ABAP Projekten trainieren und verbessern. Viel machen, wenig zuhören.
Community Event Review abapGit BunKai – Weinheim 11.05.2019
Wir sind stolz darauf am 11.05.2019 den ersten abapGit BunKai überhaupt veranstaltet zu haben. Dieses Mal war Damir Majer erneut als erfahrener agile Trainer bei uns in Weinheim dabei. Neben Damir haben Johannes Konings und Christian Günter, zwei abapGit Entwickler, das technische KnowHow zu abapGit und Git in dieses Event eingebracht und als Trainer uns auch ihre BestPractices verraten.
Einige der Teilnehmer:innen haben bereits sehr gutes Wissen in abapGit mitgebracht, sodass die abapGit Neulinge unter den Teilnehmer:innen davon in den gemeinsamen Sessions profitieren konnten. Als Host habe ich mich auch entschlossen bei den Sessions mitzumachen und durfte live erleben, dass die Trainer:innen es mit ihren Code Reviews der MergeRequests sehr ernst meinen.
Die Agenda abapGit BunKai
Die Sessions hatten die folgende Aufteilung:
- Sich selbst mit dem System verbinden, abapGit installieren und erste Schritte damit machen
- Fremdes Repository forken, Fork etwas abändern und abapGit Features nutzen
- Git Branches und Tags verwenden
- Git für Code Reviews verwenden
- Möglichkeiten mit abapGit: CI/CD, abapLint, …
Alle praktischen Übungen wurden natürlich im paar-programming Stil durchgeführt, um so den bestmöglichen KnowHow Transfer zu gewährleisten. Diese Arbeitsweise hat es allen Teilnehmer:innen ermöglicht, ihr Wissen an die anderen weiterzugeben und selbst bei Fragen gezielt und schnell Antworten zu erhalten.
Rund um den abapGit BunKai – Diskussionen und Austausch
Die Pausen und das Mittagessen wurden intensiv auch dafür genutzt, Fragen an die Trainer:innen zu stellen. Unter anderem haben wir dabei interessante Diskussionen rund um das ABAP RESTful Programming Model, abap in der Cloud und Continuous Integration geführt.
Diese Folie von Sascha Junkert wurde unter anderem in Session 5 präsentiert und hat bei den Teilnehmern für viel Diskussionsstoff gesorgt:
Wir hatten eine super Stimmung beim Event. Spannend war, dass die Teilnehmer:innen aus verschiedenen Bereichen kamen, abapGit bereits einsetzen oder nach dem Event einsetzen wollen. Daher war das Event aus Sicht des Hosts ein klarer Erfolg.
Im folgenden Interview berichten die 3 Trainer Damir, Christian und Johannes sowie Andreas (Teilnehmer) Ihre Sicht zu abapGt und abapGit BunKai:
- Damir Majer, SAP Solution Architect, Agile Developer, Majer Consulting & Training
- Christian Günter, Senior Software Engineer bei der emineo AG, Trainer
- Johannes Konings, SAP Development Engineer bei der Haufe Group, Trainer
- Andreas Kopp, SAP Anwendungsentwickler bei OPTIMA packaging group GmbH
Wie ist die Idee zum AbapGit BunKai gekommen?
Damir: Die Idee des BunKai ist eigentlich aus den ABAP Code Retreats gereift.
Christian: Johannes kam vor ungefähr zwei Jahren bei einem Code Retreat mit der Idee auf mich zu, ein ähnliches Format auch mit abapGit zu machen. Die Idee ist dann gereift und als mit Damir ein erfahrener SAP–Community–Event–Veranstalter mit an Bord kam wurde es langsam aber sicher konkreter.
Damir: Wir wollten sogenannte „Deep Dive“–Formate umzusetzen. Die ersten in dieser Richtung waren ‚SOLID in Action‘ und ‚Legacy Code Retreat‘, diese haben Christian Drumm und ich schon intern in Unternehmen gehalten. Nachdem Johannes und Sascha mich bei SITMUC 2018 angesprochen haben war klar: dies wird das erste Community ‚Deep Dive‘ Format werden.
Was ist der Unterschied zum Code Retreat?
Christian: Das Format und der Ablauf sind prinzipiell sehr ähnlich.
Damir: Beim Code Retreat fokussieren wir uns primär auf Clean Code und diverse andere Themen wie ABAP in Eclipse, Unit–Testing mittels ABAP Unit, TDD und Praktiken aus dem XP. Die Bunkai Formate nehmen sich primär ein Thema und dieses wird sehr tief (daher DEEP DIVE) bearbeitet.
Johannes: Beide Events verbindet ein Prinzip: Das Lernen über starke Interaktion!
Andreas, was war deine Motivation, als Teilnehmer am AbapGit BunKai teilzunehmen?
Andreas: Meine Motivation am AbapGit Bunkai teilzunehmen war mehr Erfahrungen mit Git im ABAP–Umfeld zu sammeln. Das ABAP–Umfeld ist speziell im Vgl. zu anderen Entwicklungs- und Laufzeitumgebungen, da z.B. nur eine aktive Quellcodeversion innerhalb eines ABAP–Systems existieren kann und in der Regel nicht pro Entwickler ein System zur Verfügung steht. Mich interessiert wie andere ABAP–Entwickler:innen Git bei ihrer täglichen Arbeit einsetzen, insbesondere ob ein zentrales Git Repository genutzt wird, ob Open Source Projekte eingesetzt werden – oder AbapGit rein als Archiv–Anwendung lokal genutzt wird.
Nimmst du öfter an solchen Community–Events teil?
Andreas: Ich nehme häufiger an Community–Events teil, u. a. SAP Inside Tracks, Codejams und einem CodeRetreat zu Test-Driven-Development mit ABAP.
Was treibt Euch als Trainer an, den BunKai „ehrenamtlich” durchzuführen?
Johannes: Ein wichtiges Thema gehört voran getrieben 🙂
Damir: Die ABAP Community Formate sind Teil des gemeinsamen Lernens und des Teilens von Wissen. Software Engineering ist eine sehr praktische Fertigkeit und meiner Meinung nach gemeinsam viel einfacher zu verbessern. Mich persönlich motiviert, dass ich meine „Lessons Learned“ teilen kann, damit andere dies in Zukunft besser machen können.
Christian: Und der Spaß an der Freude 😉 Ich bin schon seit langem ein großer Fan von SAP Community Formaten und habe dadurch extrem profitiert. Mich bei abapGit und beim abapGit Bunkai zu engagieren, ist meine Art, etwas zurückzugeben. Außerdem lernt man auch als Trainer sehr viel bei solchen Veranstaltungen. Frei nach dem Sprichwort „wer lehrt, lernt doppelt“.
Wie war die Stimmung beim BunKai? Wie hat er Euch gefallen?
Damir: Die Stimmung beim Bunkai war großartig und es ist immer wieder eine Freude, nach Weinheim zu kommen.
Johannes: Gefallen hat mir vor allem das starke Interesse der Teilnehmer und der ständige intensive Austausch.
Christian: Mir hat es auch ausgesprochen gut beim Bunkai gefallen. Die Teilnehmer waren alle sehr engagiert, motiviert und lernwillig. Besonders gut fand ich den Austausch unter den Beteiligten. Jeder konnte von jedem etwas lernen. Auch wir als „Trainer“ haben jede Menge neue Dinge gelernt und unsere Erfahrungen gemacht.
Sind die Erwartungen, die Ihr an den ersten BunKai hattet, erfüllt worden?
Christian: Absolut. Dass sich so viele Leute freiwillig den ganzen Samstag mit abapGit beschäftigen, und dazu noch mit einem neuen Format, hätte ich nicht erwartet. Die größten Bedenken hatte ich wegen der Cloud–Systeme. Dass diese den ganzen Tag reibungslos funktionierten, hat mich sehr positiv überrascht.
Damir: Die Erwartungen wurden meinerseits weit übertroffen, wir haben eine profunde Vorbereitungsphase durchlaufen und diese hat sich beim Event bezahlt gemacht.
Was würdet Ihr beim nächsten Mal anders machen?
Christian: Da es das erste Event war, haben wir natürlich eine sehr steile Lernkurve und können noch viele Bereiche verbessern. Der rote Faden durch den Tag und das Thema war nicht den ganzen Tag erkennbar, manche Themen haben wir zu oberflächlich erklärt, was dann für Verwirrung in den Sessions gesorgt hat. Anderseits ist es ein nicht kommerzielles Community–Event. Das wird nie perfekt sein und es wird immer Verbesserungspotential geben.
Johannes: Das stimmt, wir müssen für das nächste Mal mehr auf einen roten Faden achten, der die Übungen miteinander verbindet.
Könnt Ihr Euch vorstellen, noch einmal nach Weinheim zu kommen für ein Entwickler:innen–Event?
Christian: Auf jeden Fall. Es war mein zweites Mal in Weinheim und es ist immer eine Reise wert. objective partner ist ein tolles Unternehmen und wir wissen es sehr zu schätzen, dass Sie den ersten abapGit Bunkai und andere Events ermöglichen.
Damir: Ja, sehr gerne.
Johannes: Klar!
Andreas, habt ihr AbapGit bereits vor dem BunKai in Eurem Unternehmen eingesetzt und wenn ja, wofür genau?
Andreas: Ich verwende AbapGit, um Open Source Projekte über GitHub herunterzuladen sowie Fehlerkorrekturen oder Weiterentwicklungen an die Community zurückzugeben. Als Open Source Projekte nutzen wir z. B. den ABAP–Logger sowie die ABAP Debugger Data View Extension. Ein weiterer Anwendungsfall ist es, den aktuellen Stand eines Pakets zu exportieren, z. B. vor einem größeren Refactoring. Zukünftig könnte ich mir auch vorstellen, AbapGit zu verwenden, um Quellcode zwischen verschiedenen SAP–Systemen auszutauschen (z. B. einem ERP und einem S/4 Testsystem).
Was begeistert Euch an abapGit?
Johannes: Dass es das außerhalb der ABAP–Welt weit verbreitete Versions–Verwaltungsprotokoll „git“ mit ABAP kombiniert und damit auch die Basis für CI/CD bzw. DevOps sein kann.
Christian: AbapGit ermöglicht es auf einfache Weise, systemübergreifend zu kollaborieren und zu entwickeln. Das ist in der ABAP vorher unbekannt gewesen (abgesehen von SAPLink, was für mich aber nie wirklich von praktischem Nutzen war). Und dass abapGit der Enabler für OpenSource in der SAP/ABAP Welt ist. Zudem kann man selbst natürlich auch seine Ideen einbringen und abapGit ständig verbessern.
Damir: Damit sind insbesondere die ABAP Entwickler:innen endlich nicht mehr abgeschnitten von dem coolen Zeug, das andere Programmiersprachen ermöglichen. Es ist wie der Türöffner für neue Welten 😉
Welche konkreten Vorteile habt Ihr durch den Einsatz von AbapGit?
Andreas: Es ist einfach, mit AbapGit Open Source Projekte zu verwenden und aktuell zu halten, sowie sich an der Community zu beteiligen.
Was glaubt Ihr, wie sich AbapGit auf die Zukunft von SAP–Software und die Unternehmen auswirken wird?
Damir: Persönlich glaube ich, dass gerade die Themen, die in Richtung Software–Diagnose gehen, zunehmen werden. Sei es von protokollierten Pair–Programming–Sessions, bis hin zu formal durchgeführten Code–Reviews, die mittels ABAPGit eine ganz andere Landschaft und Tool–Integration ermöglichen. Über kurz oder lang werden die möglichen Automationen uns, ABAP–Entwickler:innen, immens unterstützen, Software zu prüfen und Anhaltspunkte bieten, Qualität zu verbessern.
Johannes: Mit abapGit wurde begonnen, über Entwicklungsprozesse (git, CI/CD), die sich außerhalb ABAP etabliert haben, mit ABAP zu kombinieren. Jeder, der mehr aus einer Versionsverwaltung im ABAP–Umfeld rausholen möchte, sollte sich mit abapGit beschäftigen. Zudem ist es eine ideale Möglichkeit, um Open Source ABAP Software auszutauschen (https://dotabap.org/).
Christian: Ich glaube, abapGit wird sehr große Auswirkungen auf die Zukunft von SAP–Software haben. Das sieht man zum einen daran, dass die SAP mit ABAP in der Cloud selbst auf abapGit setzt und sich mittlerweile auch im Projekt einbringt. Zum anderen sieht man es daran, dass der Nutzerkreis ständig wächst. Z.B. hat abapGit bei uns, der emineo AG, die Art und Weise, wie wir entwickeln, bereits nachhaltig verändert.
Andreas: Ich glaube, dass AbapGit für die ABAP Open Source Community sehr wichtig ist, da es das Teilen von Code stark vereinfacht und vielleicht sogar den ein oder anderen ABAP–Entwickler:innen motiviert, sich an der Community aktiv zu beteiligen.
AbapGit bleibt auch deshalb spannend, weil es in das SCP ABAP Environment (ABAP PaaS) integriert ist und erst vor kurzem mit APACK ein weiterer wichtiger Baustein bei der Verwendung von abhängigem Code vorgestellt wurde.
Vielleicht wird SAP in ferner Zukunft auch den Quellcode aus SAP S/4HANA in GitHub zur Verfügung stellen, sodass jeder ABAP–Entwickler:innen diesen forken und die Änderungen als Pull Request einstellen kann – anstatt zu modifizieren oder Enhancements zu verwenden. Diese Entwicklungen könnten dann (nach Genehmigung seitens der SAP) in den Standardcode übernommen werden und an alle SAP–Kund:innen ausgerollt werden. Es gäbe über GitHub auch eine Plattform, auf der öffentlich über Standardcode diskutiert werden kann, sowie Issues eingestellt werden könnten. Dies würde auch die Transparenz deutlich erhöhen. Man darf ja noch Träume haben.
Ein Rückblick von Alexander Geppart, Host des abapGit BunKai bei objective partner