So is Congress, I said. And there is a lot in common.
Take that 2,074 page health care bill the Senate dropped yesterday. You start with a simple set of requirements, but once you get it down to functional specifications the program is a monster.
All the interfaces have to be described. All sorts of error conditions need to be allowed for. It's got to be compatible, it has to be complete. Somewhere in the process the focus on having it do something is lost.
We all want simple programs, and simple bills, I continued. But both Congress and IT shops face the problem of time.
There isn't enough of it. Congress faces the limits of its calendar and so can't do multiple bills on a subject. IT shops face the fact that there are only 24 hours in each day, 7 days in each week, and thanks to the Mythical Man Month (above), you can't add people to a project that's late.
(Notice any similarity between these giant sloths on the cover of Fred Brooks' classic book and the Senate leadership of either party? I thought you would.)
So when deadlines approach everyone puts in unpaid overtime. Congress votes on Saturday and programmers go past midnight. My son, who does not write code, asks his mom why she was up at 2 AM last week. Voters ask why Congress can't get its work done in a timely fashion, too.
Programming projects face the problem of feature creep. Suddenly managers find that the program has to do this, or that, or the other, and the spec sheet balloons from My Little Pony to Moby Dick.
In Congress this is called a Christmas tree -- a bill that has to pass gets all sorts of irrelevant provisions thrown in that wouldn't stand a chance in h-e double hockey sticks of passing normally. (They throw a puck at the end and get hello.)
When companies like Palamida analyze the finished code that comes out of even the best IT shops, they find hundreds of obvious errors and exploitable bugs, parentheses that don't close and go tos that don't go anywhere. The patching of Windows goes on forever.
Same thing happens when a bill becomes a law. Once the 2,000 pages of legislative language is compiled by the bureaucracy it may become 10,000 pages of regulations containing provisions you never heard of before.
An army of lobbyists stand ready to exploit every page to their benefit, never mind the public interest. Lawyers and hackers have much in common.
This may be why you don't see more computer programmers running for Congress. The job looks like work, and why run around for two years to do what you're already doing anyway?
I smiled at my dear wife after I finished this peroration. Oh what a good reporter am I, I thought.
Unfortunately she had fallen asleep. She has to get up at 4:30 AM and get some work in before the meetings start up again.
A Congressional spouse of either party could sympathize with me.
This post was originally published on Smartplanet.com