When I tested tools like SAP Joule, Amazon Q, Github CoPilot and others, I encountered what seemed to be two main limitations:
The result in my case: broken code, unclear suggestions, wrong use of standard components leading to short dumps.
Inspired by a full stack AWS CDK & React project I was recently working on, I tried transferring some of the workflows and framework conditions to my ABAP development practice. The result is an experimental set up that - so far - seems very promising to achieve a comparable development flow and seamless integration of AI coding assistants as I experienced in projects outside of the ABAP universe.
The set up utilizes existing open source and community based tools and combines them to help the AI coding assistant to work as intended.
Crucial to sync ABAP code between the SAP dev system and a remote Git repository. I use the background option the keep the SAP system in sync with my local changes. The background option can be activated in the repo settings. Once activated, you can schedule a batch job of abapGit, which will then run the configured actions on the repo(s). In my case I configured the background auto pull function the keep the developments objects in the SAP dev system in sync with the changes I make locally & push to the remote.
Like this, the SAP dev system becomes more of a stage in a pipeline than a development environment.auto pull option in abapGit repo
It acts as the bridge between the SAP system and my local development environment. I only do changes in my local environment (see 3) and push them to the remote repo. The background configuration (see 1) ensures that the SAP system stays in sync with the remote. Currently there is nothing more happening here, but I'd like to enhance the set up with some actions once changes are pushed/ merged in the remote. Maybe only trigger the sync in (1) only when a pipeline successfully executes.
On my local machine, I use Visual Studio Code enhanced by these key tools:
Set Up Overview
My experience with this set up so far is really great. I mainly used it in a OO greenfield development, helping me to focus on software architecture and object composition and avoiding to deal with boilerplate code. I try writing to the AI assistant as with a development colleague, questioning my ideas and current problem solving approach.
I also let the assistant implement complete parts of the solution after creating and evaluating a detailed development plan upfront. It works really well as long as the current 'feature scope' is not too large and the implementation plan is well described.
This approach has given me what feels like a more tailored and extensible development experience compared to exclusively using the assistants mentioned at the beginning of this article without changing the complete set up.
--------------------------
This post was written with the help of GenAI.
Want to share your experiences with AI assisted coding? Get in touch!