This article in Computerworld struck me as interesting - In the Labs: Automatic Code Generators. The subhead was "Even nonprogrammers can 'program' with these tools".
There are three issues with the premise of this article. Firstly why would you wait for things in the "labs" when there are technologies out there already empowering nonprogrammers? Secondly if I generate code, what do I debug when it does not work? Thirdly, who says nonprogrammers want to program?
So, first things first. Business Rules Management Systems (BRMS) or Business Rules Engines (BREs) have been around for years and already work. They are proven in huge installations (10s or 100s of thousands of rules) and have installations (like the one at Egg) where business users have made every change to the application logic for years without IT and without bringing down the system for maintenance. Why wait for some new technology to come out of the labs when you could buy a proven product today?
Second issue. If I generate code what do I debug? If a user builds a model or draws a picture or assembles components but the only way to execute what they have designed is to generate code and run that, how are they meant to debug it? It will be wrong sometimes and when it is they are not going to want to debug code. This simple fact has undermined almost all code generators to date and will undermine new ones too. You must be able to manage, test, QA, check performance etc etc on the units of design.
Lastly there is a simple fact, business people (nonprogrammers) do not want to program. They don't want to maintain business rules either. They want to manage their underwriting policy, tighten their risk constraints, promote a slow moving product or do some other business-level thing. It might be (and I believe it is) really helpful to let them do this directly in a working system (in collaboration with IT people managing the complexities of integration and performance) but they will only do so if:
- It uses their terms and expressions
- It seems like a regular part of their job
- It uses a familiar interface
- It is integrated with their day to day work
- It is secure and controlled
Now a good business rules management system allows this today, no waiting, no risk. Empower your business users and other nonprogrammers today. Use business rules.