Monday, December 14, 2009

Love isn't software, but then again...it kind of is...

For those of you that don't know, I'm a software engineer. In as simple terms as possible, I implement rules. These are rules that help businesses save money, cut paper and generally do some boring thing over and over again that it makes no sense to pay someone to do. So as often as I like to think that I am able to keep my views about work separate from the views I have about...I don't know...love, I find that inevitably the two come together. When this happens I have to remind myself that love isn't software, but then again...it kind of is.

The first thing you realize when you write your first program that takes input from a user is that users are crazy! They will do all kinds of untold stuff outside of how you as the programmer designed the program to function. They will hack, they will scheme and create work-a-rounds, and when all else fails they will just lie and say “I didn't do that.” This is just the nature of people. This is why I write if-statement after if-statement to ensure that the user doesn't misbehave and break my software. This is the part of my software engineering life that bleeds over into my love life. As much as I want to “see where things go” when I meet someone, I know that if I don't set the rules up early and quick, I'll have hell to pay!

Why is there hell to pay? Love is like leaving a million dollars during the Clinton years(because in the Bush years a million isn't quite the same) in the middle of an open, public space and hoping that no one will come along and take it. Open and insecure scare good programmers and get bad programmers promotions into management. I struggle with letting myself be unsecured and to be honest, I want to encrypt and secure EVERYTHING! From conversations all the way down to when I feel it is OK to say “I love you.” I want to define the rules of engagement, or how this love thing is going to work.

Like software, love is never glitch-free. These glitches often come from trying to squeeze every possible bad thing a user might do out of the system. The gotcha of all the squeezing is that you have to write more and more rules into the system which usually creates more and more loop holes and points of friction. What is a lover and a programmer to do...?

The solution...

The more you program the more you realize that more rules make code complex and unmaintainable. There will always be back-doors where the user finds some clever way to push some button they shouldn't have access to just when the moons of Jupiter align correctly and cause the world to come to an end. Love like software is ultimately at its best when there are some basic principles and boundaries set but the appropriate amount of trust is given to those people that show themselves deserving. Love shouldn't be a hard, rigid and fixed system of yes and no's but one that evolves over time as we learn more and more about the people that push our buttons. Appreciate and love the hacker in your life.

1 comment:

  1. You would make this correlation. You've defended your point though. Kudos.

    ReplyDelete