Guide‎ > ‎

Managing Business Logic Projects

In addition to your usual project management practices, we suggest consideration of the suggestions below.


You might organize project tasks either by 
  • Domain Object
Each Domain Object is assigned to a specific Developer; only that Developer alters the structure and logic of the object
  • Use Case
Each Use Case is assigned to a specific Developer; that Developer alters any of the Domain Objects' structure/logic to implement the Use Case 

Tasks by Use Case

We recommend organizing work by Use Case, since this aligns with Deliverables.  This also directly leads to identifying the Test Case Scenarios, the set of which defines project completion.

Domain Object Coordinators

The risk in Use Case organization is consistency.  If no one is monitoring Domain Objects, you might easily wind up with redundant attributes and logic.  This may not be an issue for small projects, but can definitely lead to issues in larger projects.

We therefore suggest that specific Developers be assigned as the Domain Object Coordinator for a set of Domain Objects.  Developers implementing Use Cases should review their changes with the Domain Object Coordinators. it is a team decision whether this is recommended (just a reminder, under the presumption folks will naturally do it), or a more formal sign-off process.


As the projects proceeds, we recommend you set up practices to optimize your use of declarative logic.

Alert: Excessive Procedural Code

The number one metric to manage is procedural Business Logic Code.  You will find there should be very little - none for most Domain Objects, very little for more complex objects.  Achieving this will require use / extension of Extensibility services.

In the same way code/design reviews are useful, we recommend regular Automation Reviews, focused on maximizing declarative logic.  You might structure it as follows:
  1. Identify procedural logic

  2. Can it be solved with Core Rules, using Logic Design Patterns?
         (assure the team is familiar with the Tutorial).

  3. Can it be solved re-usably, by adding additional Extensibility services?

  4. If all these are "no", a final consultation with an experienced Logic Developer is recommended

Establish Automation Targets