The Boring Enterprise Nerdletter - Issue #3 - December 8, 2021
Hey there!
As shameless SAP nerds, Jelena and I have been watching the news around ABAPConf 2021. It's one of the coolest things to emerge out of the SAP universe in years.
Here's the key feature: it's not run by SAP. This is not to say that SAP running an ABAP conference would be terrible; rather, it shows the health of the community to be excited about an event that isn't even run by the vendor. We also agree with a key point made by the organizers: "ABAP is the fundamental programming language for SAP ERP and S/4HANA, and as a large part of business transaction data is processed by an SAP system, ABAP is also one of the most important programming languages in the world."
For both of us, ABAP has shaped our careers, helped us find communities, and - I really mean this - been a pleasure to work with and watch evolve. To the organizers Tobias Hofmann, Sören Schlegel, and Johann Fößleitner: thank you for organizing an event around what we love! To our readers who have any interest in ABAP: we encourage you to check out their agenda and speakers.
-Jelena and Paul
Documentation: The Castor Oil of Programming
Ideally, all code should be self-documenting but there are many cases when documentation in human language is still needed, such as in API development.
Late Gerald Weinberg, the prize-winning book author called documentation “the castor oil of programming”: good for you but programmers hate it. Personally, I don’t mind writing documentation, but for the majority of programmers it’s nothing but a manager-pleasing chore. And even if a documentation gets written, it is frequently useless (copy-pasted code and screenshot galore, y’all know what I’m talking about), far removed from the code itself, and rarely updated.
SAP recognizes this and starting from ABAP 7.4, we can use the tool called ABAP Doc (the idea borrowed from Javadoc). And with wider adoption of abapGit, other git-based tools, such as Markdown, can be used by ABAPers as well.
When it comes to SAP itself, documentation is a two-headed beast: there is technical documentation (such as BAPI / API interfaces) and SAP Help. In the technical documentation department, there have been drastic improvements in the recent years, with SAP API Business Hub being nothing short of amazing, compared to the BAPI documentation. But SAP Help traditionally has been rather unhelpful and even inaccurate. Not only that, but the only feedback options for the customers and various SAP mercenaries were either screaming on social media or submitting an incident via well-guarded SAP Support channels.
Surprisingly, SAP finally recognized that as well and is now embarking on the Open Documentation journey. As a pilot, SAP is “opening up” SAP BTP documentation where anyone with a GitHub account can chime in. I say this is a great start and I hope this initiative moves forward much faster than the SAP BTP Free Tier saga. JP
Ask Stupid Questions
I found this through Hacker News and felt like this author was writing directly to 15-years-ago Paul. So I'd like to jump on the bandwagon and offer a tiny bit of my story for any new software developers.
As a junior developer, I did pretty much exactly the opposite of this guy's advice. I kept my stumbling blocks to myself. Instead of seeking advice, I beat myself up. I spent hours upon hours in the evenings obsessively hunched over small problems from earlier in the day, certain that any developer who was actually worth anything wouldn't have spent so much time on this tiny little thing. I was utterly terrified of giving the appearance of incompetence.
My peers who asked questions without regard for appearances not only got their time back, they actually learned more than I did. My overdone commitment to doing it without help led to worse-built things. That little snippet of advice that my peers got from senior devs affected every project they worked after that. My stubborn battle to get it done by myself helped win me a few battles, but absolutely lost me the larger war of skill cultivation for several years.
I'll add two things to Mr. Kazakov's awesome piece:
The more senior people who give great advice often love to help folks. Don't think you're leaning too much on them - you're giving them a gift!
The experienced people who are still asking questions all the time? They're the smart ones.
May we all have the audacity of the junior developer who doesn't care what people think of her questions. PM
Amazon re:Invents Excel
Among the big enterprise software players, Amazon chose to be the caboose of the fall conference train with AWS re:Invent 2021 closing doors on December 3rd. I was curious how the event stacks up to SAP TechEd and what’s going on in the AWSosphere, so I dug into the online content.
If you thought that SAP TechEd 1-hour executive keynote was long, meet AWS 2-hour keynotes. And it’s not just the CEO one (where SAP got a shout-out at the 30-minute mark) but all other ones too. I guess AWS is not big on following the KISS principle.
While SAP is frequently mocked for creating more and more IDEs, AWS seems to have the thing for databases. “30 minutes in. Still no new databases” noted one observer on Twitter.
Everyone and their brother has a chatbot / conversational AI offering. AWS product is called AWS Lex (not to be confused with Amazon Alexa) and you can try it for free. Based on a brief look, the process of training and deploying a chatbot seemed very similar to SAP and other vendor solutions. I’m curious how it compares to SAP tools on a more detailed level, so expect to read about it in one of the next issues.
Let’s face it, every company is run by a bunch of spreadsheets. Instead of swimming against the current, like the ERP vendors, Amazon decided to embrace the spreadsheets and base their no-code solution called AWS Honeycode on that business user darling. It’s not a new product (announced mid-2020) but still remains in Beta. My impression: unlike with SAP AppGyver experiments from the previous issue, I was immediately stuck with Honeycode not really knowing what to do. As one review pointed out, while this can be a helpful tool to create simple applications, the build process needs some work and there are already other apps that can achieve similar results. Honeycode is not as sweet after all. JP
Strutting Salesforce Says Slack Smashes Sleepy ServiceNow
Bob Evans over at Acceleration Economy examines the Salesforce/ServiceNow competitive landscape, through the lens of Salesforce's acquisition of Slack. I had forgotten just how much Salesforce paid - $27B! - to get Slack, but I'm reminded of its value every time I use some other chat/connect tool. I love so many of the things Microsoft did and is doing, but holy cow do I hate Teams.
Evans calls out Salesforce's emphasis on Slack. Their CFO notes that four of the top ten deals this quarter included Slack wins, and new co-CEO Bret Taylor touting tons of new license revenue and adoption of Slack over the last year. They're putting Slack in position to fight ServiceNow by talking about Slack delivering human workflows - pushing forward into the "workflow" arena that ServiceNow has been leading with for several years under CEO Bill McDermott.
Evans has lots more detail in the piece itself. It's a good read. For me, a key item is the quick discussion of how and where we work changing over the last two years. More than ever, software that puts collaboration and workflow squarely in its sights will dominate in the years to come. Using Slack brings a feeling unlike other chat and collaboration programs I've used, and the importance of making feeling more central to work is only going to increase over the coming years. PM
All Aboard The ABAP RAP Train!
The future of ABAP may be in Cloud but with many (majority?) of large SAP customers and major ABAP consumers being firmly planted in the on-premise camp, the most futuristic thing right now is ABAP RESTful Application Programming model aka RAP. (For an overview of what RAP is, I recommend the recent Devtoberfest session Guidance for developing RAP applications in ABAP but the 2020 openSAP course remains the most detailed and useful source of information so far.)
RAP is the successor of the ABAP Fiori programming model (CDS + BOPF) and even though both models are still considered “safe investment”, the ABAP Roadmap clearly leads towards RAP.
However, just like it frequently happens in SAP world, we eagerly board the RAP train but after departure it turns out that we still have to lay the railroad track as we move ahead. The simple “flight booking” and “update a Z table” type scenarios that are covered in the mentioned course and in the newest edition of ABAP to the Future book, only go so far. In reality, SAP customers demand business logic to be tightly woven into the tapestry of standard SAP functionality, meaning that extensibility scenarios are of equal, if not more, interest to the developers.
I was surprised not to find any information on the extensibility and reuse of standard SAP RAP objects in a recent search. The TechEd session Extend SAP S/4HANA on Stack with ABAP RESTful Application Programming Model explains this: what I was looking for, is mostly upcoming functionality. I highly recommend this 15-minute session to all those wondering what else to do with RAP beyond simple use cases. It briefly explains ABAP RAP Generator, shows where to find standard objects, and how to use them. “RAP: extend” is coming up in 2022 and “RAP: integrate and reuse” in 2023. Which should give most ABAPers just enough time to find out what the heck RAP is. JP
Dr. ABAP's Feel-Good Rap
I love computer-generated things. A few weeks ago I tweeted a computer-generated rap song I made about ABAP. The link in the tweet is dead, so I found a way to re-generate and preserve the results. The picture for this piece is made by that same tool. Here are the tastiest bars of that rap:
"The application drops deep as does my program.
I never write, 'cause to write is the grandma of ram.
Beyond the walls of hyperscalers, life is defined.
I think of innovation when I'm in a Walldorf state of mind."
Surely I'll be receiving a call from a major music label any minute.
The new normal in the AI/ML space is tooling to amplify human creativity. I actually wrote a little ABAP rap a few years ago, feeling tired-inspired after a late night of getting code into a customer project. I decided to show GPT-3 a portion of this rap and see what it had to say about finishing it. Here's one verse of what I wrote:
"Yo I drop nonstop ABAP at the top SAP shop,
Innovation station - this Gopher’s bringing the top chops,
To North Loop - here’s the scoop - a frozen backdrop,
For air drops of fire, news from our view on top."
And here is GPT-3 suggesting a follow-on verse:
"You got an app in your hand, I’m the man in your band,
Tech skills in demand, y’all think I’m conceited,
I’m just a gopher, but I’m not a fool,
An agile code hero, I’m a code-on-demand."
You can play with my prompts yourself at OpenAI. I think GPT-3 kinda found my voice. Is it a complete replacement for human creativity? No - of course not. But does it augment and support creativity? Undoubtedly. PM