John Cowan asked why I introduced a distinction between "business rules" and "technical rules" in my post "Sean McGrath and Data Checking". The reason is because I've often had to work with business analysts on business rules and the relationship of those rules to what kinds of checking can be applied to XML business messages using schemas.
In my experience, business analysts do not accept that any rule that is checked by a schema is a business rule (which is the definition of "business rule" that some people with more purely technical backgrounds like to use). Rather, they take the opinion (which I don't oppose) that business rules are things that they, as business analysts, decide upon. Any other rules that are imposed on the messages aren't business rules, in their view.
John gave an example, asking whether it's a business or a technical rule that says the web site must be in HTML. Let's look at that question. When you put up a web site, you typically do so to provide information to people with web browsers. So the business rule is that your web site must publish information in a format that can be displayed by web browsers. A further refinement is that you are likely to want to target a certain group of people with web browsers (from few to many to all possible users), and so you need to publish the information in a format that will be sufficiently convenient for most or all of your target audience to read. You may also have business rules around needing to use technologies in which your staff already have sufficient training.
So in some cases, the choice of HTML for your web site is forced upon you by the sum of one or more business rules. That said, we all know that there are web sites based on Flash rather than HTML, or even XML with CSS rather than HTML, so some people will have the freedom to make a technical choice which is not constrained by a business rule. That kind of choice is a technical rule, as I see it.
Another example is the question of how you define the order of content of a complex type in a W3C XML Schema. There are often business rules that tell you what information you need to have, and there may also be business rules around how you name the elements and attributes. However, whether you impose a strict sequence on the elements in that complex type (as is often done) is typically a technical rule for data-oriented XML (i.e. the business analysts don't typically care what order the data is in), but a business rule for document-oriented XML (where order is important).
This is all nomenclature of course, it's all a matter of jargon, so the question isn't one of what's the right or wrong way to classify business/technical rules. Rather, the question is what's the most helpful way to do so, what makes the most sense to the most people. I think that talking about both business and technical rules works better than talking about business rules alone, even though there are always going to be grey (gray) areas in deciding what is a business or technical rule.
You can learn a lot about what your real business rules are when you try to decide which rules are technical only or not. I've had to do that in the past, and it helps you to realise earlier rather than later when something you thought was a technical rule actually impacts your ability to satisfy the actual business requirements (as opposed to just the ones that were listed for you at the start of a project).
Recent Comments