Saturday, November 15, 2008

Hard Cases Make Bad Law

David McCoy complains about More Loopholes in legislation. Apparently the State of Nebraska is making an unplanned collection of abandoned teenagers, because it forgot to put an age limit on its abandoned child legislation. [CNN 14 November 2008]

My friends in the Requirements Engineering community look at the legislative process with despair. A single piece of legislation is a highly complex set of provisions intended to produce a given set of outcomes. It is not just ambiguity (David McCoy's particular bugbear) that causes problems, sometimes the problems are caused by clumsy and complicated attempts to avoid ambiguity. Feature interaction between these complicated provisions within a single piece of legislation, let alone multiple separate acts, often creates additional loopholes. New legislation is constantly required to correct the unintended effects of previous legislation. Systems engineering methods (or perhaps systems-of-systems engineering) would surely make a big difference. Despair or opportunity?

(However some stakeholders, such as those lawyers and accountants whose livelihood depends on selling knowledge of these loopholes to their clients, seem to have little incentive to improve matters. Legislative bodies are packed with lawyers and accountants. Funny thing that.)

But there are some other important lessons for complex systems of systems here. All states have some legislative provision for abandoned children, but Nebraska is the only state that didn't specify an age limit. Hence children who are too old to be abandoned in other states are being driven to Nebraska and dumped there. This is similar to the situation of a service provider who tries to offer an unlimited service when most other service providers only provide a limited service, and ends up with a skewed distribution of demand. Think broadband - the service providers who offer unlimited broadband are going to get a lot of high usage customers. (So the economic viability of a given service, at a given price and service level, may depend on the actions of your competitors.)

Nebraska is therefore under peer pressure to fall in line with other states. In a connected world there isn't much scope for local autonomy, if it means that a state offering a better service gets dumped on by its neighbours. Nebraska is therefore likely to introduce a 3-day or 30-day age limit.

So what happens to the problem children who are older than 30 days? It's not as if their problems can be eliminated by a simple stroke of legislation. The families who have been dumping their children in Nebraska clearly have serious problems, and perhaps Nebraska has decided it doesn't want to help them. So which system takes over responsibility for these cases?

And don't say there might not be a system at all. I reckon some kind of system is inevitable, but it just might not be a very nice system. The underworld has plenty of systems: of crime and drugs and prostitution and abuse. In a complex distributed world, there are often stakeholders whose goals and values conflict with ours, and this is all grist for the requirements engineering mill.

David suggests that legislators should write laws assuming the worst. I agree that there needs to be a much more rigorous analytical process before designing any complex system, and this needs to start from the desired outcomes. It also needs to include some kind of environmental analysis, understanding the potential interactions between a given system and other systems, including potentially competing or hostile ones. But I go further: each piece of legislation needs a well-defined scope, and this should ideally come from some kind of overall political architecture (equivalent to an Enterprise Architecture).

No comments: