Successful & Resourceful SAP ABAP DeveloperI have the privilege of being a ABAP developer for past 9 years and IT industry as a programmerfor 12 years and now being a ABAP technical expert and development manager for 12 SAPimplementations, I have come across different working patterns of a professional ABAPdeveloper. During this time I have met a few ABAP programmers that were very good withtechnical aspects and also some that were excellent ABAP development consultants who couldmanage every aspect of a SAP development project whether undertaking a custom development,BADI implementations or enhancement project. Remember that as a technical SAP expert youare the critical piece of a project responsible for realizing the vision of SAP customer businessprocesses into production. I think it is very important to know a lot of different programmingaspects during an SAP implementation project and follow certain guidelines that can make anSAP ABAP professional very successful in your career.Steps for being an Efficient SAP ABAP Programmer or SAP Technical Team Lead1. Review Business Requirements & Write Functional SpecificationThe first part of any ABAP development project begin with meeting the end users or businessexperts and understand the business requirements that need to be implemented in the SAP systemduring the realization phase. A best approach is to conduct workshops to gather all the businessrequirements. Make sure that if any SAP function consultants are involved than they are in themeetings as well. After all the business requirements are collected, either a SAP functionalconsultant or business expert will write a detailed functional specification. Review the functionalspecification until the document has all the details, different business scenarios and expectedgoals clearly defined. A well defined functional specification should contain UML diagrams andtest case scenarios. It is important to have an official signoff on the functional specificationbefore continuing with design and development.2. Review ABAP Development StandardsIn ideal case, your SAP Project Lead or ABAP Development Manager should have created aprogramming standards and guidelines document. Review this document so that you follow thenaming conventions for function modules, classes, dictionary objects, software components,name spaces and proxies (if using SAP XI / PI), program input/output parameters, etc just toname a few. Following the guideline for the project helps maintain a consistent coding approachand also helps other functional and technical analysts to read and debug your code. ABAPobjects naming should begin with Z if it will be migrated to SAP production system and Y if itwill not be migrated into the production system.3. Write and Review Test CasesThe test case documents are written by the business experts or functional SAP consultants inmost SAP implementation projects. But on some SAP implementation projects a programmermay be required to write test cases. Before writing a test case review the functional specificationdocument thoroughly and review the written test case with the business users or functionalconsultants. Get a sign-off as mentioned in most steps in this article. As an ABAP DevelopmentManager for a variety of SAP implementation projects, my goal has been to keep my teammotivated and always cover the team against any change of scope on the development tasks.
Having a sign-off at each phase of a SAP custom development or enhancement tasks alwayshelps the SAP implementation team and project management team keep in sync which is a vitalto complete the SAP implementation in time and budget.4. Write and Review Technical Design SpecificationsRead the functional specification and list all the development objects that would be needed toimplement the required functionality in the SAP system. First step is to draw a flowchart andreview with technical and business experts. The technical design document should include atechnical overview, list of new database objects, ABAP objects that can be reused, a data modeland class diagram (if using ABAP OO classes). It is highly recommended to have a roughprototype in the sandbox system (Development system if no SAP sandbox system is available) ifthe development being done is complex or if the end deliverable is not well defined. You shouldthen review your prototype with functional experts and business users. Make sure that the ABAPDevelopment team lead or manager signs off on the prototype. If effort required to complete theABAP programming task is not presented and approved by the senior project management thenthis would be a good time to get the development estimate and timeline approved.5. Realization of the Specification – ABAP DevelopmentDuring this step you will be creating development objects and implementing the code in the SAPdevelopment system. Before you begin, if prototype was done in the sandbox system thenanalyze the prototype and design specification. Remember that quality and reusability of existingABAP objects are more important than strictly following the design specification. Determinewhich existing dictionary objects can be reused for this topic. If new dictionary objects or classesneeds to be created then ensure that these objects can be extended and reused for otherdevelopment tasks. It may require extra effort to develop objects that are reusable and flexible.This one time effort for building reusable ABAP objects during the course of a developmentproject can potentially save a lot of work for programming similar objects that could otherwiseutilize already built objects. Review your approach with an SAP technical team lead or adevelopment manager on your project before deviating from the technical design specificationand implementing your own ideas. If you are involved in SAP XI (now Process Integration)related tasks or creating enterprise services then this is the best area where you could reuseexisting objects. Review the message types that already exist within your SAP business unit andsee if any existing messages can be extended with new fields. Review with the team leadwhether the communication should be synchronous or asynchronous before you generateproxies.6. SAP Development Best PracticesSAP ABAP (or JAVA if working on SAP Netweaver) development best practices should befollowed throughout the development lifecycle of the project. Although this aspect depends onyour project technical manager, I personally have maintained a checklist for developers in myteam on all projects and it has been a tremendous success in delivering high quality output on alldevelopment tasks. Here are a few best practices worth adapting in your project. Check whetheryou adhere to all naming conventions as described in the programming standards set for yourimplementation project. Include comments in your code to allow someone else to easilyunderstand your programs. This is particularly helpful when you work in large teams andmultiple people work with same objects. Ensure that you have check for user authorization if you
are building transactions or web user-interfaces that will require human interaction. Check thatyou do not have ABAP code segments that could take a hit on performance like nested loops,nested select statements (use views if desired), excess database commits (persistent objects orbuffering alternatives may be a good option), etc. Field symbols are a great asset when it comesto processing internal tables and also variables with unknown data types that are resolved atruntime. Field symbols are very similar to concept of using pointers in OO programminglandscape. Check if all exceptions are handled and error messages are communicated accuratelyto the end users. As an ABAP programmer it should be well accepted by now that short dumpsshould not be OK to occur. All these do occur in unknown special case scenarios the short dumpsshould be fixed.7. ABAP Code Reviews and PerformanceAs a ABAP programmer you should test your code upon completion for all possible scenarios.Verify that end results are same as that expected in the documented test cases. Perform ABAPruntime analysis to check for performance of your code. Seek suggestions from your technicalteam lead or manager on how to improve code performance if you notice any red flags during theruntime analysis. Schedule a formal code review with your mentor or a senior ABAP developeronce the development is completed and tested by all responsible developers. Make any revisionsand retest your code against the desired output as documented in the test scripts. Remember thatcode reviews is not to find flaws in your programming but it will only make you a better ABAPdeveloper and maintain consistency.8. DocumentationMake sure you write an end user documents with overview of the functionality or enhancementupon completion. Include screenshots where possible. Prepare documentation keeping in mindthat an end user unfamiliar with your deliverable can read the document and test thefunctionality. Include contact information in this document for users to easily reach the SAPtechnical team for any questions.9. User Acceptance TestingNow that your ABAP coding is completed and reviewed by technical experts, it is time for thebusiness users to perform a formal user acceptance testing. UAT testers will check whether theoutput meets business process requirements and suggest any improvements or modifications tothe delivered functionality. After completion of these fixes or modifications you should request aformal sign-off on the functionality.10. Migration to SAP Test System and Production SystemQuality assurance engineers will test your functionality in the SAP QA environment to verifythat everything is working in your delivered functionality as tested during user acceptancetesting. Also any problems in transporting your ABAP objects across SAP systems will beidentified and addressed during this step. If no problems are found then your transports will beapproved to be migrated to SAP production system in the next transport cycle.You have just learned how to be an efficient SAP ABAP Developer or per say a high qualitySenior ABAP expert right from writing specifications until realizing your implementation inproduction system. Use this article as a guideline as there are many more aspects to improve
yourself to be a good ABAP programmer which is not possible to cover in a brief article like thisone. You can always contact me with any suggestions or ideas you may seek for your SAPimplementation.