| Recent
Articles |
Event-Driven Model Framework? As folks start adopting more AJAX and Flex for their applications, I see a lot of questions about "how to use to handle AJAX/Flex calls?" This is based on two things (in my opinion - putting on my flame-retardant suit)......
OSI Certifies Microsoft Open Source Licenses OSI made an expected move Monday, approving the Microsoft Public License (Ms-PL) and the Microsoft Reciprocal License (Ms-RL). Michael Tiemann noted that Microsoft followed the process, the discussion on...
MAX 2007 - Day Two The day's general session kicked off with Bruce (Chizen, CEO) telling us how much it inspires Adobe to see 4,000 people at the conference (after he told a funny story about going backstage at a rock concert, only to have the lighting and sound guys mob him and enthuse...
Feature-Driven Development At the IASA ITARC event in Atlanta I listened to Don Browning, Principal Architect at Turner Broadcasting, talk about Feature Driven Development. Turner considered XP, SCRUM and FDD sometime ago and found that...
|
| Recent WebProNews
Articles |
EU Lengthening Probe Into Google, DoubleClick European Competition Commissioner Neelie Kroes isn't quite ready to rubber-stamp Google's acquisition of DoubleClick. Back in October, Kroes said competition, not privacy, would be the focus of the Commission's...
FCC Gets Monkey's Paw From Telco Front Group SYou might say it's a sort of monkey's paw that Hands Off the Internet, an AT&T-backed "grass roots" organization has called on the FCC to investigate Comcast for violating the four principles of Network Neutrality. On the...
Yahoo Queries The Obscure Search queries that engines like Yahoo's rarely see can be problematic for the technology, and frustrating for the searcher who doesn't receive a relevant response. Such frustration serves no one, not the searcher, and...
Google Flashes $10M At Android Developers Google isn't looking for the next Commander Data, but mobile applications for the free, open platform they recently announced. The time-honored motivator, money, comes into play for application developers...
|
 |
|
11.14.07 Preventing Software Spoiling
By James Taylor
One of my favorite sites on software development - Coding Horror - had a great post on how software spoils.
Jeff's focus in his post was on how feature bloat can kill commercial software products. They go from tightly focused, easy to use products to bloatware that contains so many useless features (useless to any particular person, that is) that they are "spoiled"
When it comes to internal software - applications or services developed by an organization for its own use - one tends not to see this kind of bloating. However, even this kind of software "spoils". In particular the software no longer meets the needs of the business because the evolution of the software is out of synch with the evolution of the business. Typically this means that the business has changed and the software has not changed in ways that make sense given the new focus of the business. It can also mean that the software is simply not changing fast enough and so has fallen behind the business. You see this all the time as workers share tricks and tips to get around software problems, as note fields are used to contain data that can no longer be stored in structured fields as the rules about what's valid have changed. You see more and more manual exceptions generated and so on.
Externalizing business rules in decision services and empowering the business to manage the rules in such services can really help with this problem.
1. Business rules, being declarative and atomic, are easier to change as each change has fewer ripple effects.
2. Business rules, especially once templated, allow business users to much more actively change their rules for themselves, reducing the time from need to change.
3. Externalizing change into a decision service can dramatically reduce the rate at which the rest of the application "spoils" as so many of the changes that cause spoiling are changes to business rules.
4. If the application is originally developed so that the rules are under business control then developers may avoid introducing capabilities that will never be used. Business users might ask for something they don't really need but are unlikely to create rules they don't really need when they are doing the work themselves.
5. The separation of concerns that results from having decisions (business rules or business logic) managed separately makes any kind of change easier. A process change only requires change to process definitions, a policy change only to rules in a decision service, a technology change only to the plumbing.
I am sure you can think of others.
One additional thought. Several commenters on the original post made the point that Firefox's add-ons and greasemonkey scripts help fight bloat and therefore spoiling by allowing features that only some people want to be added only by those people. I have not given a lot of thought to how this might work with business rules but I could imagine allowing, say, store or regional managers to include or exclude specific rulesets for transactions in their scope of control to achieve something similar. Because one particular manager has a need to make a decision more complex thanks to some local problem, would not have to mean that everyone had to do so. The structuring of decisions with rulesets and rules would allow different degrees of complexity, even different approaches, to be assembled and disassembled by business users as they needed them. This might allow more business users to feel that the system reflected their true needs rather than some bloated corporate uber-policy.
Additional posts on this topic that you might enjoy include:
* The secrets of business user rule maintenance
* Decision Services
* Why business rules?
Comments
About the Author: VP of Product Marketing with a passion for the technologies of decision automation. 15 years designing, developing, releasing and marketing advanced enterprise software platforms and development tools. Across the board experience in software development, engineering and product management and product marketing.
http://www.edmblog.com
|