Chaque développeur a sa propre manière de concevoir un programme et il n'y a pas de façon unique de développer un programme pour aboutir à un résultat donné.

Néanmoins, le développement, quelque soit le langage utilisé, doit obéir à certaines règles pour qu'un programme soit facilement lisible, compréhensible et modifiable, par une autre personne que le créateur du programme.

Ces règles sont d'autant plus importantes en ABAP car elles peuvent directement influer sur les performances du programme et la cohérence des données mises à jour ou affichées.

Voici quelques règles qu'il est conseillé d'appliquer pour optimiser ses développements ABAP :

- en amont de tout développement, il est important de définir la façon dont seront nommés les différents objets qui vont être développés, ceci afin de faciliter la recherche et l'identification des objets; si le nom d'un objet spécifique commence toujours par Y ou Z, car ce sont les 2 lettres réservées par SAP aux développements spécifiques aux clients,  les caractères suivants doivent pouvoir permettre d'identifier :

* le système cible où l'objet va être utlisé si les développements ont lieu dans un core système et doivent être déployés ensuite dans plusieurs systèmes cibles,

* le module concerné ou le caractère inter-modules de l'objet,

* le type d'objet (table, structure, élément de donnée, domaine, programme, module fonction, transaction, message, idoc, bapi,....),

* une description courte du rôle ou du contenu de l'objet,

- une fois ces règles définies, il est conseillé de créer une ou plusieurs classes de développements ou un ou plusieurs packages (selon la version de SAP et le langage ABAP ou ABAP objet) dans lesquelles seront regroupés des objets ayant un but ou un rôle commun,

- à l'intérieur de ces classes de développements ou de ces packages, des groupes de fonctions ou des classes d'implémentation peuvent être créées pour mutualiser les modules fonctions ou les méthodes, de recherche, d'affichage et de mise à jour de tables,

- ces modules fonctions ou ces méthodes seront ensuite utilisées dans des programmes, des user-exit, des badi ou dans d'autres modules fonctions ou d'autres méthodes,

- enfin, pour optimiser les programmes, il est conseillé de modulariser au maximum, c'est-à-dire :

* séparer, dans différents includes, les phases de déclarations de données, déclarations de paramètres d'écran de sélection, recherche de données, mises à jour de tables et affichage de rapport d'exécution ou de résultat de mise à jour,

* mutualiser dans des forms ou modules les tâches répétitives du programme,

cela aura ainsi pour effet de :

* faciliter la lecture du programme,

* faciliter la maintenance du programme par d'autres personnes que le créateur,

* minimiser les modifications à faire.

Ces quelques règles de bases permettent une organisation des développements efficaces, et peuvent s'appliquer à d'autres langages que l'ABAP et à d'autres progiciels que SAP, pour peu qu'ils aient un environnement de développement adéquat.