I dropped this in a comment elsewhere in this discussion, but also makes sense here...
I find the government "requirements" process tends to create situations like this. Rather than build flexible software that puts some degree of trust in the person using it, they tend to overspecify the current bureaucratic process. In many cases, the person pushing for the software is looking to use software to enforce bureaucratic control that they have been unable to otherwise exercise, with the effect of the people the project initiator wants to use the software simply working around it. They then institute all sorts of punishments and controls to insure it must be used. This then results in the kind of insane situation we have here, where you can't do something perfectly legal because "computer says no".
the person pushing for the software is looking to use software to enforce bureaucratic control that they have been unable to otherwise exercise
This is frequently my observation as well. In the process of creating stricter control the bureaucrat increases the the power of their bureaucracy while shifting the blame for any problems to a faceless entity.
They then institute all sorts of punishments and controls to insure it must be used.
This leads me to one of my primary frustrations with the bureaucratization of our lives. Severe consequences are attached to low stakes situations and rational individuals who see the harm caused by the situation are rendered powerless to make changes.
> Severe consequences are attached to low stakes situations and rational individuals who see the harm caused by the situation are rendered powerless to make changes.
You can see the process at work within this very thread -- "And within that chain, there should be legal recourse and, in most cases, penal consequences, especially in the case of inadequate software quality/testing/validation, should the software fail to perform its task correctly." (https://news.ycombinator.com/item?id=26228195)
People seem unable to imagine any way to improve things except by adding more and more legal consequences. We need to stop doing this!
This is an excellent observation about the process of bureaucratization in action. For some reason the solution to the failings of bureaucracy ends up being even more bureaucracy and even greater consequences for failing to play by the rules of the bureaucracy.
Is bureaucracy like violence? If it isn't working you aren't using enough of it?
Yeah, it's tempting to imagine that all the problems in the world can be solved in the same kind of way, whether through more bureaucracy or more violence. Another example is the libertarian idea that all problems can be solved through the application of market forces. Maybe the general term for this is solutionism -- the idea that problems have "solutions" which take certain standard forms, when really these problems are the natural result of various patterns of human activity which may or may not respond to the "solution" you chose. In the worst case, you can end up in a sort of feedback loop, where an earlier "solution" was actually the cause of the problem that justifies the next "solution" and so on.
Solutionism seems like an apt term. In addition, solutionists may feel bound to their ideology and unable to see problems caused by their solutions for what they are leading the types of feedback loops you describe. People double down on their beliefs when presented with opposing viewpoints or even contrary evidence all of the time. Interesting observation.
> In the process of creating stricter control the bureaucrat increases the the power of their bureaucracy while shifting the blame for any problems to a faceless entity.
They are basically using software to preserve the problem to which they are the solution. i.e. the shirky principle
Implementing the law, especially in a common law country like the US is really difficult. The case law that is of primary importance here is often contradictory and fuzzy, as well as changing constantly. In addition the written law doesn't capture the whole situation.
In a civil law system it's more likely achievable, but I'm quite sure the requirements aren't that clear cut judging from the text.
Civil law codes are often just as ambiguous as common law systems. The only difference is that in a civil law system, you can’t firmly rely on precedent, so a judge can interpret the law against you just because he doesn’t like you, even in the face of contrary precedent.
That’s in part why international business to business contracts almost always specify a common law jurisdiction as the required venue for any lawsuits.
Well, there’s the law (federal, state, etc), then the additional regulatory rulings (federal, state, etc), then the as-applied department policies. Not really a lack of “law” but a mess of constraints that need to be deciphered into functional requirements with footnotes, matrixed to testing and preserved/maintained for the next guy. Ugh.. I want to charge the gov. 2k hrs for just thinking about it today.
16 months is a long time, especially when people are in jail and they should not be there. However in my experience as software developer nothing is simple, but everything can be done.
First problem coming to my mind: do they have the budget to pay the software developers to add this new functionality to the software? Do they have to ask the money to someone else, maybe to the very politicians that changed the requirement?
Then when this is settled there are the usual problems of analysis and implementation. Probably also where to get that input that they didn't have before. It could be a large project. But 16 months, ouch.
That’s as insightful as people saying “ just follow the constitution” when in reality people have been fighting about the exact meaning for centuries. Most laws leave some room for interpretation. This is pretty much necessary because the law can’t specify each corner case.
Same goes for software requirements. Good requirements make the intent clear but allow implementers some flexibility. Specifying everything in minute detail is usually a recipe for disaster.
"Implement the law" in a software product is as utopian as replacing judges with computers that "implement the law". Now does it makes sense why it is not possible?
I find the government "requirements" process tends to create situations like this. Rather than build flexible software that puts some degree of trust in the person using it, they tend to overspecify the current bureaucratic process. In many cases, the person pushing for the software is looking to use software to enforce bureaucratic control that they have been unable to otherwise exercise, with the effect of the people the project initiator wants to use the software simply working around it. They then institute all sorts of punishments and controls to insure it must be used. This then results in the kind of insane situation we have here, where you can't do something perfectly legal because "computer says no".