In this paper, I will try to summarize my experience about being an ABAP developer. I work professionally in the SAP market since 2000 (in Turkey / Germany); you can say I’ve been around the block a couple of times. Still, this is not a scientific paper. It is rather my own subjective experience on the subject.
It is assumed that you have a common knowledge about SAP and ABAP.
ABAP is not a difficult language to learn. It has similarities with Pascal, and a significant portion of its commands are actually pure English. Check a couple of examples:
- MOVE-CORRESPONDING x TO y.
- DELETE ADJACENT DUPLICATES FROM table.
- SORT people BY NAME.
A common roadmap for ABAP cubs would be:
- Report programming
- Batch Input / BAPI based programming
- SmartForm / SapScript
- Dialog programming
- Object Oriented ABAP
- Special topics; such as: Integration, Web Dynpro, WorkFlow, IDoc
If we look at the roadmap from a different angle, you will be chasing the following titles:
- Junior Developer (first 2 years)
- Mid-Level Developer (2-6 years)
- Senior Developer (6+ years)
Those values will give you a general idea; but there are always exceptions, both positive and negative. I personally know senior developers with 4 years of experience, or people having 8+ years of experience under their belts whom I would call mid-level. It is all up to you. You need a passion to solve complex business problems and a natural talent in programming to be successful.
ABAP is neither too difficult nor too easy, it is just like all other platforms – it has a certain learning curve. What makes SAP a bit different is; the system is 40+ years old. It has evolved throughout all those years – to the point where you can do modern object oriented programming; involving override methods, duck typing and whatnot. Similar to Java -> JSP or C# -> ASP.NET, it even has its own web development platform. However, 40 years old commands and technologies are still present in the system for the sake of backward compatibility. This may be confusing for cubs – you will see that the same thing can be done using 3-4 alternative techniques and you might wonder which one is the best. You can learn that over the time, by asking experts and reading forums.
This is a property of SAP which I personally dislike because it allows people to stop developing themselves technically. I met ABAP programmers having 15+ years of experience who stopped developing themselves after SAP 4.0 (current version: 6.0); which means they are still using techniques which are 10+ years old. They might survive and get away with it in some clients – if there is no one to question the quality of their work. Obviously, the quality of their code will not meet todays standards. That’s why I do technical interviews before accepting members to ABAP teams that I manage; I try to eliminate outdated coders as much as possible.
Mastering the technical aspects of ABAP is only the beginning. Meanwhile; you should be developing the following additional skills:
- Algorithmic dexterity. Knowing the syntax of a language is one thing. Developing solid, simple, high-performance and easy-to-use algorithms is another thing. This is a skill which you will develop over the time, and you will start having your own codebase. It is said that bad ABAP programmers write code which doesn’t work. Good ABAP programmers write code which does work. Best ABAP programmers wrote it before and have it in their stash.
- SAP standards and capabilities. SAP is neither a river nor a lake. Having 40.000+ database tables, it is a vast ocean. Even after 10+ years of consulting, you can still be surprised by a new functionality that you discover. “Wow! someone thought of that before? I didn’t know that SAP could do that!”
- SAP modules. No one will expect you to be a module expert. However; the preferred ABAP developers are typically the ones who know the general logic and common scenarios of the corresponding SAP module (FI, SD, MM, CO, PP, etc) as well as it’s major database tables + fields.
- Industrial knowledge. Although it is usually not a must; a developer having experience in the industry of the client will probably be preferred over others – assuming that their technical levels are similar.
- Human skills. In the world of SAP, you can’t simply be a shy nerdy programmer and expect to climb the career ladders. You will not only have to work in teams constantly; but as you develop yourself technically, you will also gradually be involved in decisions, discussions, test organizations, sales meetings, negotiations, corporate fights, etc. You got to know your way around in dealing with various kinds of people if you want to survive.
How To Start?
There are several things you can do as an ABAP developer. You can start your ABAP career in one of the following areas.
Education: There are certified institutions teaching ABAP and other SAP subjects. You can jump-start ABAP in one of those institutions; however, don’t expect to be a senior level developer when you get out of the course. Don’t even expect to be respected and paid well yet. The “academic” ABAP training will teach you the syntax and provide your first hands-on experience (typically for a high fee) and reward you with a certificate if you pass the international exam. However; as mentioned before, becoming an ABAP guru requires long years of project experience and additional skills which can only be developed over time. Nevertheless, if you can afford the fee, it is a good solid way to start your ABAP career – just don’t forget that it’s nothing more than a “start”.
Consulting: SAP consulting companies occasionally hire new talents. You might be one of them. Organized companies already have career plans for ABAP cubs – this means, you will become an initial training and an agreeable career path. In less-organized companies, you might have to chase senior developers and beg them to teach you a trick or two. But in either case, you will actually be learning ABAP yourself. If you solely depend on training programs or teachers, you will fail. You have to take responsibility of yourself and make the most of your time. Accept trainings and senior developers as valuable sources of information, but in the end, it is a road you will take yourself. Many consulting companies follow the strategy of hiring a large number of new graduates for a trial period (3-6 months) and keeping the really talented ones & getting rid of the rest. So, you are responsible of what happens to you. One more hint: You don’t really learn ABAP until you start attending projects. Do your best to find a place in a project, or at least in the support team for starters.
SAP Clients: Large companies using SAP typically have their own ABAP team – simply because it is cheaper than hiring 10 ABAP consultants full-time. If they have a need for fresh team members and if you can pull off a convincing job interview, you can become part of that team and get trainings and documentations and whatnot. However; you will get stuck with one industry and one set of problems & solutions. Besides, best developers usually don’t prefer to get stuck with one client unless they have a good reason to; so chances are, your colleagues might not be the best developers in the industry. Client side is a nice place to retire – after getting married and having kids and everything, if you want more dependable working hours and less travel and can settle down while earning less (unless you become a managerial position), the client side is what you are looking for. However, it is not a good place to start unless you want to be gimped. There are few exceptions though – I personally know some SAP clients who follow technological developments better than consultancy companies. Their teams are always forced to learn new technologies and they even force SAP consultancy companies to provide support on new subjects. For a good start at the client side, this is what you should be looking for; but it’s rare.
Whatever you do, make sure that ABAP is not the first programming language you learn! Due to it’s ancient roots in history, it can limit the programmers vision. Starting with a modern programming language (such as Java or C#) after ABAP might be extremely difficult. If you learned a modern programming language in school and made a project or two, you are good. No, Cobol or Pascal doesn’t count. Otherwise, you might have brilliant ideas in the future, like integrating SAP processes into IPad or something; which you can’t implement because IPad development is “just too different from SAP”.
How To Advance?
So, what will happen if you manage to become an ABAP guru? What kind of a future is expecting you?
First of all; SAP is a huge market which is ever-living and ever-evolving. Leaving crisis scenarios aside, such as nuclear wars, economical crisis, huge asteroids, etc, it has always been there and it will probably be there for a long time because SAP is the leader of the ERP market and has a huge number of clients all around the world.
You will be typically working on one of the subjects:
- Implementation, where you typically will work at the client site.
- SAP implementation projects are long-term projects where a company purchases SAP for the first time. It obviously involves installation & configuration & development on the SAP system; but it also involves a heavy load of business analysis, change management, training, documentation and time pressure.
- Sub implementation projects are mid-term projects where a company having SAP already wants to have a new functionality requiring considerable effort.
- Full time support is a model preferred by large clients and it involves you sitting on the client site, working on their daily requirements, problems and bugs. Typically, there is a ticket system present and you are expected to resolve a high number of tickets, meet quality standards and document everything you did.
- Call based support is a model preferred by clients who don’t constantly need support. They make an initial agreement with a consulting company, and whenever they need SAP support, they simply call in and a consultant (you) solve their problem remotely or on-site, depending on the situation and contract.
Ideally, a good ABAP developer should have experience in both implementation and support subjects. Implementation projects let you see the whole cycle and get into business analysis, while support contracts let you get into details you didn’t know about.
Because SAP is being used globally, you might also consider working abroad. The SAP + ABAP experience you gained in your hometown can directly be transported + sold in another country; that’s one of the major advantages of SAP – it is global. If you have a work permit for your target country, it is relatively easy for an experienced SAP consultant to find a project and settle. Otherwise, you might get trapped into a recursive trap where the embassy won’t give you a work permit because you don’t have a job and the client won’t give you a job because you don’t have a work permit. For Turkish readers, I recommend reading my article about how I managed to get a SAP job in Germany – https://keremkoseoglu.wordpress.com/2011/06/22/almanyada-calismak-ve-yasamak/ .
In all industries, good experts are always welcome and SAP is no exception. If you have developed your technical and non-technical skills, proved to be dependable & agreeable and maintained your visibility & social network within the industry, you can have a satisfying and prestigious position and earn above the average.
Your position might be;
- Consultant at a SAP consultancy company. You will earn well, but will have frequent travels and work overtime. However, you are backed up by your company for technical advancement, finding new projects and a stable income. Your income will have a positive correlation with the daily rate your company is billing you with.
- Consultant at a SAP client. You will earn less than a consultant, but will have more private time in return. However, your technical advancement will probably slow down; as discussed above. If you can pull off a managerial position, you are golden – but you will need a track record to prove your managerial skills. Having experience on managing ABAP teams or a few SAP implementation projects won’t hurt.
- Freelance SAP consultant. As long as you have contacts to fill yourself full-time, you will earn much more than the two above and have the flexibility to decide where and how intensive you want to work. However; you will have new problems as a freelancer, such as: Developing yourself further, maintaining and expanding your business network, chasing new contracts, dealing with payments & taxes, dealing with periods of no-contract (meaning: zero income). You have to start a small company to be a freelancer and have an accountant. Consult him/her to determine what kind of company suits your financial model best.
- Company owner. Starting your own company in partnership with a few other (possibly freelancer) SAP consultants sounds like a great idea, doesn’t it? All advantages of being a freelancer and no disadvantages; cool eh? Well, the sky is not always that blue. I have seen many freelancer-union-companies fail due to two reasons: 1) It is inevitable for a pack of Lonely-Alfa-Wolves to disagree on things, and some disagreements can be fatal 2) Being technically competent doesn’t mean to be a good manager. Management is a field of expertise by itself; just because you are an ABAP guru doesn’t mean that you have the required managerial skills to run a company. Nevertheless; I have seen humble beginnings turning into success stories as well. Just be careful about the pitfalls.
- Trainer. Typically, ABAP training is not a full time job. Trainers are usually experienced ABAP programmers; freelancer or from a consulting company. However, this is also an alternative that should be listed here.
ABAP programming is neither a “good job” nor a “bad job”. If it suits your personality and natural traits, it is a good job for you. Otherwise, it is not.
That being said; if you can make a good jump-start and survive the initial learning curve (5+ years) by proving yourself in terms of technical and non-technical skills, it is a fun and prestigious job where you can earn more than average – but don’t expect to be the next Steve Jobs. You will meet new people all the time, visit many companies, see various organizational cultures and solve new and interesting problems using your skills continuously. It can be tiring at times, but it rarely gets boring, if ever.
However; if you have doubts about your natural traits and covering the technical & non-technical requirements discussed above, or have reasons not to travel and working overtime, ABAP development might not be the best alternative for you.
Since SAP modified it’s marketing strategy and included small & mid-level companies in it’s target list, the number of consultants on the market increased over time. In my opinion, the market is not full yet; but we are certainly one step closer to the day where the best developers are picked from an excess supply of ABAP developers and “lesser” ones are trying to cut down rates so they don’t starve. Therefore, make sure that you have a genuine vision of yourself becoming one of the best in the industry. If you have doubts, work on them before deciding.
I would recommend talking face-to-face to industry experts having 10+ years of experience to figure out if you are suited for the job. They might tell you they are busy, have no time, etc – this is a hint about the fact that time is the most scarce resource of ABAP consultants (because they sell it for a living). But if you can pull off a conversation over coffee or something, you can get an ad-hoc overview of a possible ABAP career path.