Tuesday, March 20, 2007

Evolution of the ABAP Consultant - Part II


In my earlier post, I tried to divide the progression cycle of an ABAP consultant, from technical/functional perspective. Generally, an ABAP consultant starts with a focus on ABAP programming and then progresses further with his understanding of functional areas of SAP and its relationship with the SAP developments.

In the beginning of his career, he is just a programmer who may not be able to understand the complete picture in terms of requirements / functionality.
As a result he may not be able to suggest a complete solution, on his own. His perspective is very technical and he may not be in a position to discuss the requirements, with the users, in a business language.

Just as an extreme example: He will think as if "he has to write a BDC for ME21" and not that "the program should be able to create purchase orders in batch".

To elaborate further, with some examples:

ABAP Trainee: Like the pre-requisite of learning any other programming language, good analytical skill and logical thinking is required for anyone who wants to make his career with ABAP. Since graduates with Engineering/MCA/Maths background are considered to be better in the mentioned skills, some companies put this as a criterion for short-listing.

If you are not sure whether you are suitable or not, as a programmer, then you should try to read about the algorithms. First check, if you are able to understand the already given solutions in the text book. Then see if you can build your own logic for a few of the algorithms. At first, you might not find this easy but after a while you will start getting some idea on whether you can and would you like being a programmer or not.

Some of the beginners just try to get the knowledge on syntaxes and semantics of a programming language and then write a few examples from the text-books. Initially, it feels good to write a program and see the ‘Hello World’ printed on the screen but the fact is depending on your ability and inclination; you may or may not like being in the programming field, later.

In case you realize that programming is not your cup of tea but still trying to get into it due to financial reasons [Because someone told you that ‘SAP/ABAP is HOT’], then I would suggest find a career where you can really do well. Does not matter how ‘HOT’ a particular skill is in the market, but in the long run, it might not be beneficial to you, if you are not suitable enough. If you don’t like your work, forget about the career, you just ruined your life. I can sense my deviation from the original topic, but then that’s why I chose to write a Blog about it.

Anyway, coming back to the topic, an ABAP trainee should try to learn not just the programming language but also the Database concepts and general programming methodologies. Some exposure to SAP functional areas, SAP architecture, release mechanism and version control etc. is also required. After a few months of classroom & on-job training, around 6 months in total, he should be ready to work as an ABAP programmer or ABAPer. At this point, he has enough knowledge but lacks the skill and experience of real projects.

ABAP Programmer: With some experience, he will start understanding the technical requirements and can get some idea of the effort required to complete the tasks ( not the solution ). But he may not be able to understand the higher level business requirement as yet. Also, he may not be in a position to design and develop a complete solution. He will need assistance to understand the business requirements and one should not expect him to prepare the technical designs on his own, for relatively complex requirements. However, he should be able to code the Reports, Function Modules, routines etc. and can create database tables, as mentioned in the technical design.

He can also implement the user-exits / enhancements but only as per the technical design.
eg. User’s requirement that ‘At the time of Invoice verification, the payment should be blocked for a vendor-invoice, for certain conditions‘ may not make much sense to him. However, he can start working, after going through the technical design, which mentions somewhat like:
  1. Create a custom Database table to keep the business rules / conditions.
  2. Implement the BADI <> at the time of Invoice save.
  3. In the coding, check the invoice data with the business rules in the custom table.
  4. Now, set the block indicator on the subsequent FI document. An ABAP trainee will definitely require some help on the coding part of this step as well. He may not be able to analyse or foresee the SAP lock implications and update task consideration (while debugging). In fact, at first he might just declare that this BADI is not suitable, as the transaction didn’t stop at the given break-point, without realizing that a SAVE BADI can also be called from an update task function module.
I understand that my thoughts are very random and not as structured as it should have been so there is a good chance that I'll be revising it later :-)

For those who are still waiting for an answer, regarding their career related queries then I hope you understand: I am just preparing a background for that.

3 comments:

  1. Hey Ram,

    Me again...Very Clear instructions for the freshers those who are in dilemma in choosing ABAP Programming.

    ReplyDelete
  2. this is more of a question than a comment,
    I have heard two diff buzz words,
    "Sap consultant" and "ABAP Consultant" whats the difference, if there is a difference which pays better.

    Thanks in advance

    ReplyDelete
  3. Hey Ram.. Good one.. I have a quick clarification here. U said an ABAP'er would just be looking at the business reqmnt technically. That's right ! However, in layman terms how would you describe the functionality / role of an ABAP consultant

    ReplyDelete

Info : Comments are reviewed before they are published. SPAMs are rejected.

Copyright