I hold the privilege of being a ABAP developer for past 10 years & information technology industry as a coder for twelve years and now being a ABAP technical expert and development manager for many SAP implementations, I have encountered different functional patterns of a professional ABAP coder. During this period I’ve encountered a few ABAP coders that were genuinely great with technical skills and also many that were first-class ABAP development consultants who can handle every facet of a SAP development project whether implementing a tailor-made development, BADI implementations or enhancement project. Recall that as a technical SAP expert you’re the vital part of a project responsible for actualizing the vision of SAP client business procedures into production. I believe it’s very crucial to know several different programming facets during an SAP implementation undertaking and abide by certain guidelines that can help to all fellow technical consultants.

*Review Business Demands & create Functional document
The foremost portion of any ABAP development project starts with assembling the end users or business experts and understand the business demands that need to be enforced in the SAP system during the actualization stage. A best approach is to take workshops to understand the business needs. Make a point that in case SAP function advisors are required then they’re in the meetings also. After all the business prerequisites are accumulated, functionals and experts will create a specification. Re-check the documents till the document is good enough. A clear functional spec should incorporate UML plots and test case scenarios. It’s important to recieve an official signoff on the functional spec prior to moving ahead with blueprint and development.

*Inspect Development Standards
Normally, the Project Manager would have a programming criteria and guidelines document. Go over this document in order that you abide by the naming rules for function modules, classes, name spaces and proxies (if using SAP XI / PI), program input/output parameters, etc just to name a few .Abiding by the guideline for the project helps observe a uniform coding approach and also assists other functional and technical analysts to interpret and rectify your code. ABAP objects naming should commence with Z if it will be migrated to SAP production system and Y if it won’t be transferred into the production system.
The test case documents are composed by the line experts or functional SAP advisors in most SAP implementation projects. A programmer might be asked to write test cases on a few SAP implementation projects. Before composing a test case one must inspect the functional specification document exhaustively and check the written test case with the business users or functional consultants. Try to get a sign-off as suggested in most parts in this article. As an ABAP Manager for different types of SAP implementations , my main aim has been to keep the team motivated and protect the team against any change of scope on the development objects.Holding a sign-off at each state of a SAP custom development or enhancement projects always helps the SAP implementation team and project management team keep in sync ,which is important to complete the SAP implementation on time and within budget.

*Compose and inspect Technical blueprint specs
Read the functional spec and list all the development objects that would be required to carry out the requisite functionality in the SAP system. First step is to draw a flow diagram and analyze with technical and business experts. {The technological design papers should include a technical overview, listing of fresh database objects, ABAP objects that can be recycled, a data model and class diagram (if using ABAP OO classes).| The technological design documents should ideally have a technical overview, listing of fresh database objects, ABAP objects that can be recycled, a data model and class diagram (if using ABAP OO classes).}It is highly recommended to have a close prototype in the sandbox system (Development server if no SAP test server is available) if the development being undertaken is complex or if the expected result isn’t clear. You may then analyze your prototype with functional experts and business users. {Make sure that the ABAP Development team lead or manager signs off on the test model.|Make sure that the ABAP Development team lead or manager gives A sign off on the test model.} This would be a great time to get the development estimation and timeline O.K.ed if the effort expected to complete the ABAP programming job is not demonstrated and sanctioned by the senior project management .

*Actualization of the specs – ABAP Development
During this step you’ll be making development objects and applying the code in the SAP Dev server. Before you start out, if test model was done in the test system ;examine the prototype and design spec. Make note that quality and re-usability of current ABAP objects are more significant than strictly abiding by the design specification. Find out which current dictionary objects can be recycled for this subject. If new dictionary objects or classes need to be produced then see to it that these objects can be expanded and recycled for additional development jobs. It could call for additional effort to develop objects that are recyclable and flexible. This one time effort for constructing recyclable ABAP objects during the course of a development project could avoid a lot of programming for similar objects that could otherwise use already constructed objects. Revisit the approach with an Senior SAP consultant or a manager on your project before deflecting from the technical blueprint design and implementing your own ideas. If you’re part of SAP XI (now Process Integration) type tasks or producing enterprise services then this may be the finest area where you can reuse current objects. Review the message types that already exist inside your SAP business unit and ascertain if any existing messages can be broadened with fresh fields. Follow-up with the team lead whether the communication should be synchronous or asynchronous before you create proxies.

*Best Practices SAP development .
SAP ABAP (or JAVA if working on SAP Netweaver) development best practices should be followed by throughout the development lifecycle of the program. Although this aspect depends upon your manager, I personally have maintained a list for developers in my team on all projects and it has been a tremendous success in delivering quality end product on all development projects. Here are a couple of best practices worth following in the program. Determine whether you stick to to all naming rules as identified in the programming standards set for the implementation project. Include remarks in the code to permit someone else to easily interpret your programs.
This is especially useful when you work in large teams and multiple people work with similar objects. Assure that you’ve check for user authorization if you’re creating transactions or web interfaces that will demand for human interaction. See that you don’t have ABAP code sections that may get affected in performance like nested loops, nested select statements (use views if required) ,excess database commits (persistent objects or buffering options may be a great choice), etc. Field symbols are an advantageous asset when it comes to functioning on internal tables {and also variables with unknown data types {that are resolved at runtime|}|}. Field symbols are very similar to idea of using pointers in OO programming . Verify if all exceptions are handled and error messages are transmitted precisely to the end users.

*Code Reviews /Performance.
As a ABAP coder you should study your code upon culmination for all imaginable scenarios. Ascertain that end results are same as that expected in the documented test cases. Perform ABAP runtime analysis to examine performance of your code.
Seek suggestions from your lead or manager on how to better the code performance ,if you discover any red flags during the runtime analysis. Schedule a formal code revaluation with your mentor or a senior ABAP developer when the development is over and examined by all responsible developers. Make any modifications and retest your code against the mandatory output as authenticated in the test scripts. Make note that code reviews is not to pick up defects in your code but it will only make you a better ABAP developer and maintain consistency.

*Documentation|software documentation}
Be sure you create end user documents with overview of the functionality or enhancement upon culmination. Include screenshots wherever possible. Develop documentation considering that an end user unfamiliar with your product can understand the document and check the usage. Permit communication information in this document for users to easily get through the SAP technical group for any queries.

*User Acceptance Testing
Now that your ABAP coding is realized and surveyed by technical experts, it’s time for the business users to execute a formal user acceptance testing. UAT testers will check whether the output conforms to business process demands and advise any betterments or adjustments to the handed over functionality. After completion of these fixes or modifications you should ask a formal sign-off on the functionality.

*SAP Test System and Production System Migration
Quality assurance engineers will analyze your functionality in the SAP QA environment to verify that everything is working in your delivered functionality as examined during user acceptance testing. Also any troubles in transporting your ABAP objects across SAP systems will be identified and taken care of during this step. If no issues are noticed then your transports will be approved to be transferred to SAP production server in the subsequent transport cycle.

You have discovered how to be an competent SAP ABAP Developer .Also learnt the habits of high calibre Senior ABAP experts; right from writing specs until realizing your implementation in production server. Use this article as a guideline as there are a lot more facets to push yourself to be a skillful ABAP consultant which isn’t possible to wrap up in a concise write-up like this one. You should be able to always get in touch with me with any (suggestions|questions|doubts} or thoughts you may want for your SAP implementation.