Career in ABAP

1464-ppt

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.

Technical Aspects

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.

Additional Skills

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.
  • Support
    • 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.

Conclusion

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.

End-Of-Selection.

18 thoughts on “Career in ABAP

  1. Yazınızı çok faydalı buldum, özellikle benim gibi bu işe başlamayı düşünen kişiler için.
    Sormak istediğim birkaç soru var, size ulaşabileceğim bir mail adresi vermeniz mümkün mü?
    İlginiz için şimdiden teşekkürler, iyi çalışmalar.

  2. Dear Kerem,
    I am Rekha Working for SAP LABS INDIA . I am currently with the SAP CRM development support team. My main job is to fix the clients SAP CRM system issues. Just I have completed 3 years. But I have not done any projects …. How can I get project experience ? How Can I widen my knowledge ?

  3. What do you think of SAP HANA?
    I am a junior level ABAP programmer and I agree with you regarding the fact that people shouldn’t stop developing themselves technically. Should I learn SAP HANA in my spare time, or wait for a couple of years until more clients will start using HANA and continue my career path only with ABAP?

    • My recommendation is focusing on ABAP as your main-spec and HANA on your off-spec (like a hobby). HANA surely has a good looking feature and professionals will be needed in this area. But without a solid experience in ABAP, your solutions may lack quality. Therefore; focus like 80% on ABAP and 20% on HANA. If you see increasing HANA possibilities around you, you can shift the weight gradually over time.

  4. Hello Kerem,
    I am a software developer from Kazakhstan. I have ~4 years of experience in SCADA\DELPHI related development and ~2 years of ABAP experience which I’m focused on now. For this 2 years my experience has covered most of topics releated to ABAP development in a couple of local consultancy company. Yet there are topics with lack of experience. The thing is that there are not much projects were one can gain hands on experience with such topics as OO-ABAP(I don’t even know why do people still avoid it), WebDynPro, integration stuff, HANA or Mobility. So I still want to develop myself as ABAP developer. And the question is what would You suggest? Or maybe there is a point to study one of functional module?

    • Timur; OO-ABAP is extremely important. It is the absolute minimum requirement in serious projects; especially in Europe. However, your own personal development is your responsibility and your own. If you feel like your consulting company doesn’t give you opportunities for technical advancement, maybe you should extend your vision to get some formal training – or joining another company where you can advance further.

  5. sir i have completed my engineering in computer science,i have a good opportunity in pursuing a sap abap career but i am also having a good offer from one the reputed banks in india..can you please help me to find choose a better career path?

    • Years ago, I have chosen a career in programming over a career in banking. However, this is a very personal matter. There are no good or bad jobs. Some jobs fit your natural traits & talents, and some don’t. You have to figure out which one does.

  6. Sir,
    I am confused whether to continue with SAP ABAP or to go for Java?
    I have experience of 1.6 years in ABAP on SAP R2 that too on a support project. I am interested in developement and coding projects. Don’t know whether there is enough development work in SAP ABAP.
    I am not interested in further studies. So I want to work in IT industry in technical side. I am not sure about the future of SAP ABAP developer. And also have to think from income perspective which is better SAP ABAP or Java?

  7. Abap Career Resources – Dr. Kerem Koseoglu

  8. Sık Sorulan Sorular – Dr. Kerem Koseoglu

  9. Hi Kerem,

    I am Srikanth. I have almost 3+ years of industry experience in java.. But it was
    a support project. I have never worked on any coding. and now when i look back i no knowledge on neither java or my work. I lam planning to learn SAP ABAP. So is it reasonable to move. And i am very poor in maths.

    so i am i suitable for programming. Kindly let me know your feedback.
    Thanks
    srikanth.

  10. Which of the below next career path should somebody with a 5 years SAP ABAP work experience should plan to take:
    – Java J2EE
    – C# .NET
    – Python/javascript/HTML5
    – Redhat Linux Administration

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s