Foreword: this is not about something new but something I didn`t see people using much and I find it useful and want to tell you about it.
Have you ever tried to navigate SE80 -> Utilities -> Worklist -> Display? I didn`t have more than just a rough idea about this functionality before I tried it. It is nothing more (or less) than a TO-DO list. You can add and remove items, specifying the following: Object type, Object name, Subobject name and free comment field for you to note details (note that except the free comment all other fields get populated automatically if you point your cursor somewhere and say “add”). A useful feature is that when you click an entry, it jumps to the code so you`re immediately at the spot where you want to do something about the code. So far it`s very simple, right?
Designing, prototyping and implementing ABAP code
Now why I find the worklist useful. Let`s talk about your ways and my ways of designing, prototyping and implementing ABAP code. This time concentrate more on supporting the ABAP code or let`s say improving it, rather than starting the new development from scratch.
Some people say every good change request is started from the Solution manager. That could be true, but as a code monkey (I don`t see other people than hardcore developers reading about TO-DO list for developers…) you don`t care about the background, you are the person who get things done. You have existing code, which works and you`re asked to change/ improve it. And that`s often a tough call. I am not talking about you not being the author of the code or about quality of the code, number of comments etc. Those are obstacles, but can be surpassed. The most difficult thing (at least to me) is that it works before and it must work afterwards. So from this point of view you can “break it”.
That means you must think very carefully about what to change where and only then start changing. Better take a snapshot/ version of the code before you start. Now how do you approach the problem?
When I build new code, I start with comments. Using comments I plan my program. Then start with building the objects (typically classes right? This is 21. Century). I create classes, I create methods, I define some method interfaces etc. I have the shell of the program, objects and all the separation of concerns done first. Then I start implementing the building blocks I defined.
Code support made… easier
Now how do you approach an existing code support task? Some people try to create one method or function that will encapsulate all the changes so the rest of the code remains intact (just an example, if you have your own cool tricks, can you share them via comments below this blog?). That can help, yes. But how often this is possible? Not always. So how do you approach a challenge of changing multiple objects, multiple interfaces, write new or change existing code in several places so it everything works nicely together again?
After the detour here we come back to the Worklist. My suggestion is with the Worklist you can go through the existing code and start adding TO-DO list entries, with descriptions of course, and plan the whole change process before you start. You place the cursor, say “add” and create a TO-DO list entry without touching the “display/ change” button.
Some people “plan before they start” already. But try it once and feel how much more comfortable you navigate to that part of the code by double-clicking your TO-DO list entry, rather than trying to get there via search or repository browser etc. Doing this I can plan my development with comments like before (when starting from scratch) without touching the code.
If you already are a ABAP guru, you must have your ways proven working and efficient already (again: can you share them via a comment below? Thanks). But maybe… out of curiosity… you will try the Worklist functionality (which is in the system for quite a long time by the way!). If you`re are a newcomer, you can try and you might find a way you were looking for.
Maybe you`re laughing all the way reading this blog. You know how to build software with or without TO-DO lists. But believe me I know guys who start changing the code from the beginning, then do some more fine-tuning at the end and only then realize that those two changes don`t fit together in the middle. It happened to me several times as well. I can admit that:))
Again as with all my blogs: if this helps a single individual, it was worth the effort. Happy supporting existing ABAP code. Cheers Otto