Part 6: Extensions vs. Modifications

Posted by volker.eckardt(at)oracle.com on Oracle Blogs See other posts from Oracle Blogs or by volker.eckardt(at)oracle.com
Published on Sat, 12 Mar 2011 12:53:24 +0000 Indexed on 2011/03/12 16:14 UTC
Read the original article Hit count: 302

Customizations = Extensions + Modifications

In the EBS terminology, a customization can be an extension or a modification. Extension means that you mainly create your own code from scratch. You may utilize existing views, packages and java classes, but your code is unique.

Modifications are quite different, because here you take existing code and change or enhance certain areas to achieve a slightly different behavior. Important is that it doesn't matter if you place your code at the same or at another place – it is a modification. It is also not relevant if you leave the original code enabled or not!

Why? Here is the answer: In case the original code piece you have taken as your base will get patched, you need to copy the source again and apply all your changes once more. If you don't do that, you may get different results or write different data compared to the standard – this causes a high risk!

Here are some guidelines how to reduce the risk:

  1. Invest a bit longer when searching for objects to select data from. Rather choose a view than a table. In case Oracle development changes the underlying tables, the view will be more stable and is therefore a better choice.
  2. Choose rather public APIs over internal APIs. Same background as before: although internal structure might change, the public API is more stable.
  3. Use personalization and substitution rather than modification. Spend more time to check if the requirement can be covered with such techniques.
  4. Build a project code library, avoid that colleagues creating similar functionality multiple times. Otherwise you have to review lots of similar code to determine the need for correction.
  5. Use the technique of “flagged files”. Flagged files is a way to mark a standard deployment file. If you run the patch analyse (within Application Manager), the analyse result will list flagged standard files in case they will be patched. If you maintain a cross reference to your own CEMLIs, you can easily determine which CEMLIs have to be reviewed.
  6. Implement a code review process. This can be done by utilizing team internal or external persons. If you implement such a team internal process, your team members will come up with suggestions how to improve the code quality by themselves.
  7. Review heavy customizations regularly, to identify options to reduce complexity; let's say perform this every 6th month. You may not spend days for such a review, but a high level cross check if the customization can be reduced is suggested.
  8. De-install customizations which are no more required. Define a process for this. Add a section into the technical documentation how to uninstall and what are possible implications.
  9. Maintain a cross reference between CEMLIs and between CEMLIs, EBS modules and business processes. Keep this list up to date! Share this list!

By following these guidelines, you are able to improve product stability. Although we might not be able to avoid modifications completely, we can give a much better advise to developers and to our test team.

Summary:

Extensions and Modifications have to be handled differently during their lifecycle. Modifications implicate a much higher risk and should therefore be reviewed more frequently. Good cross references allow you to give clear advise for the testing activities.

© Oracle Blogs or respective owner

Related posts about configuration

Related posts about customization