Showing posts with label Evolution of ABAP Consultant. Show all posts
Showing posts with label Evolution of ABAP Consultant. Show all posts

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.

Saturday, March 17, 2007

Evolution / Lifecycle of the ABAP Consultant

SAP R/2, SAP R/3, MySAP.com, MySAP, SAP Enterprise, ESA, ERP2004, ERP2004 Jan*, ERP2004 Feb*..., ERP2005,ECC4, ECC5...SAP Basis, SAP WAS, SAP Netweaver Application Server...,SAP BW, SAP BiW [ ERP2004 Jan*, ERP2004 Feb* are for the Jokes only ]

If you are not confused already with all this then probably you need to learn more about SAP.Eventually, you will. The evolution strategy of SAP products and some mixing of marketing with the technology, by SAP, helped in creating a part of the confusion. Rest is probably because the hard-disk of our average brain is a mismatch for the processor speed of guys at Walldorf.

On the lighter side, you may wonder about the connection between processor of SAP Product Developers/Marketing Managers, with our (Customer's) resources and the analogy may not be technically correct. Remember when you raise an OSS message to SAP. Even if you point an exact problem in the SAP standard program/FM, with the exact version and it has nothing to do with the config of your system or data, still they will not progress it unless they check the same in your system.

You wonder why they can't check the error in their own system especially when you told them already that the error can be reproduced in any ECC6 system. But then I assume that they have a server for each versions of SAP. [ And that they are competing with Google in terms of Servers/Data centers ;-) ]

However, my intention here is only to discuss the terminology used for the roles of SAP ABAP Developers and try to define the evolution of an ABAP Consultant. You must have gone through the debates of ABAP vs. Java. While Java is regarded as a better language for general Application programming, ABAP seems to be better for business applications due to its tightly integrated database interface and ease of coding. OK, forget about the language wars for the moment. Check this nice Blog by Martin.

But when the comparisons were drawn between the Java developers & ABAP consultants, regarding their suitability to SAP application development, then it was ABAP consultant's business/functional knowledge and ability to understand the various transactions/tools/configs/existing integration technologies, which almost made them indispensable, at least for a few years to come.

I am not trying to make a point here that ABAP developers can do without learning Java upgrading their skills from a long term perspective .

I am just trying to understand, the typical Lifecycle ( or evolution, if you like it ) of an ABAP Consultant. At the moment, it is based on my perception that can be discussed further and improvised. In case, a conclusion can be drawn then possibly we should be able to standardize the terminology related with SAP Developer's role.

The picture that you see is just an attempt to draw your attention and may not actually be helpful for the exercise. [In the same way, that we are generally not able to relate our perceptions of the SAP architecture with the architectural-diagrams of those power-point presentations].

In this Blog, I am just listing the roles, based on the technical/functional capabilities of an ABAP Consultant, and will try to explain the evolution in details, later. I've not taken into account Team Lead/Technical Manager/Project Manager roles here as these are related with their management capability.

In a normal service/small implementation projects scenario, the roles can be indicated as:

  • ABAP Trainee
  • ABAP Programmer / ABAPer
  • ABAP Consultant
  • SAP Technical Consultant [ or even SAP Techno-functional ]
However, in a product development scenario / big implementation projects involving huge developments / integration with other systems, it can involve:

  • ABAP Trainee
  • ABAP Programmer / ABAPer
  • ABAP Consultant
  • SAP Technical Consultant / SAP Techno-functional / SAP Solution Architect
  • SAP Technical Architect
In my next Blog, I'll try to map the evolution stages of an ABAP consultant with these roles, and the traits which are required for a particular role.


Add to : del.icio.us

Copyright