Blog >> Post

The Intellectual Property Ledger Solution as an example of ABAP Add-on development

IP Ledger Products

The IP Ledger Solution, as it stands today, is the result of 6 years of intense software development. The approach followed is a combination of incremental development, good coding standards and code reviews.

Incremental development

The basic idea is take small steps at a time, proof them, perfect them and then move on. This approach gets a lot of following on the Net but for us it is not the be all and end all. During our 6 years of development, we have kept to it mostly because our rigorous release strategy demands it but we have also had to deviate from it at times when a major overhaul of a core function was required. At that point, it’s rigorous upfront analysis and team discussions that ensure the team’s developers all move in the same direction.

Coding standards

Every developer has a unique coding style and skill set. That’s great, it makes for a strong team. But to keep the developments all point in the same direction, strict development standard are necessary. In the SAP world, many people have come up with naming conventions going down to the lowest level of software components. For us, naming conventions are only the tip of the iceberg. I would call our angle on coding standards ‘readable code’. Any block of code will go through the hands of several developers (and functional consultant happily(?) debugging) in its lifetime. That’s why it is important that code is ‘readable’. A couple of important aspects of this are:

  • Keep coding blocks as short as is practical: you almost naturally end up having separate coding blocks for data retrieval, data manipulation and formatting/output which in turn enables re-use.
  • Name coding blocks after what they really do. It’s quite amazing how often we end up renaming a coding block because it has outgrown its original name. Not renaming the coding block means it will come up on the wrong searches and the code becomes less readable. Clear names for coding blocks also act as a ‘are you sure?’ to developers that code has maybe been inserted in the wrong place.

Code review

Code review is an essential step in the software development lifecycle. It is key to keeping a solution coherent.

  • It often results in simplifications as team work helps to spot more direct routes to a solution.
  • It helps to drive re-use. Reusing code blocks is not an option, it is a necessity and a lifeline. By reusing, not only do you ensure similar logic gets applied to similar situations, ensuring consistent results, but it also highlights weaknesses in the existing coding blocks, which then results in improvements in flexibility and/or stability. Some developers will argue the case that reusing means risking breaking an existing part of the system and they would rather go down the re-invent route. The latter approach has proven, time and time again, to result in inconsistent behaviour and higher code maintenance.
  • It helps to remove hard coding. Hard coding can be introduced at many levels, from a simple document type to the name of a remote system or terminology used in one part of the industry. The IP Ledger can proud itself on the fact that it is fully flexible in this respect. It is capable of separating out different client territories, ledgers and their terminologies, within the same SAP environment.
  • It is great way of cross-training the team members, not only on the solution but also on coding techniques. The team members are confident they can cover for each other during holidays or sickness.

Leave a Reply