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: 
Nigel_James
Active Contributor

ABAP - The Special Snowflake


The other day I poked the bear. Bears for the most part are things that should be left to their own devices as my Canadian friends will attest.

The bear in this case was Dennis Howlett who has been a long time friend in the enterprisey space
I met back as part of the media and influencers team at Sapphire and Teched events around 2006.

Dennis was asking about the new ESME as part of a conversation about Diversity amoungst the SAP Mentors. (That is a blog for another day)

I replied:

Now for background #ESME was a Enterprise Social Media Experiment that happened around 2006-7ish and could have been something cool. It became an apache project which was qudos to the people driving it https://esme.apache.org/.

So Den was asking about what the new cool edgy thing was around SAP these days. As I said in my tweet above it is my opinion that that is #AbapGit with a whole lot of whitespace until second.

Then (which is what I was hoping would happen ) Den looked into #AbapGit and dropped the following:

The conversation that followed continued on for days across timezones picking up a whole lot of other voices and opinions on the way through.

My attempt with this blog is to try and bring some of those opinions into one place and simulate the conversation further as to what sort of innovation we are looking for around the SAP technology space. And if you are short on time here is the tl;dr:

  1. ABAP has legacy tools

  2. ABAP has legacy culture

  3. It is stuck there and will never ever move

  4. ABAPGit is the best thing that happened to the ABAP ecosystem since ABAPUnit

  5. Adoption of both of these toolsets are woefully low (Please see point 2.)

  6. These are exactly the tools that we need to create CI/CD platforms for SAP landscapes.


There. If you want to skip to the next blog... go for it but first identify what culture is happening amongst your ABAPers or your offshore team.

If you want to enjoy the rest of the story then fasten your seat belts, return your tray table to the upright position and hold on.

#Disclaimer


Let me provide a disclaimer for those that love ABAP to a fault ( Hi c436ae948d684935a91fce8b976e5aa7, Hi jelena.perfiljeva2 ). Yes, ABAP is awesome and yes is does power half the planet if you believe SAP's marketing department but being great is not enough - all languages need to improve and get better.

Am you saying that ABAP is not doing this? I mean that is a pretty provocative, click-baity title you put on this blog there Nigel.

Yes it is provocative and no - ABAP is innovating ( Hi horst.keller ) There are incredibly talentent people inside and outside SAP pushing to improve the language, toolset and culture to become the best that is can be and when they are finished they will go some more.

The problem is that good ol' ABAP is for all intents closed source prorietory language. My other two favourite languages that include the letter P ( Python and PHP ) are not. They have continually innovated around their core. Just the other day I saw Zeev Suraski one of the co-architects of PHP saying that the next release of PHP would be 4-5 times faster than version 7. This is not bad given that version 7 was twice as fast as version 5.x that preceeded it.

What languages carry with them - more than anything else is legacy baggage. PHP certainly does - and routinely get bagged for it but many companies including Facebook, Slack, and Mailchimp have PHP at the heart of their business and serve many millions of customers. Enterprisey enought for you? ABAP, coming from its FORTRAN and COBOL roots has a very verbose nature and weird keywords. That's why we "love" it right? Many improvements over the years have been welcome and the code we write in ABAP today is not the code we wrote 20 years ago.

What they also bring is toolsets, "tecosystems" ( Thanks @sogrady ) and a culture that grows up around them.

#ABAPGit can shift the ABAP CI landscape


My thesis in this twitter thread that developed was that #ABAPGit could bring new ways of deploying code to the ABAP Ecosystem just as #UI5 has brought innovation to the Front End and HANA has brought innovation to the database.

Other believe the culture needs to come first:

Graham is right though. Enterprise mindset is hard to break down.

In other development enviroments the deploy to prod as often as required is commonplace. When I gave a talk about learning #git back at #SAPTeched in 2015 I had a guy from Github in the audience. Thankfully he identifed himself after the talk and told me how they deploy regularly with the record from issue being opened to fix in production being "2 minutes"* (Actual time may vary - but rest assured it was not 6 months)

I have since heard similar stories at Amazon, Facebook, Netflix. Why does the enterprise (read ABAP based platforms ) have to be different?

The toolsets are available


Chris Paine nailed it early on:

And there you have it:

  1. Unit Testing

  2. Decentralised Branch Based Repository

  3. Automatic Migration

  4. Branch based deployment


People like @grmpyprogrammer, Chris Hartjes, have been preaching Unit Testing to the PHP Community for years, probably 18 years. The toolsets and workflow are well established and while it has taken people like Chris years and years of banging the drum the message has gotten through.

ABAP Unit has been with us for at least a decade but how many of us unit test our ABAP code? How many of the 'offshore' code factories include ABAP Unit tests as part of their deliverable?

Where is the ABAP Unit culture? Happily there are more voices promoting unit testing recently.

Even in the Java world JUnit and friends have made testing common. Which is why Chris Paine is happy developing extensions in the cloudy world:

But to do this he is using unit testing, branched based source control and automatic deployment mechanism. ( Chris may want to chime in and correct me here I dont actually know his workflow I am assuming it based on his tweets. )

Ethan Jewett had some really great comments to add - he joined in with:

And unsurprisingly (as Ethan always has great things to say) there is another thread on modern ABAP practices starting here (from 2016) :

and again as Matt Harding pointed out that this conversation has been going on for quite some time pointing back to a tweet from Chris Kernaghan from 2014.

And the kicker which really sums up the ABAP Culture is this:



Personally - I have never wanted to stay with my own set of tools. I am not an ABAPer. I solve problems that can (sometimes) be solved with a computer program and I am happy to say that over the years I have contributed to many sucessful implementations just as I have contributed to things that have never seen the light of production.

About four years ago I took on a client who was the farthest from SAP as anyone could imagine. They were a content platform startup. Small team using PHP and a little framework called Laravel. Thankfully they didn't let me at the code. I did a more robust data replication proof of concept for them. While I was there I learned a lot about how this team used:

  1. Unit Testing

  2. Decentralised Branch Based Repository

  3. Automatic Migration

  4. Branch based deployment


Sound familiar? Every other team and platform does this. Ethan is right. ABAP is a Special Snowflake.

So here is the cultural challenge to all those who are die hard ABAPers. You need to embrace the new tools and new ways of doing things.

I hope this has raised a thought and sparked more conversation.

Let's not be doing something because it is Not Invented Here.

I will leave you with the Knights who say NIH

[and yes I wrote this blog in markdown using Sublime Text 3 and used github to version control it ]

 

Update - 4 July: Dennis has added his thoughts to this conversation and the comments are worth a read.

Update - 6 July: This post caught Hasso's attention and is asking for feedback about what is really needed:
imo scp offers all or most modern code management and deployment options of the cloud world. many of the abap improvements will show up first in the cloud, only there sap can make more radical and incompatible changes because of the separation of standard code and extensions.
- hasso
88 Comments