At least, I think it’s the right way:
“If I were writing laws such that I wanted everybody to agree on how to interpret them, I would use the software development life cycle: First, have lawmakers (analogous to “developers”) write drafts of the laws. Then a second group (the “test case writers”) would try to come up with situations that would be interpreted ambiguously under the law. Then a third group, the “testers”, would read the proposed law, read the test case situations, and try to determine how the law should be applied to those cases, without communicating with the law writers, the test case writers, or each other. If there’s too much disagreement in the third group on how the law should be applied, then it’s too vague to be a proper law. The only laws which made it through this process would be ones such that when they were finally passed, most citizens (the “users”) could agree on how to interpret them, in cases sufficiently similar to the ones the test case writers could come up with.”
Read the whole thing here. Despite all the nay-saying comments that follow, I think this is a superb idea, and clearly the right and just way to write laws.