SAP Inside Track Oslo 2019
On the 17
th of August 2019 (the day after my birthday, and indeed the day after Madonnas birthday, though she is ten years older than me) was SAP Inside Track Oslo 2019 which was a fantastic day.
I had never been to Oslo before so this was a wonderful excuse. I had been on holiday in Marrakesh the week before and so came to Oslo straight from there and as might be imagined that involved quite a temperature change. Oslo was full of electric cars, which I had read about, and the beer costs twelve pounds a pint (which I had been warned about but it still hurts).
It was raining on the SIT day which came as no huge surprise (in Marrakesh it last rained in May) but the event was held on the 25
th floor so the view was still wonderful at least in the morning (in the afternoon it got too misty to see anything).
I will show a picture of the view in a minute but first of all we have to start with a picture of the dustbins as is traditional. In this case the bins were actually quite artistic.
SIT Oslo Dustbins.
One point I would like to make before starting to describe the sessions was that at this event it was 50% women. Why is that worth mentioning? Because at some SIT events I have been to this year the usual mixture was 25 men and one woman. At one event the lady in question begged me to invite my wife to the evening drinks just so she could have another female to talk to.
Keynote – D.J.Adams – How to build a career
The good thing about SIT events is that as well as the technical sessions there are some that concentrate on what are (probably incorrectly) called “soft” skills. In this case D.J. was talking about the secret of success in the programming world. This was very pertinent as the very first person I met was a gentleman from Latvia who did not work in IT but came along to see if that was a career worth investigating, and there was also a lady who taught war refugees (one of them was there as well) and wanted to know how to get them into the IT world.
D.J. started with an acronym I was unfamiliar with – JFDI – which stands for “Just (something) Do It” which I think is a slogan of a famous footwear company as well.
He says if anyone asks him what he does for a living at a cocktail party he says that what he does is to learn. The secret to success is to be curious about things, and investigate them in your spare time even if it unrelated to what you are actually working on.
You also need to have a burning need to tell people what you have learned, at events like SIT or TechEd, or in blogs, or by any of the ten zillion social media outlets available to the modern world. I saw a nine month old baby yesterday and his toy was a pretend smartphone, but he preferred playing with his mother’s actual smartphone, both of those things says a lot about the world we live in today.
The next point was what I call “impostor syndrome” something I feel a lot, which is when you are supposed to be an expert in something but in your heart you think “I have no idea what I am doing/talking about”.
D.J. says the answer to this problem can be found in the film “Ghostbusters” and goes as follows-
“When someone asks you if you are a God – you say YES”
Malin Liden – Innovation Culture powered by Diversity
This was another so-called “soft” topic to which there were two strands. Malin was vice president of innovation (in marketing) at SAP, as a bit of background. It also turned out we both studied the same subject at university (economics).
The first strand was the power of community – Malin lived in a village in Germany for eight months and had not met any of her neighbours. Then she bought a dog and by the end of the next day she knew all the dog owners in the village and by the end of the week knew everybody in the village.
More importantly she would not buy anything for her dog or make any dog based decisions without consulting the dog owning community. So the dog product companies could spend as much as they wanted on marketing, if the dog community said no that’s rubbish then whatever it was would not get bought.
The obvious analogy is the SAP Community web site.
The second strand was to do with innovation. It used to be said that standing still was moving backwards. In Klingon (not an analogy she used) there are only two sorts of organisation – the structure that expands and the structure that collapses). Nowadays it could be said that moving forwards slowly is in fact moving backwards. It is like you are on a treadmill and someone keeps turning up the speed every year.
Her contention was that diversity and innovation complement each other directly. A diverse team can understand the needs of the customers better than a homogenous one. The best example I have seen of this was a cartoon where you have three middle aged programming men in a room full of pizzas and coke bottles. One is going on about how his new invention will go down incredibly well with 14 year old girls. The second one asks “Have you actually asked any 14 year old girls what they want?” to which the reply is “What? And leave this room?”
D.J. Adams – Odata and the Cloud Application Programming Model CAP(M)
I have seen this before several times and have come to the conclusion it is something that needs to be seen time and again until it finally sinks into my thick skull, because I can tell it is really important.
D.J. knows that many ABAP types 100% refuse to step even slightly outside their comfort zone. It is difficult enough to get them to look at new ABAP related technologies, let alone non-ABAP technologies.
This is why you have the (to me) insane situation where ABAP people seem to think it is impossible for them to learn JavaScript and even worse the management feels the exact same way as in “my team do not have the skills to program UI5 they only know ABAP, let us hire some outside contractors for a billion dollars”. This is madness. One of my colleagues started programming using punch cards and he managed to learn assorted new programming languages during his career. I am willing to bet the jump from punch cards to ABAP is far greater than the jump from ABAP to JavaScript.
I started at age 14 with BASIC and then at university programmed in Pascal. The two languages are pretty much totally different but they are both programming languages so it was not the end of the universe learning the new one.
In TechEd 2017 I was in a ten minute video with other SAP Mentors where we answered ABAP questions. I don’t know what question prompted me, but I noted then that I was reading a book on the LISP programming language (invented about 1956 I think). Do I need that in my day to day work? No. Am I ever going to write a LISP program that gets used productively? No. Though I could if I wanted there is an pen source LISP interpreter that runs in the ABAP environment. I wanted to learn that language because (a) I did and (b) I had been told that it gave you a totally new way of looking at problem solving.
Going back to JavaScript I personally found the learning curve very easy indeed. It was far more difficult getting my head around Web Dynpro, and that used ABAP. The thing to note is that JavaScript is not just some front end sort of thing, it is a fully fledged programming language.
At SIT Maidenhead D.J. had a session on JavaScript and the point he was stressing was that it is a functional programming language (ABAP and Java are imperative ones) and that programming in a functional manner is FUN. This is important – programmers enjoy writing programs. I was once asked by a business analyst if she should try her hand at programming. She was really asking if she was cut out for it mentally. I picked up the manual of how to design concrete mixes (which is as thick as a telephone directory and all full of mathematical equations) and said that I had spent four years translating this into a computer program and had the time of my life, would she enjoy doing something similar? She thought about it and decided that being a business analyst was the way forward.
But anyway, programmers have fun programming, so if functional programming is a fun thing to do then why not jump right onto it, rather than having some sort of mental block that it is impossible to learn JavaScript. Rant over.
So the approach D.J. was trying out was to take an area that most ABAP people were used to – namely OData – and then trying to get people step out of their comfort zone and use OData in another context. A lot of the more stubborn ABAP types would not even know transaction SEGW existed but hopefully some people know what it is.
So D.J.’s presentation (no slides, just playing round on his computer) was all about the Cloud Application Programming Model or CAP(M). The M is silent you just say CAP. If you pronounced the “M” people would start making jokes about CAPM America and we do not want that do we?
This CAP(M) thing is for developing Z type applications outside of the ABAP environment.
We have another new word now – NORD – which means a Nordic Nerd. So the famous Microsoft data model NORTHWIND was renamed NORDWIND for the occasion.
So D.J. just started up his development environment and demonstrated how to build a basic application from scratch in half an hour. How he started was somewhat like TDD in my mind – he wrote one or two lines of code, tried to run it, got an error message saying what was missing, added the missing thing, and repeated the process till it compiled e.g. a data model needs at least one entity, an entity needs fields, an entity needs a key field etc.
Inside SAP we have CDS views where CDS stands for “Core Data Services”. The name is slightly different in the CAP(M) CDS means “Core Data AND Services” – a subtle difference due to the separation of the DB layer and the service layer.
The DB layer is rather like Z tables in SAP with the “entity” having various fields, and in addition the relationships (associations) are defined e.g. a product has a category, a category can have many products. This is defined using what looks very like plain English to me and you do not have to specify the key fields used for linking, the framework is clever enough to work that out on its own.
The service layer also has entities which are “projections” of the underlying DB entities, possibly with less fields
Going back to the framework being clever D.J. is fond of the phrase “convention over configuration” which means if you code (name) things in a certain way then the framework will know what you are trying to achieve and do lots of magic for you automatically.
All the CRUD things happen by magic, but you can intercept the OData calls and code some JavaScript which gets executed before, or after, or instead of the operation.
To end on a philosophical note on D.J.’s t-shirt was the phrase “the future is terminal” which reflected the fact that in his development environment one uses the command prompt all the time rather than some sort of GUI.
To me that seemed like the “Wheel of Time”. When I started programming at age 14 I used the command prompt all the time, there was no other choice. Then I moved to a GUI based approach, but the question is if things like the CAP(M) become more and more important at age 54 (I am 51 at the moment) will I be programming using the command prompt all the time again?
It is rather like ripped jeans. In London in 1986 ripped jeans were all the rage, then they were not, and now thirty years later they are in fashion again. I imagine in a few years’ time I will stop seeing people wearing them, and then if I manage to live to 80 I will start seeing them again.
Oslo View
Sebastian Wolf – APACK – an ABAP Package/Dependency Manager
I had known about this for some time, due to my “inside” status as an SAP Mentor, but it was on the “super-secret” list and has now been released to the wider public.
I will start with a concrete example of a problem that needs to be solved, then say what AACK is and how it solves that problem.
If you were to download the source code examples from my “ABAP to The Future” book via abapGit into your SAP system, some programs would most likely get syntax errors. This would be because I make use of various open source ABAP tools like ABAP2XLSX and ZMOCKUP_LOADER. It is more than possible you have not installed those in your SAP system hence my monster code is dependent upon them existing in your system.
In other languages you can state this explicitly right at the start of your code saying I require this and that and the other. Sebastian noted there was no dependency management at all in ABAP and the package management concept in ABAP was both weak and complex. Ouch! That sounds bad. However that is what I have always thought, it was good to hear someone from SAP say it explicitly.
APAC means the Asia-Pacific region.
APACK is a new (open source) tool from SAP designed to address these gaps. This tool is fully integrated into abapGit and though it was created by SAP they had to talk to the inventor of abapGit (Lars Hvam Petersen) a lot. This is a plug-in to abapGit and I intend to download it and start playing with it as soon as I can. I would note that this is still a work in progress, but being open source it should advance a lot faster than if it was a proprietary SAP product.
Anyway, so how do I say that my monster code needs ABAP2XLSX in order to compile?
There is a “marker interface” called IF_APACK_MANIFEST and if I create a class in my monster package (it’s good to have a monster package) and declare this interface in that class then in the constructor of that class I can fill up a structure with some details of the monster package e.g. it’s GIT URL and then fill up a table of dependencies and for each dependency specify the GIT URL where (say) ABAP2XLSX lives.
Then when I export my monster package to abapGit the class with the interface will e automatically detected and a file called APACK.MANIFEST.XML is auto-generated on lives on the GitHub repository along will the normal files.
Then when someone else imports my monster package into their system using abapGit the MANIFEST file is detected and you get a new screen called “package dependency resolution” listing all required packages. If ABAP2XLSX (or whatever) is already there then it will not be imported again, otherwise all missing dependencies will be imported along with the primary package you are trying to import. This is multi-level i.e. if a dependency has a dependency then that will be detected as well, so you could in theory go a billion levels deep.
To my mind this is somewhat like SNOTE. OSS Notes often have dependencies and SNOTE is clever enough to force you to import all dependent notes as well as the note you have specified.
Simen Larsen-Frivoll – BEER
This was a highly entertaining talk on a vitally important subject, namely the brewing of beer. The presenter explained how the brewing process worked – most of which was news to me – and then how he controlled his brewery by hooking up all the machines and plumbing and sensors to a Raspberry Pie which then controlled the whole process via a UI5 front end.
Stein Tronstad – SAP Data Intelligence
The artist known as “SAP Data Hub” is only called that when it is on premise. When it is in the cloud it becomes “The Artist formerly known as SAP Data Hub” or sometimes “Data Intelligence”. The difference is that the latter has been stuffed full of machine learning and artificial intelligence until it has those things coming out of its ears.
On the first slide was a load of blurb which the presenter cleverly put a huge red X through after one second as people cannot stand being drowned in a sea of buzzwords. Nonetheless I get the general idea – to mix my metaphors there is a huge ML/AI train a coming down the tracks and SAP wants to be on the inside of the tent when it arrives.
They are going after two different target groups at once – for the non-data scientists they are providing pre-built high level generic ML/AI scenarios which can be configured, but for people who know what a “Cronbach Method” is when it is at home, there are a bucket load of very low level building blocks to choose from when creating a ML/AI model.
Now as far as all the examples I have seen go, there is far more ML than AI in the world at the moment. In today’s example there were loads of hand written numbers and the machine had to learn what was a “seven” and what was a “four”. This has an obvious application in sponsoring Sesame Street episodes. The machine was not actually doing that good a job but to be fair to it, most humans would have a hard time struggling with my handwriting – which was a lot clearer when I was younger but has gone downhill ever since I started using computers to write essays at university.
As an aside I don’t put any faith at all in handwriting analysis for a very simple reason – when I was about 13 it occurred to me I had the worst handwriting in the world. OK I thought to myself, who has the clearest handwriting of anyone I know and it was my math teacher. So I decided to start writing like he did, and was able to make the change pretty much instantly and my mother was really puzzled as to why the handwriting in all my school books changed dramatically overnight. She thought I had started paying another pupil to write things down for me.
RAFFLE
Then they raffled off three prizes which – boast boast – were electronic version of my ABAP to the Future book provided by SAP Press. The application the organiser had found online was fantastic. He could even put the SIT Oslo logo in the middle of the spinning wheel, and when someone won you could take them out of the wheel.
BEER
Then it was off to the “Royal Gastro Pub” in the train station at the bottom of the building to try assorted Norwegian beers. I was lucky enough to sit next to the beer expert who had given the speech earlier, so on his recommendation tried all sorts of weird things.
Oslo Beer
CONCLUSION
That was a great day. The content was wonderful, and one meets so many interesting people, both new and blasts from the past e.g. there were three young people I had met at SIT Rome last year. There is an SAP Inside Track pretty much every month these days, if not every single week, and especially if you are in Europe I would encourage you to seek one out.
I am leaving Europe to return to Australia in exactly one month from time of writing, so I only have one European one left - namely SIT Berlin on 31/08/2019. They do have SIT events in Australia but it is just not going to be the same!
Cheersy Cheers
Paul