New Feature: Application Working Copies

APEX Release

Version 23.2

Note: To view the fully comprehensive list of functionalities and details related to feature, please view Oracle’s official documentation (link).

Offerings

Overall Goal and Benefit: 

Provide the ability for multiple developers to apply simultaneous updates to the same application objects in an ordered approach, while maintaining the application’s consistency

Provided functionalities to achieve this:

  • Create multiple copies of an application to apply each set of changes
  • Merge changes automatically and asynchronously from each copy application
  • Merges can be limited only to specific objects within a working copy application if needed
  • Apply diffs between the “main” (source) application and copy applications whose code will be merged into the main
  • Refresh a working copy from any new updates made in the “main” application while work is in progress

Considerable Benefits

  • Asynchronous development:
    • Multiple changes and personnel can work against the same application/object individually at the same time
  • Structured team workflow:
    • The APEX tool itself can now be leveraged to structure team deployment rules. Teams could:
      • Streamline deployment patterns around this new feature
      • Leverage APEX for controlled staging and code deployment
      • Apply built-in compares and merges
    • Previously, teams would need to create more customized rules around migration and development environments.
      • There were no built-in mechanisms to tie copy applications together
      • Tools outside of APEX might be leveraged more commonly to compare and migrate code.
  • Reducing excess communication:
    • It will be easier to track how many changes or tickets are active against any given application.
    • Teams could track who is working on each change via copy application names and audit details.

Opportunities for Improvement

Outside of the known and listed limitations within this release of working copy functionality, the following improvements can be taken into consideration. Refer to Oracle APEX documentation for this release to find all preemptively identified limits.

  • Lock shared components: 
    • Developers can lock pages on the main application, but they cannot lock shared components. 
    • Having the ability to lock all objects/components of the main application will provide for a more sterile coding environment, where the entire team is certain that the main application is left untouched until a team admin merges updates from a working copy. 
  • Automatically detect newly-created objects across applications: 
    • Challenge / Scenario
      • When a developer adds a new page or shared component in a working copy, other developers will not be aware.
    • Solution
      • This can take away from team coding velocity, as the APEX tool itself does not automatically notify or reserve placeholders for new objects.
      • Automatic notifications or placeholders in the main application could reduce ambiguity and provide a hard prevention against colliding code.
      • Implementing such a solution might also require an logic that handles developers sandboxing coding in a copy application, but an overall mechanism that reduces ambiguity would be key in helping build APEX applications quickly within a team environment.
    • Current Workaround / Method
      • Team communication is the current way to stay on top of this scenario.  
      • This allows for ambiguity through potential communication breakdowns, and the added step to communicate and/or check what new objects are taken might slow down workflow for developers.
  • Allow for working copy applications to appear in the same view as all other “main” application:
    • Currently the only way to access working copies is to go through the main application first. 
    • This could keep workflow organized, but it could also slow things down if developers already have established workflows and typically access applications upon login.

Overall Summary

  • Great start for:
    • Developers to utilize a built-in mechanism for continuous team development and deployment
    • Enhance team development speed and responsiveness to user issues
  • Current-to-future releases:
    • With the initial release, developers have a taste of increased productivity and an idea for what future releases can bring
    • With new releases, this feature presents high potential to enable fast-paced team development environments

Leave a Comment

Your email address will not be published. Required fields are marked *