SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Cover Page 

 



     Case Study of an Enterprise 
    System That Represents Rules 
     Primarily As Relational Data 
        Rather Than via Code 
 

Author: Jeffrey G. Long (jefflong@aol.com) 

Date: 2008 

Forum:  Acta Systemica Vol. 8 No. 2 (2008) pp. 47‐54 available at 
http://iias.info/pdf_general/Booklisting.pdf 
 

                                 Contents 
Pages 1‐6: Preprint of paper. 

 


                                   License 
This work is licensed under the Creative Commons Attribution‐NonCommercial 
3.0 Unported License. To view a copy of this license, visit 
http://creativecommons.org/licenses/by‐nc/3.0/ or send a letter to Creative 
Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. 




                                 Uploaded June 24, 2011 
Case Study of an Enterprise System That Represents Rules
         Primarily As Relational Data Rather Than via Code
                                         Jeffrey G. Long
                                        jefflong@aol.com

Abstract

Business rules are often narrowly defined, but they should include any and all rules that an
organization follows to manage its affairs. These include all work processes, pricing rules,
applicable laws and regulations (e.g. taxes), ontologies (e.g. defining the categories by which
customers or products may be grouped), taxonomies (e.g. defining how a product or customer is
actually categorized), and other kinds of rules. There is a distinct subset of these that are the
technical interface rules which define various interfaces, such as with users (through forms and
reports), data (via database management software), and other systems.

In traditional software applications such rules are typically encoded as parameter-driven
software. Because there are many rules, applications frequently require millions of lines of
code. Such a large code corpus ensures significant life-cycle maintenance costs, as only
programmers can update the code, and the code must change as the rules change over time.

The approach we’ve used, called “Ultra-Structure,” is to remove any business rules that might
ever change from the software, leaving only the control logic for a “competency rule engine” as
software. All the rest of the rules are represented as data. We use and advocate a relational
database approach to representing rules because of referential integrity, normalization, security,
and other benefits offered by any modern RDBMS. Results are presented from a 23-year case
study of a particular company.

Key Words: Enterprise System; Databases; Business Rules; Software Economics; Business
Process Reengineering

Problems of Software Development
One of the most vexing problems in the software industry is why over the past 50 years software
(and software development) has not improved exponentially in its effectiveness and efficiency,
in a manner comparable to hardware. While even home computer users can now afford a
terabyte of data storage, writing code is nearly as laborious and error-prone as it ever was. In
spite of decades of research and development, many software systems either do not or cannot
meet users’ current or future requirements. Their construction and maintenance cost and time
are also extreme.

Solving this will not merely require that analysts ask better questions of users, for users can only
say what they know now: how future government or other regulations, or mergers or divestitures,


                                                 1
or new ideas or technologies, may affect their requirements are inherently unknowable.
Furthermore, user understanding of their requirements evolves, especially under the guidance of
an analyst who asks about logically-possible alternatives to whatever the user posits. They can
also evolve when an analyst identifies for them new ways that computers or other decision-
making technologies might assist them.

Solving this will also not merely require that programmers become more efficient, for what
programmers encode is the rules of the business, which are subject to constant change. Current
Integrated Development Environments and libraries of software classes can only address a
snapshot taken at a given time; changing code in response to changing user requirements will
always be required. And when business rules are dispersed over hundreds of thousands of lines
of code, even a well-designed system poses maintenance challenges.

If important user requirements are inherently unknowable and unpredictable, then how can any
system ever be designed? Most other areas of engineering have been remarkably successful in
predictably delivering results. But applications such as bridges and homes, while complex, are
physical systems where user requirements tend to change little or within limited areas. The
standard engineering approach that moves from analysis of requirements, to design, to
construction of the system, is excellent for these situations. But knowing all likely user
requirements is a luxury not available in software design. Nor should it be, for software captures
thinking in ways that other technologies do not, and thinking will always evolve. Yet we must
aim to design systems that can act “intelligently” and can change greatly over time.

This can be done by representing rules in a different and better manner. It requires converting
rules from their natural language form (e.g. as in a policy manual) into one or more rules in a
canonical form; categorizing those rules into a small number of formats called “ruleforms” that
are defined by their form and meaning, such that any logically possible rule pertaining to that
application area (e.g. order processing) can be expressed somewhere in the system; and
managing these rules as records in various tables (one per ruleform) through a relational database
management system. Thus, business rules are represented not as software, and not as data in
XML tags, but as records (relations) in a modern relational database management system, such
that referential integrity and security of the rules is guaranteed, and information can readily be
accessed through various tools such as queries and/or report writers.

One key benefit of this approach is that subject experts (e.g. trained business managers) can read
and manage rules directly, without having to first explain them to programmers. This can help
greatly as companies try to better manage their knowledge resources by making them external to
the subject expert. Another key benefit is that it facilitates changes to work processes. This can
help greatly as companies try to better manage their work processes by adapting them to new
technological, regulatory, competitive, or other constraints.

In this approach software is seen as essential to the solution, but is not itself the solution. Instead
software is a problem that must be eliminated whenever possible.



                                                  2
Case Study (1985-2008)
The Company we are discussing here is a privately-held company which currently has about 50
warehouses throughout the United States. They are wholesalers of a commodity product, and are
thus competing purely on price and service. Their customers are thousands of retailers who then
resell the product to an end-customer who may be waiting in their office. The Company
normally delivers orders within a few hours of order placement. It processes thousands of orders
a day at its various branches, as well as from the Internet. In this competitive environment it has
grown to become the largest independent wholesaler (i.e. not a manufacturer) in its industry.

Intellinomics Era (1986-2002)

Starting in September 1985, my former consulting firm (Intellinomics Corporation) built an
enterprise system for the Company. At that time they had about USD $13 million in revenues.
This system encoded as data only the interface rules regarding the format of screens and reports,
user access authority, data structures, data retrieval, etc., while hard-coding in software the
business rules such as work processes. The development cost of the system was about USD
$250,000; it ran on a Digital Equipment Corporation VAX computer, had a character-based
interface, and required about 35,000 lines of C code. It supported nine warehouses and about 50
users. The system was installed in September 1986 and was used by the Company for 16 years,
until 2002. During this time the Company grew ten times as large, to about USD $130 million.
It had no programming staff and used about ten hours per month of contracted programmer time.

Industry-Leading System Era (2002-2005)

The Company decided to move to a package that was the most widely used among wholesalers
in the vertical market of the Company. Few if any requirements were discussed, and the system
was installed in 2002. The vendor made many assumptions about how wholesalers in that
vertical market would/should operate, but the Company had its own internal work processes and
ontologies that were different. The system ran on an IBM minicomputer under AIX. It provided
a character-based user interface and a highly unusual non-relational database system. After 18
months of working with the vendor, the system was deemed unacceptable.

CoRE650 Era (2005-present)

In March 2003 my current firm, CoRE650 Solutions LLC, started development of a new system.
The Company requested the use of off-the-shelf software as much as possible, and as a direct
result the system did not initially attempt to encode as data the interface rules, but instead hard-
coded them using standard .Net development tools (form painters, etc. of the IDE). However,
most other kinds of business rules were encoded as data this time. The resulting system required
about 500,000 lines of C# code (excluding blanks and comments) and 160,000 lines of T-SQL
code (including blanks and comments). It runs on a database server and terminal servers using
MS SQL-Server and Windows Server 2003, supporting about 500 users having thin clients in the
field.


                                                 3
The system was installed in September 2005. The development cost of the system was about
USD $3.4 million, and an additional $1.1 million has since been spent on various fixes and
upgrades. During this time the Company grew an additional 40%, to about USD $175 million.
The monthly work hours dropped sharply after installation and continue to fall, as shown in
Appendix A. There is still a team of five people performing a total of about 300-400 hours of
work per month; this is expected to continue declining.

Since installation the system has processed nearly seven million different “business transact-
ions,” defined as (for example) a sale of one or more items, plus delivery, invoicing, cash
application, and accounting and inventory entries as necessary. A transaction might also refer to
a transfer of products between warehouses, purchases of products from manufacturers, or
credit/debit memos and inventory adjustments. The Company’s work processes continue to
evolve, for example (a) the high price of fuel necessitated delivery charges under certain
conditions, and (b) the Company decided to charge customers a restocking fee for returns made
more than thirty days after purchase.

Analysis of Results
The project took longer and was more costly than initially expected. An analysis of actual costs
to date versus budget shows a 1.95: 1 ratio. According to Forrester Research, however, midsize
wholesalers normally spend about 0.6% of gross revenues on software; using this metric, the
actual cost was 89% of the industry average. Appendix B shows a chart of these costs. While
the budget overrun was of course not good news, the comparatively low ongoing maintenance
cost will provide a continuing savings that goes directly to the bottom line of the Company far
into the future.

The main drivers of increased project cost were as follows:

Converting almost all initial data, including transactions in progress, from a non-relational to a
relational database required a great deal of conversion coding; in addition many problems/errors
were found in the source data that had to be resolved before installation. The problem was
compounded because the vendor could not or would not provide documentation for its database
schema. This problem was unique to this situation; it is not likely to be repeated, although any
data conversion can be difficult. We have no special tools or theories to help with this.

To meet the COTS requirement, we used standard Microsoft .Net tools, but found that a great
deal of code – about five times what was expected -- was required to be written, primarily for the
user interface. We are now moving to a design that still uses .Net but where many of these rules
are represented as data, so that code can be eliminated and future changes to user interfaces will
be far easier to manage. It would have been better to design this flexibility in from day one.

When the project started to become overdue, the design process was curtailed and discussions
were minimized “until after cutover.” This resulted in one major subsystem (cash application)
being designed and implemented in a more complex manner than was really necessary if the


                                                4
Company’s needs had been better understood. The subsystem then had to be redesigned and re-
implemented with correct requirements after further discussions. Continuing to work on user
requirements, when the problem but not its alternatives were known to exist, would have avoided
this substantial effort.

Lastly, by putting together a new team for this project, there was a steep learning curve in three
areas: (a) the team needed to learn how to work together, which was painful, (b) the team needed
to learn how to work in a geographically dispersed environment, with various team members all
over the United States; and (c) the team needed to learn how to build and test a system where all
rules were not easily found in code, but where the programmers and testers had to look in two
places – the code and the rulebase – to understand what rules were in effect at any given time. It
would have been better to have a team that had already worked together on similar projects, but
that was not possible then. There is such a team now.

Conclusions
After moving most rules to data, the code that is left is mainly control logic that knows nothing
about the world except what tables to look at, in what order, and what to do based on rules
selected for execution. Since this control logic is unlikely to change over time, one benefit of
this approach is that the software and data structures stay remarkably stable even as the rules
continue to evolve. Another is that subject experts and business managers can explain new rules
to business analysts (not only programmers), who can then directly update the rules through a
RDBMS. In another prior project the subject experts directly updated the rulebase, without
having to explain things first to a programmer or even an analyst. This eliminates the possibility
of misunderstandings between subject-area experts and technical experts. Representing rules as
data also means that the RDBMS must be optimized to work efficiently.

This project has demonstrated the importance of minimizing the amount of software written and
maintained. This can best be done by implementing both business rules and interface rules as
data, not code. It has also shown the importance of readily changeable work process to facilitate
the continuous evolution of business work processes.

References
Forrester Research, Inc (2005); US IT Spending Benchmarks for 2005.

Long, J., and Denning, D. (1995); Ultra-Structure: A design theory for complex systems and
processes; Communications of the ACM, Volume 38, Number 1 (pp. 103-120)

Long, J. (1999); A new notation for representing business and other rules; Semiotica Special
Issue: Notational Engineering, Volume 125-1/3 (guest ed. J. Long) (pp. 215-227)




                                                5
Appendix A: Actual Hours Required

  2,000.00

  1,800.00

  1,600.00
                                                                                                                                                Cutover
  1,400.00

  1,200.00

  1,000.00

    800.00

    600.00

    400.00

    200.00

      0.00
                      Jun-03




                                                            Jun-04




                                                                                                          Jun-05




                                                                                                                                                             Jun-06




                                                                                                                                                                                                                             Jun-07
             Mar-03



                               Sep-03

                                        Dec-03

                                                  Mar-04



                                                                       Sep-04

                                                                                  Dec-04

                                                                                             Mar-05



                                                                                                                      Sep-05

                                                                                                                                  Dec-05

                                                                                                                                               Mar-06



                                                                                                                                                                           Sep-06

                                                                                                                                                                                         Dec-06

                                                                                                                                                                                                           Mar-07



                                                                                                                                                                                                                                               Sep-07

                                                                                                                                                                                                                                                                 Dec-07
Appendix B: Actual versus Ideal Costs and Industry-Standard Costs

  200,000

  180,000
                      Actual                                                                                                                               Industry Standard
  160,000

  140,000
                                                                                                                                            Cutover
  120,000

  100,000

   80,000

   60,000
                                                                    Ideal
   40,000

   20,000

        0
                      Jun-03




                                                           Jun-04




                                                                                                      Jun-05




                                                                                                                                                        Jun-06




                                                                                                                                                                                                                    Jun-07
             Mar-03



                               Sep-03

                                        Dec-03

                                                 Mar-04



                                                                     Sep-04

                                                                                Dec-04

                                                                                           Mar-05



                                                                                                                   Sep-05

                                                                                                                               Dec-05

                                                                                                                                           Mar-06



                                                                                                                                                                      Sep-06

                                                                                                                                                                                    Dec-06

                                                                                                                                                                                                  Mar-07



                                                                                                                                                                                                                                      Sep-07

                                                                                                                                                                                                                                                        Dec-07




                                                                                                      6

Más contenido relacionado

La actualidad más candente

Chap01 Foundations of Information Systems in Business
Chap01 Foundations of Information Systems in BusinessChap01 Foundations of Information Systems in Business
Chap01 Foundations of Information Systems in BusinessAqib Syed
 
Overcome regulatory data retention challenges
Overcome regulatory data retention challengesOvercome regulatory data retention challenges
Overcome regulatory data retention challengesBryant Bell
 
Bua 235 bpm-chap 7
Bua 235 bpm-chap 7Bua 235 bpm-chap 7
Bua 235 bpm-chap 7UMaine
 
Management Information System - Building Systems
Management Information System - Building SystemsManagement Information System - Building Systems
Management Information System - Building SystemsAyush Man Tamrakar
 
Chap07 Electronic Business Systems
Chap07 Electronic Business SystemsChap07 Electronic Business Systems
Chap07 Electronic Business SystemsAqib Syed
 
pc_design_use_purchase final aug 24 2015 (2)
pc_design_use_purchase final aug 24 2015 (2)pc_design_use_purchase final aug 24 2015 (2)
pc_design_use_purchase final aug 24 2015 (2)Bijan Arbab
 
Information systems-outsourcingasperp4459
Information systems-outsourcingasperp4459Information systems-outsourcingasperp4459
Information systems-outsourcingasperp4459StudsPlanet.com
 
Electronic Commerce
Electronic CommerceElectronic Commerce
Electronic Commerceellamee27
 
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...ijbiss
 
Architecture centered publishing systems
Architecture centered publishing systemsArchitecture centered publishing systems
Architecture centered publishing systemsGlen Alleman
 
An Introduction to User-Centric EA - Andy Blumenthal
An Introduction to User-Centric EA - Andy BlumenthalAn Introduction to User-Centric EA - Andy Blumenthal
An Introduction to User-Centric EA - Andy BlumenthalAndy (Avraham) Blumenthal
 
Running head organizational information system1 organizational
Running head organizational information system1 organizational Running head organizational information system1 organizational
Running head organizational information system1 organizational AKHIL969626
 
Chap11 Developing Business/IT Strategies
Chap11 Developing Business/IT StrategiesChap11 Developing Business/IT Strategies
Chap11 Developing Business/IT StrategiesAqib Syed
 
Ais Romney 2006 Slides 04 Relational Databases
Ais Romney 2006 Slides 04 Relational DatabasesAis Romney 2006 Slides 04 Relational Databases
Ais Romney 2006 Slides 04 Relational DatabasesSharing Slides Training
 
The 20 Best IT Jobs for 2013 and Beyond
The 20 Best IT Jobs for 2013 and BeyondThe 20 Best IT Jobs for 2013 and Beyond
The 20 Best IT Jobs for 2013 and BeyondMark Paszkowiak ☁
 
Systems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualSystems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualKadenCohen
 

La actualidad más candente (20)

Building information systems
Building information systemsBuilding information systems
Building information systems
 
Building an Information System
Building an Information SystemBuilding an Information System
Building an Information System
 
Chap01 Foundations of Information Systems in Business
Chap01 Foundations of Information Systems in BusinessChap01 Foundations of Information Systems in Business
Chap01 Foundations of Information Systems in Business
 
Overcome regulatory data retention challenges
Overcome regulatory data retention challengesOvercome regulatory data retention challenges
Overcome regulatory data retention challenges
 
Bua 235 bpm-chap 7
Bua 235 bpm-chap 7Bua 235 bpm-chap 7
Bua 235 bpm-chap 7
 
Management Information System - Building Systems
Management Information System - Building SystemsManagement Information System - Building Systems
Management Information System - Building Systems
 
Chap07 Electronic Business Systems
Chap07 Electronic Business SystemsChap07 Electronic Business Systems
Chap07 Electronic Business Systems
 
Anderson, "Whither ERMI?"
Anderson, "Whither ERMI?"Anderson, "Whither ERMI?"
Anderson, "Whither ERMI?"
 
pc_design_use_purchase final aug 24 2015 (2)
pc_design_use_purchase final aug 24 2015 (2)pc_design_use_purchase final aug 24 2015 (2)
pc_design_use_purchase final aug 24 2015 (2)
 
Materi 1 Why ERP.pptx
Materi 1 Why ERP.pptxMateri 1 Why ERP.pptx
Materi 1 Why ERP.pptx
 
Information systems-outsourcingasperp4459
Information systems-outsourcingasperp4459Information systems-outsourcingasperp4459
Information systems-outsourcingasperp4459
 
Electronic Commerce
Electronic CommerceElectronic Commerce
Electronic Commerce
 
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...
A STUDY ON THE SECTORS OF ECONOMY SERVICED BY PRE-INDUSTRY SYSTEM DEVELOPERS ...
 
Architecture centered publishing systems
Architecture centered publishing systemsArchitecture centered publishing systems
Architecture centered publishing systems
 
An Introduction to User-Centric EA - Andy Blumenthal
An Introduction to User-Centric EA - Andy BlumenthalAn Introduction to User-Centric EA - Andy Blumenthal
An Introduction to User-Centric EA - Andy Blumenthal
 
Running head organizational information system1 organizational
Running head organizational information system1 organizational Running head organizational information system1 organizational
Running head organizational information system1 organizational
 
Chap11 Developing Business/IT Strategies
Chap11 Developing Business/IT StrategiesChap11 Developing Business/IT Strategies
Chap11 Developing Business/IT Strategies
 
Ais Romney 2006 Slides 04 Relational Databases
Ais Romney 2006 Slides 04 Relational DatabasesAis Romney 2006 Slides 04 Relational Databases
Ais Romney 2006 Slides 04 Relational Databases
 
The 20 Best IT Jobs for 2013 and Beyond
The 20 Best IT Jobs for 2013 and BeyondThe 20 Best IT Jobs for 2013 and Beyond
The 20 Best IT Jobs for 2013 and Beyond
 
Systems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions ManualSystems Analysis and Design 8th Edition Kendall Solutions Manual
Systems Analysis and Design 8th Edition Kendall Solutions Manual
 

Destacado

Ten lessons from a study of ten notational systems
Ten lessons from a study of ten notational systemsTen lessons from a study of ten notational systems
Ten lessons from a study of ten notational systemsJeff Long
 
The hunt for new abstractions
The hunt for new abstractionsThe hunt for new abstractions
The hunt for new abstractionsJeff Long
 
The co evolution of symbol systems and society
The co evolution of symbol systems and societyThe co evolution of symbol systems and society
The co evolution of symbol systems and societyJeff Long
 
The nature of notational engineering
The nature of notational engineeringThe nature of notational engineering
The nature of notational engineeringJeff Long
 
Managing and benefiting from multi million rule systems
Managing  and benefiting from multi million rule systemsManaging  and benefiting from multi million rule systems
Managing and benefiting from multi million rule systemsJeff Long
 
Applying a new software development paradigm to biology
Applying a new software development paradigm to biologyApplying a new software development paradigm to biology
Applying a new software development paradigm to biologyJeff Long
 
Mathematics rules and scientific representations
Mathematics rules and scientific representationsMathematics rules and scientific representations
Mathematics rules and scientific representationsJeff Long
 
Issues in the study of abstractions
Issues in the study of abstractionsIssues in the study of abstractions
Issues in the study of abstractionsJeff Long
 
Notational evolution and revolution
Notational evolution and revolutionNotational evolution and revolution
Notational evolution and revolutionJeff Long
 
Notational engineering and the search for new intellectual primitives
Notational engineering and the search for new intellectual primitivesNotational engineering and the search for new intellectual primitives
Notational engineering and the search for new intellectual primitivesJeff Long
 

Destacado (10)

Ten lessons from a study of ten notational systems
Ten lessons from a study of ten notational systemsTen lessons from a study of ten notational systems
Ten lessons from a study of ten notational systems
 
The hunt for new abstractions
The hunt for new abstractionsThe hunt for new abstractions
The hunt for new abstractions
 
The co evolution of symbol systems and society
The co evolution of symbol systems and societyThe co evolution of symbol systems and society
The co evolution of symbol systems and society
 
The nature of notational engineering
The nature of notational engineeringThe nature of notational engineering
The nature of notational engineering
 
Managing and benefiting from multi million rule systems
Managing  and benefiting from multi million rule systemsManaging  and benefiting from multi million rule systems
Managing and benefiting from multi million rule systems
 
Applying a new software development paradigm to biology
Applying a new software development paradigm to biologyApplying a new software development paradigm to biology
Applying a new software development paradigm to biology
 
Mathematics rules and scientific representations
Mathematics rules and scientific representationsMathematics rules and scientific representations
Mathematics rules and scientific representations
 
Issues in the study of abstractions
Issues in the study of abstractionsIssues in the study of abstractions
Issues in the study of abstractions
 
Notational evolution and revolution
Notational evolution and revolutionNotational evolution and revolution
Notational evolution and revolution
 
Notational engineering and the search for new intellectual primitives
Notational engineering and the search for new intellectual primitivesNotational engineering and the search for new intellectual primitives
Notational engineering and the search for new intellectual primitives
 

Similar a Case study of rules as relational data

Four ways to represent computer executable rules
Four ways to represent computer executable rulesFour ways to represent computer executable rules
Four ways to represent computer executable rulesJeff Long
 
Mingle box - Online Job seeking System
Mingle box - Online Job seeking SystemMingle box - Online Job seeking System
Mingle box - Online Job seeking SystemBharat Kalia
 
ENG 102 Unit Six Page 1 of 1 ENG 102 Composition II .docx
ENG 102 Unit Six Page 1 of 1  ENG 102 Composition II  .docxENG 102 Unit Six Page 1 of 1  ENG 102 Composition II  .docx
ENG 102 Unit Six Page 1 of 1 ENG 102 Composition II .docxSALU18
 
Elements of Innovation Management in Computer Software and Services
Elements of Innovation Management in Computer Software and ServicesElements of Innovation Management in Computer Software and Services
Elements of Innovation Management in Computer Software and ServicesMichael Le Duc
 
Agent-Based Workflow
Agent-Based WorkflowAgent-Based Workflow
Agent-Based WorkflowLarry Suarez
 
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...David Stokes
 
BCBS -By Ontology2
BCBS -By Ontology2BCBS -By Ontology2
BCBS -By Ontology2bfreeman1987
 
Five Steps to Better Application Performance
Five Steps to Better Application PerformanceFive Steps to Better Application Performance
Five Steps to Better Application PerformanceSumo Logic
 
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Iver Band
 
Week8 Topic1 Translate Business Needs Into Technical Requirements
Week8 Topic1 Translate Business Needs Into Technical RequirementsWeek8 Topic1 Translate Business Needs Into Technical Requirements
Week8 Topic1 Translate Business Needs Into Technical Requirementshapy
 
Notes on Current trends in IT (1) (1).pdf
Notes on Current trends in IT (1) (1).pdfNotes on Current trends in IT (1) (1).pdf
Notes on Current trends in IT (1) (1).pdfKarishma Chaudhary
 
Introduction American Video Game Company is accepting propos.pdf
Introduction American Video Game Company is accepting propos.pdfIntroduction American Video Game Company is accepting propos.pdf
Introduction American Video Game Company is accepting propos.pdfsandeep252523
 
CAST for the Architect
CAST for the ArchitectCAST for the Architect
CAST for the ArchitectCAST
 
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015IBM France Lab
 
Components of CORBA
Components of CORBAComponents of CORBA
Components of CORBAGlen Alleman
 

Similar a Case study of rules as relational data (20)

Four ways to represent computer executable rules
Four ways to represent computer executable rulesFour ways to represent computer executable rules
Four ways to represent computer executable rules
 
Mingle box - Online Job seeking System
Mingle box - Online Job seeking SystemMingle box - Online Job seeking System
Mingle box - Online Job seeking System
 
Business rules-extraction
Business rules-extractionBusiness rules-extraction
Business rules-extraction
 
IBS Assessment 1
IBS Assessment 1IBS Assessment 1
IBS Assessment 1
 
ENG 102 Unit Six Page 1 of 1 ENG 102 Composition II .docx
ENG 102 Unit Six Page 1 of 1  ENG 102 Composition II  .docxENG 102 Unit Six Page 1 of 1  ENG 102 Composition II  .docx
ENG 102 Unit Six Page 1 of 1 ENG 102 Composition II .docx
 
Dit yvol3iss8
Dit yvol3iss8Dit yvol3iss8
Dit yvol3iss8
 
Elements of Innovation Management in Computer Software and Services
Elements of Innovation Management in Computer Software and ServicesElements of Innovation Management in Computer Software and Services
Elements of Innovation Management in Computer Software and Services
 
Agent-Based Workflow
Agent-Based WorkflowAgent-Based Workflow
Agent-Based Workflow
 
AtomicDBCoreTech_White Papaer
AtomicDBCoreTech_White PapaerAtomicDBCoreTech_White Papaer
AtomicDBCoreTech_White Papaer
 
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...
Controlling SOA in Support of Operational Improvement (ISPE PE Vol 31 No 4 - ...
 
BCBS -By Ontology2
BCBS -By Ontology2BCBS -By Ontology2
BCBS -By Ontology2
 
Five Steps to Better Application Performance
Five Steps to Better Application PerformanceFive Steps to Better Application Performance
Five Steps to Better Application Performance
 
Thought Leader Interview: Dr. William Turner on the Software-Defined Future ...
Thought Leader Interview:  Dr. William Turner on the Software-Defined Future ...Thought Leader Interview:  Dr. William Turner on the Software-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software-Defined Future ...
 
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
Thought Leader Interview: Dr. William Turner on the Software­-Defined Future ...
 
Week8 Topic1 Translate Business Needs Into Technical Requirements
Week8 Topic1 Translate Business Needs Into Technical RequirementsWeek8 Topic1 Translate Business Needs Into Technical Requirements
Week8 Topic1 Translate Business Needs Into Technical Requirements
 
Notes on Current trends in IT (1) (1).pdf
Notes on Current trends in IT (1) (1).pdfNotes on Current trends in IT (1) (1).pdf
Notes on Current trends in IT (1) (1).pdf
 
Introduction American Video Game Company is accepting propos.pdf
Introduction American Video Game Company is accepting propos.pdfIntroduction American Video Game Company is accepting propos.pdf
Introduction American Video Game Company is accepting propos.pdf
 
CAST for the Architect
CAST for the ArchitectCAST for the Architect
CAST for the Architect
 
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015
IBM Paris Bluemix Meetup #12 - Ecole 42 - 9 décembre 2015
 
Components of CORBA
Components of CORBAComponents of CORBA
Components of CORBA
 

Más de Jeff Long

Notational systems and the abstract built environment
Notational systems and the abstract built environmentNotational systems and the abstract built environment
Notational systems and the abstract built environmentJeff Long
 
Case study of rules as relational data
Case study of rules as relational dataCase study of rules as relational data
Case study of rules as relational dataJeff Long
 
Notational systems and cognitive evolution
Notational systems and cognitive evolutionNotational systems and cognitive evolution
Notational systems and cognitive evolutionJeff Long
 
Notational systems and abstractions
Notational systems and abstractionsNotational systems and abstractions
Notational systems and abstractionsJeff Long
 
Developing applications that stand the test of time
Developing applications that stand the test of timeDeveloping applications that stand the test of time
Developing applications that stand the test of timeJeff Long
 
Towards a new paradigm to resolve the software crisis
Towards a new paradigm to resolve the software crisisTowards a new paradigm to resolve the software crisis
Towards a new paradigm to resolve the software crisisJeff Long
 
Understanding complex systems
Understanding complex systemsUnderstanding complex systems
Understanding complex systemsJeff Long
 
Why we dont understand complex systems
Why we dont understand complex systemsWhy we dont understand complex systems
Why we dont understand complex systemsJeff Long
 
Automated identification of sensitive information
Automated identification of sensitive informationAutomated identification of sensitive information
Automated identification of sensitive informationJeff Long
 
Notational engineering
Notational engineeringNotational engineering
Notational engineeringJeff Long
 
The evolution of abstractions
The evolution of abstractionsThe evolution of abstractions
The evolution of abstractionsJeff Long
 
A metaphsical system that includes numbers rules and bricks
A metaphsical system that includes numbers rules and bricksA metaphsical system that includes numbers rules and bricks
A metaphsical system that includes numbers rules and bricksJeff Long
 
New ways to represent complex systems and processes
New ways to represent complex systems and processesNew ways to represent complex systems and processes
New ways to represent complex systems and processesJeff Long
 
Representing emergence with rules
Representing emergence with rulesRepresenting emergence with rules
Representing emergence with rulesJeff Long
 
The evolution of symbol systems and society
The evolution of symbol systems and societyThe evolution of symbol systems and society
The evolution of symbol systems and societyJeff Long
 
Towards a new metaphysics of complex processes
Towards a new metaphysics of complex processesTowards a new metaphysics of complex processes
Towards a new metaphysics of complex processesJeff Long
 
Call for a new notation
Call for a new notationCall for a new notation
Call for a new notationJeff Long
 
Notation as a basis for societal evolution
Notation as a basis for societal evolutionNotation as a basis for societal evolution
Notation as a basis for societal evolutionJeff Long
 

Más de Jeff Long (18)

Notational systems and the abstract built environment
Notational systems and the abstract built environmentNotational systems and the abstract built environment
Notational systems and the abstract built environment
 
Case study of rules as relational data
Case study of rules as relational dataCase study of rules as relational data
Case study of rules as relational data
 
Notational systems and cognitive evolution
Notational systems and cognitive evolutionNotational systems and cognitive evolution
Notational systems and cognitive evolution
 
Notational systems and abstractions
Notational systems and abstractionsNotational systems and abstractions
Notational systems and abstractions
 
Developing applications that stand the test of time
Developing applications that stand the test of timeDeveloping applications that stand the test of time
Developing applications that stand the test of time
 
Towards a new paradigm to resolve the software crisis
Towards a new paradigm to resolve the software crisisTowards a new paradigm to resolve the software crisis
Towards a new paradigm to resolve the software crisis
 
Understanding complex systems
Understanding complex systemsUnderstanding complex systems
Understanding complex systems
 
Why we dont understand complex systems
Why we dont understand complex systemsWhy we dont understand complex systems
Why we dont understand complex systems
 
Automated identification of sensitive information
Automated identification of sensitive informationAutomated identification of sensitive information
Automated identification of sensitive information
 
Notational engineering
Notational engineeringNotational engineering
Notational engineering
 
The evolution of abstractions
The evolution of abstractionsThe evolution of abstractions
The evolution of abstractions
 
A metaphsical system that includes numbers rules and bricks
A metaphsical system that includes numbers rules and bricksA metaphsical system that includes numbers rules and bricks
A metaphsical system that includes numbers rules and bricks
 
New ways to represent complex systems and processes
New ways to represent complex systems and processesNew ways to represent complex systems and processes
New ways to represent complex systems and processes
 
Representing emergence with rules
Representing emergence with rulesRepresenting emergence with rules
Representing emergence with rules
 
The evolution of symbol systems and society
The evolution of symbol systems and societyThe evolution of symbol systems and society
The evolution of symbol systems and society
 
Towards a new metaphysics of complex processes
Towards a new metaphysics of complex processesTowards a new metaphysics of complex processes
Towards a new metaphysics of complex processes
 
Call for a new notation
Call for a new notationCall for a new notation
Call for a new notation
 
Notation as a basis for societal evolution
Notation as a basis for societal evolutionNotation as a basis for societal evolution
Notation as a basis for societal evolution
 

Último

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Case study of rules as relational data

  • 1. Cover Page    Case Study of an Enterprise  System That Represents Rules  Primarily As Relational Data  Rather Than via Code    Author: Jeffrey G. Long (jefflong@aol.com)  Date: 2008  Forum:  Acta Systemica Vol. 8 No. 2 (2008) pp. 47‐54 available at  http://iias.info/pdf_general/Booklisting.pdf    Contents  Pages 1‐6: Preprint of paper.    License  This work is licensed under the Creative Commons Attribution‐NonCommercial  3.0 Unported License. To view a copy of this license, visit  http://creativecommons.org/licenses/by‐nc/3.0/ or send a letter to Creative  Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.  Uploaded June 24, 2011 
  • 2. Case Study of an Enterprise System That Represents Rules Primarily As Relational Data Rather Than via Code Jeffrey G. Long jefflong@aol.com Abstract Business rules are often narrowly defined, but they should include any and all rules that an organization follows to manage its affairs. These include all work processes, pricing rules, applicable laws and regulations (e.g. taxes), ontologies (e.g. defining the categories by which customers or products may be grouped), taxonomies (e.g. defining how a product or customer is actually categorized), and other kinds of rules. There is a distinct subset of these that are the technical interface rules which define various interfaces, such as with users (through forms and reports), data (via database management software), and other systems. In traditional software applications such rules are typically encoded as parameter-driven software. Because there are many rules, applications frequently require millions of lines of code. Such a large code corpus ensures significant life-cycle maintenance costs, as only programmers can update the code, and the code must change as the rules change over time. The approach we’ve used, called “Ultra-Structure,” is to remove any business rules that might ever change from the software, leaving only the control logic for a “competency rule engine” as software. All the rest of the rules are represented as data. We use and advocate a relational database approach to representing rules because of referential integrity, normalization, security, and other benefits offered by any modern RDBMS. Results are presented from a 23-year case study of a particular company. Key Words: Enterprise System; Databases; Business Rules; Software Economics; Business Process Reengineering Problems of Software Development One of the most vexing problems in the software industry is why over the past 50 years software (and software development) has not improved exponentially in its effectiveness and efficiency, in a manner comparable to hardware. While even home computer users can now afford a terabyte of data storage, writing code is nearly as laborious and error-prone as it ever was. In spite of decades of research and development, many software systems either do not or cannot meet users’ current or future requirements. Their construction and maintenance cost and time are also extreme. Solving this will not merely require that analysts ask better questions of users, for users can only say what they know now: how future government or other regulations, or mergers or divestitures, 1
  • 3. or new ideas or technologies, may affect their requirements are inherently unknowable. Furthermore, user understanding of their requirements evolves, especially under the guidance of an analyst who asks about logically-possible alternatives to whatever the user posits. They can also evolve when an analyst identifies for them new ways that computers or other decision- making technologies might assist them. Solving this will also not merely require that programmers become more efficient, for what programmers encode is the rules of the business, which are subject to constant change. Current Integrated Development Environments and libraries of software classes can only address a snapshot taken at a given time; changing code in response to changing user requirements will always be required. And when business rules are dispersed over hundreds of thousands of lines of code, even a well-designed system poses maintenance challenges. If important user requirements are inherently unknowable and unpredictable, then how can any system ever be designed? Most other areas of engineering have been remarkably successful in predictably delivering results. But applications such as bridges and homes, while complex, are physical systems where user requirements tend to change little or within limited areas. The standard engineering approach that moves from analysis of requirements, to design, to construction of the system, is excellent for these situations. But knowing all likely user requirements is a luxury not available in software design. Nor should it be, for software captures thinking in ways that other technologies do not, and thinking will always evolve. Yet we must aim to design systems that can act “intelligently” and can change greatly over time. This can be done by representing rules in a different and better manner. It requires converting rules from their natural language form (e.g. as in a policy manual) into one or more rules in a canonical form; categorizing those rules into a small number of formats called “ruleforms” that are defined by their form and meaning, such that any logically possible rule pertaining to that application area (e.g. order processing) can be expressed somewhere in the system; and managing these rules as records in various tables (one per ruleform) through a relational database management system. Thus, business rules are represented not as software, and not as data in XML tags, but as records (relations) in a modern relational database management system, such that referential integrity and security of the rules is guaranteed, and information can readily be accessed through various tools such as queries and/or report writers. One key benefit of this approach is that subject experts (e.g. trained business managers) can read and manage rules directly, without having to first explain them to programmers. This can help greatly as companies try to better manage their knowledge resources by making them external to the subject expert. Another key benefit is that it facilitates changes to work processes. This can help greatly as companies try to better manage their work processes by adapting them to new technological, regulatory, competitive, or other constraints. In this approach software is seen as essential to the solution, but is not itself the solution. Instead software is a problem that must be eliminated whenever possible. 2
  • 4. Case Study (1985-2008) The Company we are discussing here is a privately-held company which currently has about 50 warehouses throughout the United States. They are wholesalers of a commodity product, and are thus competing purely on price and service. Their customers are thousands of retailers who then resell the product to an end-customer who may be waiting in their office. The Company normally delivers orders within a few hours of order placement. It processes thousands of orders a day at its various branches, as well as from the Internet. In this competitive environment it has grown to become the largest independent wholesaler (i.e. not a manufacturer) in its industry. Intellinomics Era (1986-2002) Starting in September 1985, my former consulting firm (Intellinomics Corporation) built an enterprise system for the Company. At that time they had about USD $13 million in revenues. This system encoded as data only the interface rules regarding the format of screens and reports, user access authority, data structures, data retrieval, etc., while hard-coding in software the business rules such as work processes. The development cost of the system was about USD $250,000; it ran on a Digital Equipment Corporation VAX computer, had a character-based interface, and required about 35,000 lines of C code. It supported nine warehouses and about 50 users. The system was installed in September 1986 and was used by the Company for 16 years, until 2002. During this time the Company grew ten times as large, to about USD $130 million. It had no programming staff and used about ten hours per month of contracted programmer time. Industry-Leading System Era (2002-2005) The Company decided to move to a package that was the most widely used among wholesalers in the vertical market of the Company. Few if any requirements were discussed, and the system was installed in 2002. The vendor made many assumptions about how wholesalers in that vertical market would/should operate, but the Company had its own internal work processes and ontologies that were different. The system ran on an IBM minicomputer under AIX. It provided a character-based user interface and a highly unusual non-relational database system. After 18 months of working with the vendor, the system was deemed unacceptable. CoRE650 Era (2005-present) In March 2003 my current firm, CoRE650 Solutions LLC, started development of a new system. The Company requested the use of off-the-shelf software as much as possible, and as a direct result the system did not initially attempt to encode as data the interface rules, but instead hard- coded them using standard .Net development tools (form painters, etc. of the IDE). However, most other kinds of business rules were encoded as data this time. The resulting system required about 500,000 lines of C# code (excluding blanks and comments) and 160,000 lines of T-SQL code (including blanks and comments). It runs on a database server and terminal servers using MS SQL-Server and Windows Server 2003, supporting about 500 users having thin clients in the field. 3
  • 5. The system was installed in September 2005. The development cost of the system was about USD $3.4 million, and an additional $1.1 million has since been spent on various fixes and upgrades. During this time the Company grew an additional 40%, to about USD $175 million. The monthly work hours dropped sharply after installation and continue to fall, as shown in Appendix A. There is still a team of five people performing a total of about 300-400 hours of work per month; this is expected to continue declining. Since installation the system has processed nearly seven million different “business transact- ions,” defined as (for example) a sale of one or more items, plus delivery, invoicing, cash application, and accounting and inventory entries as necessary. A transaction might also refer to a transfer of products between warehouses, purchases of products from manufacturers, or credit/debit memos and inventory adjustments. The Company’s work processes continue to evolve, for example (a) the high price of fuel necessitated delivery charges under certain conditions, and (b) the Company decided to charge customers a restocking fee for returns made more than thirty days after purchase. Analysis of Results The project took longer and was more costly than initially expected. An analysis of actual costs to date versus budget shows a 1.95: 1 ratio. According to Forrester Research, however, midsize wholesalers normally spend about 0.6% of gross revenues on software; using this metric, the actual cost was 89% of the industry average. Appendix B shows a chart of these costs. While the budget overrun was of course not good news, the comparatively low ongoing maintenance cost will provide a continuing savings that goes directly to the bottom line of the Company far into the future. The main drivers of increased project cost were as follows: Converting almost all initial data, including transactions in progress, from a non-relational to a relational database required a great deal of conversion coding; in addition many problems/errors were found in the source data that had to be resolved before installation. The problem was compounded because the vendor could not or would not provide documentation for its database schema. This problem was unique to this situation; it is not likely to be repeated, although any data conversion can be difficult. We have no special tools or theories to help with this. To meet the COTS requirement, we used standard Microsoft .Net tools, but found that a great deal of code – about five times what was expected -- was required to be written, primarily for the user interface. We are now moving to a design that still uses .Net but where many of these rules are represented as data, so that code can be eliminated and future changes to user interfaces will be far easier to manage. It would have been better to design this flexibility in from day one. When the project started to become overdue, the design process was curtailed and discussions were minimized “until after cutover.” This resulted in one major subsystem (cash application) being designed and implemented in a more complex manner than was really necessary if the 4
  • 6. Company’s needs had been better understood. The subsystem then had to be redesigned and re- implemented with correct requirements after further discussions. Continuing to work on user requirements, when the problem but not its alternatives were known to exist, would have avoided this substantial effort. Lastly, by putting together a new team for this project, there was a steep learning curve in three areas: (a) the team needed to learn how to work together, which was painful, (b) the team needed to learn how to work in a geographically dispersed environment, with various team members all over the United States; and (c) the team needed to learn how to build and test a system where all rules were not easily found in code, but where the programmers and testers had to look in two places – the code and the rulebase – to understand what rules were in effect at any given time. It would have been better to have a team that had already worked together on similar projects, but that was not possible then. There is such a team now. Conclusions After moving most rules to data, the code that is left is mainly control logic that knows nothing about the world except what tables to look at, in what order, and what to do based on rules selected for execution. Since this control logic is unlikely to change over time, one benefit of this approach is that the software and data structures stay remarkably stable even as the rules continue to evolve. Another is that subject experts and business managers can explain new rules to business analysts (not only programmers), who can then directly update the rules through a RDBMS. In another prior project the subject experts directly updated the rulebase, without having to explain things first to a programmer or even an analyst. This eliminates the possibility of misunderstandings between subject-area experts and technical experts. Representing rules as data also means that the RDBMS must be optimized to work efficiently. This project has demonstrated the importance of minimizing the amount of software written and maintained. This can best be done by implementing both business rules and interface rules as data, not code. It has also shown the importance of readily changeable work process to facilitate the continuous evolution of business work processes. References Forrester Research, Inc (2005); US IT Spending Benchmarks for 2005. Long, J., and Denning, D. (1995); Ultra-Structure: A design theory for complex systems and processes; Communications of the ACM, Volume 38, Number 1 (pp. 103-120) Long, J. (1999); A new notation for representing business and other rules; Semiotica Special Issue: Notational Engineering, Volume 125-1/3 (guest ed. J. Long) (pp. 215-227) 5
  • 7. Appendix A: Actual Hours Required 2,000.00 1,800.00 1,600.00 Cutover 1,400.00 1,200.00 1,000.00 800.00 600.00 400.00 200.00 0.00 Jun-03 Jun-04 Jun-05 Jun-06 Jun-07 Mar-03 Sep-03 Dec-03 Mar-04 Sep-04 Dec-04 Mar-05 Sep-05 Dec-05 Mar-06 Sep-06 Dec-06 Mar-07 Sep-07 Dec-07 Appendix B: Actual versus Ideal Costs and Industry-Standard Costs 200,000 180,000 Actual Industry Standard 160,000 140,000 Cutover 120,000 100,000 80,000 60,000 Ideal 40,000 20,000 0 Jun-03 Jun-04 Jun-05 Jun-06 Jun-07 Mar-03 Sep-03 Dec-03 Mar-04 Sep-04 Dec-04 Mar-05 Sep-05 Dec-05 Mar-06 Sep-06 Dec-06 Mar-07 Sep-07 Dec-07 6