There is an easy way for Pelosi and friends to bring unprecedented transparancy and accountability to the legislative process. The trick is to adopt a common programming tool called "Version Control." All Bills-in-progress should be placed in a Bill repository. Any member of congress could change a Bill (subject to the usual rules for such things), and the whole Internet could see the current version or any previous version. Advanced software tools would allow people to search for who changed what and when, to view how a Bill evolves, to find pork, and to see how a legislator's actions compare to who funds his campaign contributions.
About version control
You can think of legislative version control as the mirror image of electronic voting. Electronic voting uses 21rst century tools to dramatically decrease accountability and transparency in a way that appalls most computer professionals and informed citizens. Legislative version control uses high-tech tools to dramatically increase accountability and transparency in a way that delights many computer professionals (who use similar tools themselves every day). I hope it will also delight informed citizens as well.
I explained a lot of the details about legislative version control in a previous diary. You may want to read that for a lot more background info. But here's a brief summary:
The official copy of all Bills (in progress or passed) is stored in a Bill Repository. Members of congress can make changes (subject to the usual rules of friendly and unfriendly ammendments); all changes are tagged with the name of the legislator who made the change, when it was made (and also, perhaps, a brief explanation of why). Anyone with Internet access can see 1) the current version of the Bill, 2) any previous version of the Bill, 3) the difference between any two versions of the Bill.
Sound simple? It is. And yet the benefits of this simple tool would be enormous.
Expected benefits of legislative version control
I summarized the benefits of legislative version control in my previous diary on the subject, but here's a quick rundown.
Anti-pork
-Allow the many eyes of the Internet to detect insertion of unhelpful earmarks
-Discourage pork by allowing anyone to see who added what
-Allow a legislator's records of earmarks to be correlated with his record of campaign donations
Assess legislators' records
-Easily see everything your legislator accomplished, or tried to accomplish and failed
-See the portions of Bills your legislator eliminated (or tried to eliminate)
Guide judicial decisions
-Brief explanations of why something was added to a bill (aka Metadata) would aid courts in determining original intent
Technical challenges to implementing initial version are small
Some people have wondered whether version control tools can possibly scale to a problem as hard as a congressional bill, with thousands of pages of text and hundreds of authors. This is a reasonable concern, but there is no need to worry. Version control software is already used for much, much larger problems. All large software projects use version control; the largest can be the equivalent of hundreds of thousands of pages with thousands of contributors.
Even a large congressional bill is only the equivalent of a small- to midsize open source project. Numerous tools have been developed to run those, such as subversion, cvs, visual source safe. Its possible that some of this software could be used as is. If not, I'd bet that modest tweaking of the source code-- of an amount a dozen programmers could do in a week-- could quite easily support legislative version control.
Technically, this is not a very hard problem. Especially since the programmers have solved a similar one several times over, and we can use their tricks.
Start with baby steps
There is a longstanding debate in software, politics and just about everything else between incrementalists and completionists. In a nutshell, incrementalists believe you should solve a problem a bit at a time, while completionists believe you should solve it all at once. (For example, do you start give government-sponsored healthcare to children, or just solve the whole problem once and for all?)
Both approaches can be appropriate, and both can lead to disaster. But I think that the best way to introduce legislative version control is to take an incrementalist approach.
Start by putting the plain text of a bill under version control. This won't solve the whole problem-- it will be confused if a bill is reorganized or reformatted, or if a large chunk (such as a committee report) is inserted all at once. But a plain-text version control will yield enormous benefits. We will immediately be able to see, for example, the insertion of earmarks. Furthermore, placing the bills on the Net will likely have programmers coming out of the woodwork to develop another round of tools. I strongly suspect that the problems caused by sections of a bill getting moved around can be solved by techniques developed by bioinformaticians to deal with sections of genes getting moved around from one species to the next. Just as many programmers "Mash" Google Maps together with, say, predicted (sea level rise), so they will mash the text of a bill with data on campaign contributions.
After an initial version is working, we can worry about adding Metadata (and/or making the whole document XML), GUI authoring tools, better APIs, tracking who votes on whether to include an unfriendly ammendment, and all the other things that technical types salivate over.
As I've said, the technical aspects of this are fairly straightforward. The hard part is generating the political will for this. So let's keep it simple at first. We'll add on all the bells and whistles, after the first bit is shown to work.
Where to from here?
How do we start? I don't really know, and I'd particularly like community input and help.
The political will may just be there.. the precursors are certainly there. The Obama/Coburn bill on transparency in government funding is a big step in the right direction. Pelosi seeking our input is a step in the right direction.
Should we start with a single committee? With a state legislature? As an add-on to the committee transparency project?
Tell me what you think, I don't know how to go about this. Or help me spread the word.
PS I should mention we're discussing this over at the Commitee Watch yahoo group.