Code Like No One’s Watching…

Shortly before the end of my employment, my manager chided me for using profanity in my variable names. What? Work makes me angry. Can’t help it.

As an undergraduate at Caltech, I wrote a small CAD program to place layout cells for the Asynchronous VLSI group. I named it SyPHiLiS. It was an acronym for SYstem for Placing Hierarchical…Layout something or other, I forget. It was a clever acronym. Another labmember later renamed it to SysIPHUS, a reference to what it feels like to work with Elaine.

I write code with the assumption that I’m the only one who will ever see it. Most of the time, that’s true. But on the occasions when it isn’t, it’s embarrassing and frustrating for everyone involved.

I code the same way I write: In a stream of consciousness to get everything out on the screen before I lose my train of thought. This results in a long, single-threaded convolution, not to mention sloppy and loose styling.

Warren and I have been working on separate pieces of SMOPF for a few weeks now. Today, Warren tried to integrate our work. He complained that my code was hopeless. I insisted that I do the integration myself, out of fear that he would inappropriately touch my things.

So I had to adapt Warren’s code to mine. There was nothing justifiably wrong with his code, but I found myself wanting to strangle him. Each object was firmly embedded in its own ecosystem, and to introduce my code meant uprooting everything. Even minor things were aggravating. Based on his linebreaks and indentation, Warren presumably writes all his code on an iphone.

Even in a sizable company with an established subversion system, developers will occasionally step on each others’ toes. We decided to fragment the files and set up a shared Dropbox folder. Dropbox works well for a short-term project with modular pieces because we can quickly see when our functionality diverges.

And so, SMOPF productivity has increased by an order of magnitude. Launch in 3 days 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s