Алексей Махоткин

домашняя страница

Slashdot: Source Control for Bills in Congress?

Slashdot contributor Grepya points to an article in Slate: Specter Detector. U.S. attorney scandal update: Who’s to blame for those alarming Patriot Act revisions? According to it,

The background: When Congress reauthorized the Patriot Act last year, it included little-noticed language that changed the way U.S. attorneys would be appointed if their predecessors were removed in the middle of their term. Under the old regime, interim U.S. attorneys needed to be confirmed by the Senate after 120 days. If they weren’t, federal district judges could select their replacement. The new language removed both judicial and congressional oversight of the interim U.S. attorneys, letting DOJ anoint them indefinitely. This served three important goals: consolidating presidential power, diminishing oversight, and ensuring that “interim” prosecutors had permanent jobs. On Feb. 6, when the Senate held hearings on the issue of prosecutorial independence, former judiciary committee Chairman Sen. Arlen Specter, R-Pa., proudly claimed to have been as clueless as the rest of us. Denying New York Democratic Sen. Charles Schumer’s claim that he or his staff had “slipped the new provision into the Patriot Act in the dead of night,” Specter asserted, “The first I found out about the change in the Patriot Act occurred a few weeks ago when Sen. [Dianne] Feinstein approached me on the floor.”

Grepya wonders:

Now, I write software for a large and complex system containing millions of lines of code and I know that nobody could slip a single line of code into my project without my knowledge. This is because everything that goes into the build goes into a source control system, and email notification is generated to interested parties. This is for a body of work that affects perhaps a few hundred thousand people at most (our company and the combined population of all our customer organizations). Shouldn’t the same process be applied to bills being debated in national legislatures that affect potentially hundreds of millions of people?”

This is really quite interesting potential application of version control practices.

Related observation: in Russian legislation system amendments to the laws are written in a very peculiar language. Wording differences, insertions and deletions are expressed in a minimal possible way, with a string rationing of words. This of course makes the amendments almost unreadable, looking like old-style diff output. Minimal context and almost no rationale is usually provided, except for very vague preliminaries. This brings to memory the worst cases of log messages made by developers lacking attention to documenting changes.

There is of course a number of commenting publications which explain the rationale beyond changes and the meaning of new laws, but they are not available immediately, and it’s hard to audit the amendment just by looking. Also, sometimes the law is not available immediately in a new wording, and you have to take the old text and make sure that you understand how several subsequent amendments influenced it.

See for example the “Federal law on amending the Federal law “On science”” (in Russian).

(via slashdot)