Skip to Content

My biggest mistakes as an ABAP Developer

This is not a blog about code errors and/or best practices.

It’s always great to talk about cool things we’ve made throughout our careers. But our mistakes can really push us to rethink our values, conduct and how we interact with people. They can make us better.

I’ve made tons of mistakes as an software developer. Here I’ll talk about four of them, the ones that really had an impact on how I act not only in my job, but in my whole life.

Believe that programming is the only thing that matter

It’s easy to fall into the mistake of thinking that programming is the one and only thing that matter in the IT world. Specially when you’re an unexperienced programmer, without much vision on how this industry works. Basically I thought that technical people were the only ones that actually did something, and that everybody else just spent time chasing their own tails instead of doing what had to be done.

However, the mechanics of this world goes way beyond programming. There’s a huge amount of people involved in the process of making any programming happen and every single one of then are equality important.

At the time I realized this, I became a much better developer.

Not hearing a senior developer advice “just because”

Let’s say you spent countless hours debugging an standard process, turning someone else’s code upside-down in the search of a solution for an error. Google and SCN couldn’t help you. You truly believe that you read everything there was to be read about that issue and started thinking there wouldn’t be any solution.

But then an experienced developer shows up by your side. You tell him your sad story already “knowing” he won’t be able to help. Your mind thinks this is a problem that can be solved by few, if any – after all, you’ve spent too many time searching for an answer that still could not be found.

He thinks a little and gives you a really simple answer. The one that “just can’t be right”. The one that seems outrageous to your mind. Your pride ignores the advice and you get back to Google for a few more hours. It just can’t be that simple.

… however, something tells you that his theory must be tested. You go and change that small IF condition in your BADI. Everything works.

Turns out the solutions was not simple, it was something created based on his experience. Not being able to see that is a big mistake.

Underestimate someone because of their age

One time I was assigned to a project where I had to build the structure of a complex program. The process was full of small rules, various paths and some crazy features, all needed to automate a big user requirement. I’ve used ABAP Objects to solve this, drawing UML diagrams and creating mockups during the BBP, which would be used to create the code in a future project phase.

I didn’t know which developer was going to be assigned to implement that project, but I asked for someone that were opened to work with OO, Trello and that kind of stuff. But our client liked one of our developers, a guy who’s after his 50’s, and asked for him.

When my boss told me that guy was going to be the other ABAP developer, all I could think was “this is definitely not going to work”.

The guy really didn’t understand basic OO concepts. Inheritance, polymorphism, visibility, and all those things. However, I’ve seen very few people showing so much passion about learning. During the project I took my time to explain every single concept to a point where he was able to contribute in solving a complex part of my design. He was able to use abstraction to reuse something in a way I wasn’t expecting. The solution he though got implemented and was way better than what I initially created. I remember getting really happy when that happened.

I was totally wrong underestimating this guy based on his age. I like to use the term “ABAPossaur” to describe ABAPers who are programming in 2015 just like they did in 1999. But being an ABAPossaur has nothing to do with age. It’s about how passioned you are about what you’re doing. I’ve been able to work with two guys that totally changed the way I look to older developers (this story is about one of those devs), and I can’t thank them enough for that.

Of course there are some 50’s ABAPossaurs out there, but I bet there’s way more ABAPossaurs in their 20’s or 30’s.

Blaming someone else for my mistakes

Believe me when I say that I hate people that blame others for their mistake. Really. I’ve always been like that since I was a child, and I’ve always assumed I was wrong every time I screwed up something. But there was one time, when I was 2 years into the ABAP world (now I’m a 10 years old ABAPer), that I blamed another dev for an error I’d created.

It was just an small problem reported by our client, in a program I made together with another dev (an intern who had just started with ABAP). It was clearly an error on my code, but I told the project manager that it happened because of the intern.

The reason that lead me to do that was the perception I had that my manager was really angry with me. Previously I made a huge program with over 6k lines of code (the FS had over 40 pages) that was constantly showing problems in QAS. Later, at the feedback meeting by the end of the project my manager told me he knew he couldn’t ask for a 2 years old ABAP developer to make everything right in such a huge development, but during the project I really thought that amount of errors showed how unprepared I was to work with software development.

That’s why when I saw that small READ TABLE problem, I didn’t give much thought and reluctantly said that the error was caused by the intern. At the moment I finished those words I was already ashamed of myself. There’s was nothing to do, it couldn’t be un-said. It was done.

However the intern, a man I respect, called me to the coffee room and confronted my words. He said that I was completely wrong by throwing him in that situation, as the error was clearly mine. I agreed in silence, returned to my manager, apologized and told him that the error was caused by my code. It was the right thing to do.

Everything I just said happened over something like 10 minutes, between I blamed the intern, confronted him and apologized to my manager. But it marked me for life.

How many times I’ve seen people on the SAP world blaming others for their mistakes? Plenty. And every time I see this situation I always remember this story and how bad I felt about myself when I said those words. How someone can tell so many lies without felling any guilt? It’s extremely bizarre.

To err is ABAPer

Everybody makes mistakes, including ABAPers. Just try to learn something from them.

If you feel comfortable about it, I ask you to share some of you biggest mistakes in the comments section. You can learn something from showing them to people,as I certainly learned even more just by writing this.

Thanks for reading. See you next time! (and it’s all your fault! 🙂 )

*This is a cross-post from my personal brazilian ABAP website called ABAPZombie. We want everybody to get rid of zombie-mode!

You must be Logged on to comment or reply to a post.
  • But being an ABAPossaur has nothing to do with age. It's about how passioned you are about what you're doing.

    ➕ I would rather work with "someone who does not know" rather than "someone who does not want to know".

    How many times I've seen people on the SAP world blaming others for their mistakes?

    ➕ ➕ I think people forget, " To err is human (or ABAper)" It's perfectly natural to make mistakes & if you don't make mistakes it means you are not trying hard enough 🙂

    • I would rather work with "someone who does not know" rather than "someone who does not want to know".

      Exaclty, and like I said there's tons of young people who doesn't want to learn anything. PERFORM handle_data is more than enough.


  • Specially when you're an unexperienced programmer, without much vision on how this industry works. Basically I thought that technical people were the only ones that actually did something, and that everybody else just spent time chasing their own tails instead of doing what had to be done.

    Well Said.....

  • Hi,

    Nice blog.

    Love when someone is this straightforward.

    this are some of my biggest mistakes:

    1.- Telling in public to my boss that he didn´t have a clue about WM

    (he thought he was the ultimate ABAP guru)

    because he happened to be the CEO´s best pal.

    From then on he made my life a nightmare and i had to quit.

    2.-Expecting that somebody in my company was going to thank me for what i thought was a good job done. For some people the word thanks is taken for granted and needs not to be said.

    So as you can see my biggest mistakes do not have to do with code.

    I have way more mistakes to include here but i do not want to write an essay about them.

    Best regards.

    • Pablo,

      there are some unwritten rules in everybodies business and you have learnt it the hard way. So I might say: This is not a mistake, this is just *** 😛 😥 😈 .


      PS: Luckily you have learnt your lesson. So be prepared in future 😉

    • Pablo Casamayor wrote:

      1.- Telling in public to my boss that he didn´t have a clue about WM

      (he thought he was the ultimate ABAP guru)

      Ha-ha-ha! High five, Pablo! 😈 Well, I'm sure you're better off without him/her anyway. It's never a positive  experience to work with people like that.

  • Pretty spectacular blog for a 10 year old. 😀

    Making mistakes is not just human (heck, even SAP messes up - look at all the notes!) but it's part of any learning process. And I find that development is usually the constant learning stream.

    My biggest ABAP mistake? Well, once a misplaced IF... condition caused the frantic calls to several colleagues at 4 am to help with fixing few hundred orders that accidentally got closed by a program. Things I've learned: a) more testing! b) VF11/VL09 c) maintain good relationships with your team, so that they don't kill you after getting a 4 am call caused by your screw-up. 😳

    P.S. Would it make sense to move this to the Career Center space? I don't object to this being posted in ABAP at all but it's not really ABAP specific and could benefit from wider exposure. It's up to the moderators though.

    Thank you!

    • Thank you very much Jelena Perfiljeva !

      Once upon a time me and my co-workers hit and F8 by mistake while debugging some production Z code (yes, we had an firefighter with permission to change things in debug). That's how I learned about maintaining good relationship with my team and my client 😀 .

      About moving this to the Career Center space, I think it makes sense. I just blogged this into the ABAP Place because it's feel natural, since I'm an ABAPer...  But I agree the topic can be expanded to other areas as well. Do you know if someone can help us on this?

      Best regards!

  • Hi Mauricio Cruz,

    Just a year in SAP, I made a mistake recently. Won't ever forget the jitters i was in. My seniors were the ones who calmed my nerves. Connected with the above content. Articulate and inspiring.

    Thanks and Regards,


  • My worst error was avoiding networking in my early days as developer.

    i'm pretty shy and close, preferring relationships with machines *blow a sweet kiss to my laptop* over people 😀

    Seriously, i got problems in networking, but it's damn useful, as i discovered lately.

    • I have a friend who's struggling in developing his human skills. It's not an easy task for people that are shy and close, but network and such are essential in the SAP world.

      Thanks for commenting!

      • Oh, yes, networking is essential in whole work world, not just SAP's one 🙂

        The thing makes me laugh is that when i lead a team on some project, people say (maybe lie!) they found themself well working with me.

        Maybe a bit more of self confidence help (and i'm speaking to myself too)

  • I think people forget, " To err is human (or ABAPrs)" It's perfectly natural to make mistakes & if you don't make mistakes it means you are not trying hard enough .........

  • I really like this post, it is all true and I try every day to avoid these mistakes, it doesn#t works everytime, but I will go on trying.

    And I really love the term ABAPossaurs 🙂

  • Excellent post Mauricio, I enjoyed the part of "underestimate someone because of their age", sometimes we become proud and when we see something like that, we change our thoughts, for no one can know everything (And learning is VERY good 😀 )

    P.S.: See you in Inside Track in São Leopoldo/RS :D

  • I like this post as it reflects the social part of software development. Instead of blaming people, because of their failures, you should be constructive and help them out 🙂

  • Dear Mauricio

    Back in my early days as junior ABAP consultant I and my inexperienced colleagues made a couple of mistakes at an external customer who got quite upset. The reaction of our superior was to take all the blame from the customer and cover us so that we could fix the problems in the meantime. Great leadership behaviour having a great impact: we never caused again such problems.

    Only once in my SAP lifetime I came across an arrogant ABAP programmer who despised (business) users, these "blockheads" sitting in front of SAP systems and lacking any understanding of what is going on behind the (ABAP) scene. This happened in 2002(?) at SAP Switzerland in Regensdorf in a SAP course about dialog programming (controls, etc.). Dialog programming like Drag&Drop is really cool ABAP stuff yet this arrogant IT guy did not see the irony that DIALOG programming is all about creating a great user experience (when the user is in dialog with the IT/SAP system).

    I am not an IT guy because my academic background is biochemistry and I am holding a PhD in molecular biology. During my PhD I read many scientific papers all of which concluded that based on the current knowledge and the experiments that had been done something is (most likely) possible. I read only a single publication saying that something is (most likely) NOT possible. Proving the absence of something is extremely difficult (in science).

    Translated into our SAP world I tell the business users metaphorically: "Why beholdest thou the mote that is in thy brother's eye, but perceivest not the beam that is in thine own eye?"

    Example request (or blame): "Our warehouse partner did not send the goods receipt message!"

    Then I ask the business user(s) and myself:

    1. Was the stock transfer delivery packaged into handling unit? (If not no EDI output will be generated.)
    2. Was the EDI output (DESADV IDoc) generated for the delivery? (There are VOFM rules that may suppress output.)
    3. Was the outbound IDoc transmitted (green status in IDoc monitoring visible)?
    4. Was the IDoc received and processed by SAP-PI?
    5. Was the EDI output (EDIFACT message) dropped onto the EDI server and forwarded to the clearing center?

    Only if WE can say 5 times "yes" to these questions then we have the permission to get in touch with our business partner who may or may not have made a mistake on his side.

    In the meantime the business users do all the necessary checks they can do themselves before contacting any HelpDesk or even the business partner.

    This leads me to a final remark. Reading through your blog it seems to me that you have made already the transition from an ABAP developer to a SAP developer, from a developer thinking in terms of (ABAP) coding to a developer thinking in terms of processes.

    SAP is about business processes of which ABAP is one (important) part besides customizing, user requirements and expectations, general conditions, legal restrictions, integration aspects (EDI), etc.

    As SAP developers we should help to design business processes that have distinct checkpoints which, ideally, give us a clear "Black or White" (Yes or No) answer to facilitate troubleshooting.

    Example: "We have not yet received the (EDI) purchase order from this customer today."

    The checkpoint for this business process was our EDI server which communicated with the clearing center partner. Since the clearing center had a 100.00% reliability it was clear that the absence of the ORDERS message on the EDI server meant that the EDI customer had a problem. Or in other words: this checkpoint assured the absence of an internal error (i.e. no beam in our own eye).

    Best Regards


    • Uwe Schieferstein wrote:

      Only if WE can say 5 times "yes" to these questions then we have the permission to get in touch with our business partner who may or may not have made a mistake on his side.

      Or we can just blame BASIS. It always works. 😉

  • Awesome blog!!!!! Totally agree with "To Err.... & .."part....

    Really I never understood how does blaming someone or pointing someone for an issue helps in resolving it 😀

    But people somehow tend to feel point/blaming is part of root cause analysis...which is not.....just resolving is enough with knowledge sharing....

    Again nice thoughts shared!!! and its g8 that this blog was shown on home page of 🙂

  • Nice blog Mauricio.

    However, my biggest mistake was with code only. I misplaced one '( )' in a select statement. It was just a WHERE clause and I made the closing bracket ')' in a wrong place. Then the report which was in turn creating a job in SM37 was running for 2 days when it was running max of 3-4 minutes earlier. It was my initial days of ABAP and I didn't have much clue on this. However, my client was good to not escalate the same as I had a good contact with them.



  • I remember a incident , i spent 2 days in debugging and finding out why the FSCM orders are locked in the system , running through 100 lines of custom code in which i have locked the specific order , and after 2 days of blaming other background jobs or something , i discover the ultimate truth that the variable in lock argument was empty and all the orders were locked because of my one silly mistake.


  • Hi Mauricio Cruz,

    I am not an ABAP developer but I can relate to almost every thing you said. Sharing similar types of mistakes. Gladly I was handled by good mentors to help me recognize all this very early. I truly believe your blog will help many others to become better professionals. 🙂

    Thanks for sharing it


    Pankaj Pareek

  • When I was a young, innocent but arrogant developer, I used to think that there was only one right way to do things: MY WAY.

    That was a huge mistake and thankfully I'm over it, now.


  • I thnk that it could be nice suit of articles about mistakes of dfferent SAP employee. Thin one is useful. Who will be next time? AGS? Consulting?

  • Congrats Mauricio, nice post.

    This kind of post makes people think about the variables that we don't really think every day: that we make mistakes (and it is ok), others make mistakes (and because we recognise ours, its easier be nice with others) and people around us is important (not only the code that they do).

    That was my biggest mistake in my first ten years in development: forgetting the people and going straight to the tech argument.

  • Excellent post. Congratulations Mauricio!

    Those are very valuable lessons, not only from a professional point of view, but for every aspect of our everyday life.

  • Wow! this blog really caight my was excellent.....

    What I can say from my 10 years experience in ABAP is that the ABAPer should also give some feed back to the people that created the specs with the objective to understand why they want it done, perhaps you could uncover some hidden errors in the specs or just to know what you are working with, it will increase your experience in business processes

  • Hi all,

    big big mistake (for me) is use an ABAPers to cover ignorance, some people say: <<sorry you could go to debug through the standard code for this "problem" ?>> or <<Can you find with debug why this happens ?>> ... tell the truth, how many times ? 😡 (sorry for the rant)

    Then I say my cutest error as developer (4.7 rel. maybe): apply an Oss note, transport to quality system and try it, without any error 🙂 (I think good!!)

    So I transport that in production system (I think good); while Oops... has started to involve too many dump processes for "only 1 Oss Note" 😕 - It was just a new method of new CL_GUI_FRONTEND class ... then I discovered what this new class what was !!!

    Wow... it re-generate all sapgui-logon, the 100% of dialog WP Killed 😯

    Bye... D

    • Normally the trick is to wait a while. I guess in this case you could only have known if you imported in the middle of a test in QAS and they actually were testing.

      Impact analysis might help. Experienced instinct and having someone +50 onboard is also very handy all day long 😉



      • Hi,

        yes, and analyzing this case there are some several errors:

        1) the impact of the oss note, without any notation or warning ... then SAP has improved in subsequent versions

        2) the QAS system isn't a runtime system... so the test was only static, and it works 😛

        3) maybe the oss note must be transported without any activity ? Perhaps a stop of 5 minute would be better ? - But "who can stop the rain from falling ?" -

        Bye, D

  • Hi Mauricio,

    Thank you very much for sharing some of your experience. I have just 1 year as an abaper, but I'm pretty sure that I'll remember some of your words for a long time, because I really felt identified.

    Best regards.

  • I remember , i was testing one of my program over weekend by changing few values at debugging and somehow unknowingly I deleted an entry from Table T000 which resulted in deletion of Entire Development Client...

    I am sure I will never forget this mistake in my entire career…

  • Hey guys! I just like to say a big thank you for everyone who read, commented and tweeted about this blog until now. I was on vacation and wasn't able to respond and interact accordingly, but I'm very happy this made the SCN front page and the SCN newsletter.

    Best regards to all of you!

  • Nice words Mauricio. As much true about life in general as ABAP - with one exception - us functional consultants will always and forever continue to blame the technical consultants for failures of code and developments, and the technical will always blame the functional for the poor functional spec!! But as long as the respect for the other is there, we can live with this!!