Skip to Content

In the Celebration of the SAP standard code for dummies I expressed some of feelings about why we should reuse SAP standard as possible. Well, that is nothing new. We all know why we use SAP over home grown system. I received quite many comments under that blog and even some personal emails and tweets` that made me really happy, so I am here with the continuation.

I was asked for some personal tricks of mine. That is something that could help the beginner, I can understand. It could also be a good catalyzer for an expert tricks exchange (I would really love to learn the tricks of the others, I am far from being perfect ABAPer, very VERY far…). So I promise I will deliver some tricks, but not today.

Today`s blog will be about why it is important to do what I described in the last blog from our hearts (ok, pathetic, sorry). There were two comments that inspired me for today`s blog. Thanks go to Sharad Agrawal and Michelle Crapo. The topic for today is QA review + management and time pressure.

QA review of the development + management

Mature ABAP shops normally have a Pre QA review process in place to approve specific DDIC objects (mainly tables, views and structures) before they are created in Development Box. (…). Though the individual developer is important part of the equation but the responsibilities also lies on leadership (development manager/director). The leadership should embrace and reward the principle of development of reusable code rather than finishing the current assignment fast and move on the next” said Sharad Agrawal.

QA and management. We all have heard about them. But how often they do what I described? Does your boss check if you use “enough” standard? I don`t believe it, sorry. If he would be that good to be able to do that in ten minutes (it`s a boss for god`s sake, he does NOT have time), he could do that by himself in the same time. Do your QA guys check if you reuse DDIC structures or call forms and functions instead of copying the code and blah blah…? I don`t believe it either. Why? It`s not difficult to figure out – if they can do that in a short time, why didn`t they built the things? This can`t be done quickly. It could mean that the effort/ time/ costs are doubled. Can you afford that? Can your customer afford that?

Because to judge if you reused enough standard code and objects mean that you understand the task, you understand the approach of the solver and you understand what, where, when and why he is doing things.

By the way, not all companies are rich enough to afford a big QA department. Some projects are not “big enough” to have access to QA quality procedures. Some development is outsourced, and then whose QA is to be used? QA of the both partners or none of them?

Let`s assume for a second that you have the right people, you can afford them and they have time. And they do thorough code checks and overall development scans. Then it`s up to them if the ratio of reusable code is high enough right? But what if they have no idea about the concept or the way of checking this? Then the situation is reduced to the previous case. It is a mission for every single SAP staff member to understand and learn.

By the way do you consistently apply your QA procedures on support projects? Then you might be cleaning the original project`s team mess? I don`t think so. Do you apply QA on emergency repairs and quick fixes of various kinds?

“But when it comes to the end of timelines…”

“…projects need to be done. Reusability slips. I tend to write what needs to be written to get the job done” commented Michelle Crapo.

Yes, time is always a problem. And money. Money is ALWAYS the problem. Let`s say you have cool and punctual management, great QA procedures. But you lack time. But let me tell you a different but a similar story in a way. Authorization concept. You care about security so you decide (boss of your boss decides) to invest some money (plenty of money) into building a new authorization concept. You wait months or even years, you spend hundreds of thousands or millions and at the end you get your new, nice and shiny authorization concept. It goes live one day.

Second day after the go-live at most first change requests arrive. Your very precise and take your time the first day. Second day. But sooner or later you do a careless repair, quick fix or an emergency repair and things start moving the wrong track. After weeks (months if you`re lucky) you realize you`re where you were few months before (and few million richer).

My point is even if you have superb QA and management and 80% of your development is neat and clean there is always 20% that spoil the effort. Your QA guy is on vacation. You`re only quickly repairing something . You ask your new junior guy to do the quick fix for you (changing few lines of ABAP is way to easier than build the thing from scratch, right? How many have you heard this sentence before?). Boom.

I don`t suggest you produce better code on your nights and weekends, but learn how to do that, remember it when doing the development and if it`s really impossible to make it, tell your manager/ customer. Standard code reuse is similar to the documentation in a way: We will do that when the times allows. Means nearly never.

ABAP kiddos, managers, you all should educate yourself on the topic

Now your question is “why is he explaining the obvious”? For a good reason. I am trying to make my point that it is very important topic for the “ABAP kids” as well as the managers. As I said the last time: the thing I regret the most in my career is that I didn`t care enough about the standard, that it took me so long to understand. If you`re an ABAP kid, thing about it, get the feeling of the importance and try to spend some extra time in this direction.

Even if that sound unlikely I don`t think I spend more time reusing standard than I would spend building things from scratch. Why? Well, when you research the standard (something you have to do to be able to reuse it, right? We don’t know all dark corners of the standard from hearth), you think about things, you understand how are the built, what are the limits, opportunities and threats. You plan the development in your head. You realize how much you have to build and how much can you reuse. That comes handy many times in future. That time is not a waste.

I promise I will write a blog about my tricks how to debug and reuse the standard, so if you want to compare your ways with mine, we can do that soon. If you have no clue how to start, hope my coming blog will help you to start.

Make researching on SAP standard a part of your personal development strategy. There are plenty of blogs about how to work on your skills and grow. Like the one by my friend, Learning and using new technology. But you must not wait for this to come to you. You can expect your boss to teach you. First step is to realize the importance and the second one is to do things the more difficult way so you learn new stuff. Ask for code reviews WITH explanation. Maybe even review the codes of your friends and/ or colleagues and ask them question: “why did you do this way instead of that way?”

If you`re a manager, development team leader or a quality assurance guy, it is your responsibility not only to prevent others from transporting fluffy stuff to the QA and PROD systems. It is also about helping the developer understand why they should do this and shouldn`t do that. If you don`t educate them, how can you blame them?

To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Former Member
    I love the thought behind the blog, and I totally agree with it.  Hence blogs, comments, etc that I write.  Someday…

    Almost never?  When I say only when I don’t have time, that is what I mean. Almost always, I write in reusable code. 

    Anyway I’m just talking about the end of the project when you are already working nights and weekends.  That’s when I flip back to structural programming and not objects.  My brain is just too tired to think the new way.

    My goal is – of course the point you are making in this blog – to get to the point where witting objects, reusable code is second nature to me.

    We do a code review here.  We try to do a check to determine reusability.  We also look to see how the class has been built.  Sometimes it hasn’t been built so well.  Yes, it is a secondary job for all of us.  We do a peer code review.  It is not a full time job.

    QA – well QA keeps track of our documents.  Our boss – does very good as a boss.  However, she doesn’t review our code.  You are right – she would never have the time.

    Long comment – sorry – I just had to respond 🙂


    1. Suhas Saha

      When you start a project afresh your brain is all buzzing with energy. You try to use all the sleek OO techniques you’ve learnt, run runtime analyses to check the performance for your code etc. to build an optimal(and reusable) code.

      But as the project nears go-live and you’re feeling the pressure of finishing the job, you fall back to your tried-and-tested techniques. You don’t have time to compare if the Select using INNER JOIN is better than the one with FAE etc.

      Is it the typical Software “Developer” Life Cycle in a particular?


  2. Former Member
    I wanted to say thanks for this.  I’m new to ABAP and SAP.  After 10 years in Cobol and SQL ABAP is easy, the big learning curve finding and reusing the standards that’s hard.  I look forward to your advise on finding them!
  3. Steve Oldner
    Not having to document is enough for me to use and abuse the standards.  My specs now always have changing or modyfying this to SAP standard… or SOL(State of Lousisiana) standard…, or a combo of both!

    It really allows me to work faster, and when the standard needs to be tweeked for a project, it makes me really look good 😉

    Keep up the message!

  4. Former Member
    Important is also to consider the stability of your code against reusing SAP code, because it might change and anyway be release and SP dependent.

    The best place to start looking is transaction BAPI (stable and released interfaces to SAP Business Object Repositories) and then re-use how those BAPIs are called (package dependency, etc).



Leave a Reply