One more political observation, which I hope won't piss anyone off this time

Aug 24, 2009 16:58

As most of you have probably picked up on, I'm among that minority of computer scientists who actually writes code, and often prefers it to writing papers (much to the chagrin of my advisors and colleagues). I enjoy my theoretical work, but if I spend too much time on theory alone, the joy turns hollow; I want to build things that people can use. Things that are better than what we have now. Things that are founded on sound principles and elegant proofs, that run fast, scale efficiently, are easy to use and extend, work well, and fail gracefully.

I'm often torn, rather badly, between two motivations, which I'll call the Mathematician and the Engineer. The Mathematician loves elegance and correctness, and is willing to spend exponentially increasing amounts of time to get them. The Engineer respects elegance and correctness, but is far more aware than the Mathematician of the fact that there's a lot of work that needs to get done yesterday, and just wants to get the fucking code out the door. With unit tests and regression tests and a decent build system, sure -- the Mathematician likes those too, they're a good way to demonstrate correctness -- but the Engineer recognises that nobody can use the code we don't ship, and sometimes there comes a point when you just have to take a deep breath, commit the changes and call it a release.

I submit that political decisionmaking is subject to its own Mathematician/Engineer conflicts. And it's often hard, damn hard, to switch between one perspective and the other or to find a point of harmony between them, especially when the brokenness of a system is obvious to both Mathematicians and Engineers. The argument isn't so much over that something needs to change, but what needs to change, and how much work under the hood it's going to take to ship something that is at least less broken and scales better, and what the balance is between getting it more correct and getting something that will fix at least some of the short-term problems out the door at all.

(This post brought to you by the fact that the Haskell parser generator doesn't have precedence settings for attribute rules, the realisation that my life would be so much easier if it did, the further realisation that if I want it, I'm probably going to have to put it there myself, and the nagging knowledge that there's a less elegant way to do it.)

math, politics, where's all the rum gone?, engineering

Previous post Next post
Up