Blog‎ > ‎

Agile and Automated Business Logic

Agile methodologies focus on rapid iterations based on effective cross-functional collaboration to identify requirements and priorities.  These approaches have delivered significant business value, and have resulted in a vibrant community for promotion and support.

Another tenant of Agile is a preference for "individuals and interactions over processes and tools".  Fair enough.  But surely, strong teams and interactions can only be enhanced with services to support and automate their interactions and iterations.  If you are using or envisioning the use of agile approaches, we believe Automated Business Logic (ABL) can support your Agile approaches, as described below.

Rapid Iterations through automation

The cornerstone of Agile is to engage inertia of motion with rapid iterations - sprints resulting in running software.   ABL can provide important assistance:

  • Automation
For typical update oriented applications, transactional business logic can represent half the effort, as illustrated in our sample.  ABL can dramatically increase the speed of this significant element, enabling you to express in a single rule what would otherwise require 100 lines of Java.

  • Automatic Re-use
Iteration sprints are supposed to result in running software.  Automated re-use ensures that once a rule is defined, it is executed in all the relevant Use Cases.  This reduces the time-consuming cycles to debug all the related Use Cases during integration.

Cross Functional Collaboration through Logicdoc

Iterations are guided by cross-functional collaboration.  Such collaboration can be enhanced and supported by ABL:

  • Common Language
Java code is clearly incomprensible to Business Users.  But Business Rules are clear, like a specification.  Business Users can read them, and help identify errors / omissions.  This can dramatically reduce the risk of incomplete or incorrect requirements.

  • Visibility of Requirements with Traceability to Rules
Logicdoc (an optional part of ABL) enables you to define the processes and requirements for a system, with traceability to the rules that enforce them.

Testing: automated re-use, jUnit (with logic-specific tooling)

Numerous rapid cycles underline the need for testing, since you can easily destabilize a large project with untested changes.  ABL can assist the testing process with

  • Automated Re-use
We would never suggest that ABL applications don't require testing.  Certainly they do.  But it is great to know that your logic is encapsulated into your Domain Objects, so that any update - across all Use Cases -  can be assured to conform to your logic declarations.  This engineers out an entire class of error which is very time-consuming to find with traditional testing.

  • Test tool integration
ABL integrates easily with jUnit.  Our download includes the BusLogicIntro sample application.  It implements all the Use Cases described in the Tutorial as jUnit tests, which are included in the download.

  • Logic-specific testing tools
The integration tests run extensive updates, often in multiple transactions.  To ensure that the database results in an expected state, we make extensive use of SnapshotDB, a "database diff" which compares database state before/after the test, with services to test the diff to verify expected results.