Tuesday, June 26, 2007

Congress's API

david alpert

HuffPo

The field of computer science, at base, is about efficiency. Algorithms are evaluated based on the time they take to run -- "big O notation", using formulas like O(n2) or O(n log n) telling how much time it takes to accomplish a task based on the size of the input. Programmers love to optimize systems, to make them run faster and better and more reliably. And one of the great joys of computer engineering, unlike, say, architecture or bridge building, is that if something doesn't work optimally, it's often not that expensive to simply rewrite it.

It's easy to think government ought to work the same way. After all, government is simply a social construct, governed by a set of rules (laws) just as a computer program governs a machine's behavior. (Larry Lessig famously wrote how "code is law.") If some aspect of government isn't working, why can't we just reprogram it?

Unfortunately, government is not just a socially programmed system executing a set of legal instructions, but it's a complex one with lots of dependencies. In software, you might choose to simply rewrite your code, but you may be running it on an operating system you didn't write, with an application server you didn't write, accessing a database you didn't write. (If they're open source, you can try to submit patches, but they won't always be accepted). Or maybe your client needs you to integrate your code with some legacy system written decades ago on an IBM mainframe in FORTRAN.

When dealing with a system we can't fix, we try sending it data and seeing what it will do. If I call this function, this happens. If I put that data there, that happens. Software engineers start acting like biochemists -- if the cell's concentration of ions is such-and-such, then the cell will exhibit so-and-so behavior. You can complain about the cell or curse the people who wrote the FORTRAN code, but you can't reason with these systems and explain to them why they're wrong.

To get results, we must treat government similarly. Think of Congress as a black box that reacts to various stimuli. Send them ten thousand letters from citizens in their districts about an issue, and they'll pay attention. Get a lot of people to give money to their challenger, and they'll think long and hard before voting against your point of view. Make it clear that voters care about an issue, and they'll care, too.

People on Capitol Hill like to think they're impartial stewards of the country, thinking dispassionately about the Right Thing to Do. But usually there's no consensus on what that right thing is. And when people in Congress do the wrong thing, it's easy to get frustrated about their backward thinking. Ed Felten, a terrific advocate for engineers, wrote a clever post rightly excoriating Rep. Howard Berman for saying he'd consulted "all the interested parties" on patent reform legislation when in truth he'd only consulted all of the Beltway lobbying groups, not citizens. Many commenters chimed in that politicians only listen to the groups that give them money and "know which master they are serving."

Back when Berman was appointed chair of the House IP Subcommittee, Larry Lessig wrote a scathing critique of the Democrats, newly in the majority. "'Radical' changes in Washington always have this Charlie Brown/Lucy-like character (remember Lucy holding the football?): it doesn't take long before you realize how little really ever changes in DC. Message to the Net from the newly Democratic House? Go to hell." Lessig saw Berman's appointment as a rejection of the blogs and activist groups on the Net that regained them the majority.

Felten is right that Berman wasn't considering the public interest. Lessig was right that the leadership wasn't considering Net activists' concerns when appointing him in the first place. But simply saying that on a blog is like saying that a cancerous cell shouldn't be dividing so darn much. True, but we don't just talk about it, we develop chemotherapy and radiation and drugs to stop it. Instead of just blogging or whining on comments, we need to be developing antibodies to the special interest groups. The ordinary citizens, who Congress isn't listening to, need to make themselves heard, by writing letters, making phone calls, signing petitions, giving money, and voting.

We know it works. Just look at Net Neutrality, an issue that most people still don't understand. But a coalition of groups from Free Press to MoveOn to the Christian Coalition worked together and didn't just talk, they bombarded Congress with advocacy. And it got results. Several major presidential candidates and the congressional leadership came out in support of Net Neutrality. The stimulus was strong enough, and the response meaningful. That fight is far from over, but it shows what citizens can do when they take action.

Next time you read about the latest assault on Internet freedom, don't just blog about it. To Lessig, Felten, Cory Doctorow, and all the other great bloggers, don't just write about how much it sucks, direct people to get involved to fix it. Encourage them to join or give to groups like Save the Internet, Free Press, Public Knowledge, EFF, or the political action commitee I founded, IPac, as well as many more.

For a long time everyone complained bitterly about Microsoft's monopolistic behavior and its operating system dominance. Then some hackers got together, enlisted more hackers, and created an alternative so good that most Web sites don't run on Microsoft software and (coupled with several more innovations) some people say "Microsoft is dead." We can make the IP extremists' and the information gatekeepers' positions dead in Washington, too.

No comments: