Opinion

Get Congress Under (Source) Control

October 21, 2009 - 8:09am
By Mike Wacker

Everyone loves to hate Congress. Despite recent improvements, Congress still only boasts an abysmal approval rating of 21 percent, according to the latest numbers from the Gallup report. Last year, Rasmussen Reports had their approval rating hit single digits, making George Bush seem quite popular in comparison.

New York’s state legislature fares even worse. They have acted so incompetently that The New York Times published an editorial Monday imploring voters to vote out everyone in the state legislature.

While it will take a Herculean effort to fix Congress, reform can start with the central task of a legislature: legislation.

Too often, legislation is filled with earmarks and pork barrel spending, leaving one to wonder how they ended up there in the first place. When engineering students cannot figure out part of an answer on a test, sometimes they fill the void with a phrase like “… and then magic happens.” While this does not earn them any points, for Congress, the magic answer is probably worth full credit.

Magic tricks also exist to insert poison pill amendments into legislation, especially when the Senate and House reconcile the differences between their respective versions of a bill.

By means of comparison, software engineers do not have to write legislation, but they do have to write projects with more lines of code than lines of text in a bill. If multiple people try to modify the project at the same time, all kinds of wonderfully bad magic can happen. To manage their projects, software engineers use a tool called “source control” to manage changes to their source code.

While hundreds of legislators will not be attempting to modify the legislation at once, source control still has many project management features that would benefit Congress, the press and the general public. These features can improve the way Congress handles the complex process of legislation.

In source control, one creates a new revision for a project by committing or checking in a list of changes to the code. Using the “diff” (short for difference) command, an engineer can see the list of changes they have made to a local copy of the code before they commit them to the actual source code. The “diff” command can also compare two previous revisions of the same project, allowing engineers to track changes to their code.

Imagine how the “diff” command could make a difference for Congress. Since bills can be hundreds of pages long, a legislator can easily slip in a few lines with a few hundred thousand dollars of pork barrel spending. If one uses the diff command, however, these changes will appear in broad daylight.

The moment a bill is introduced into Congress, it should immediately be put under source control and remain under it until it either fails or becomes a law. Congress’s custom source control system would be set up so that while only legislators could write or change bills in accordance with the rules of Congress, anyone else can use source control features which read or track these changes.

Source control also supports the concept of branches, or multiple projects that are similar but separate. Legislation itself often has two branches: one for the House and Senate. By using the “diff” command to compare these two branches, source control and the “diff” command can help the House and Senate merge their two bills after each one is passed.

Many companies enhance their source control system by adding e-mail notifications. After changes are committed, a quick summary of the changes is emailed to the entire team, allowing everyone to track code changes.

Suppose Congress had a similar e-mail notification system. Every time a legislator changes the bill — either by modifying a bill in a committee, passing an amendment or using a magic method to add earmarks — an e-mail goes out notifying interested parties of the changes. Interested parties would include journalists, watchdog organizations and anyone else who cares.

Of course, any discussion of source control would not be complete without the “blame” command. By running it against a file, one can know who last modified each line of the file. Thus, whenever someone sees some utterly horrendous code, a quick call to the blame command can determine who is at fault.

For Congress, the moment anyone sees anything questionable in a bill, be it an earmark or a poison pill command, with one command they can instantly find the legislator(s) to blame for this.

Furthermore, to implement source control, one does not need to overhaul the rules of Congress. Source control does not change what legislators can and cannot do; it merely adds a system for tracking these changes. This gives it a distinct advantage over past attempts to “reform” the rules of Congress.

Of course, if it never changes the rules, you may ask how it manages to accomplish anything.

In the Information Age, it does not suffice to have the information available somewhere; one must present the information in an easily accessible form. The Internet may contain almost anything one needs to know, but without a good search engine to find what you need, all this information is useless.

Likewise, while a good source control system does not prevent a legislator from adding an earmark, if they do add an earmark, they might as well write a press release for it. Congress’s source control system would soon send out an e-mail notification notifying the press anyway.

Mike Wacker, a senior in the College of Engineering, is a former Sun Assistant Web Editor. He may be reached at mwacker@cornellsun.com. Wack Attack appears alternate Wednesdays this semester.


Related Topics: coding, Congress, legislature