Friday, January 11, 2013

Isn't this supposed to be fun?

I was unfortunately sick all day.  Bleh.  That's never fun.  What makes it unfortunately sick instead of just regular sick is that I had a bunch of fun stuff to tackle on my side project/startup/"internship"/what have you.  After about an hour of effort that only resulted in 10 lines of code [0], I was frustrated with my lack of progress and inability to focus.

Wait.  Isn't this supposed to be fun?  I'm building this out of my own free will.  Sure, there's the promise of a liquidity event but I'd go to Wall Street if all I cared about was money.  When we get down to it, I really enjoy programming.  Don't we all?  One of the best things about the programming field is that there's a bunch of people who genuinely enjoy the work they do.  We create amazing things and then give them away for free.  Heck, I even set a personal milestone when I released my first project that was built for more than personal edification.

Programming is incredible.  I get so much of a rush out of watching all my tests pass and seeing a project grow from idea to design to a fully-functioning application.

In the midst of all this back-patting, there's a lot of activity that just seems a lot like work.  I don't mean the depths of programming purgatory when nothing's working and you've got no clue why.  I'm also not talking about crunch time when all of your technical debt is called in.  These valleys are both par for the programming course and I hope to address them another time.  The "work" is rather the midpoint when there's 200 lines of code that need tests and someone's got to write them.  If you like writing tests, feel free to substitute the grind you don't like.

Work's fine if you're getting paid for it.  That's the whole point of work, doing things you don't want to for pay.  Us programmers are a different world.  It's easy to dismiss things like testing and refactoring as "work" and blow them off - that's how technical debt occurs.  If we do that, then we're ignoring the greater purpose, the entire reason we're writing code in the first place: To create!

The thing that unites us as hackers (rather than a loose conglomerate of "geeks") is the fact that we are all makers (of some form or another).  We enjoy creating stuff.  The goal isn't to maximize fun now, if it were, we'd all be in a giant chocolate orgy.  Our maker urge pushes us to both create and improve.  If we only focus on the now of boring test writing, we miss the wonderful big picture of making.

Of course, there's something to be said for taking a break if you're sick or to avoid burnout.  On the whole, don't be afraid to charge into boring for the end result of making something great.

[0] Yes, there are projects where 10 lines changing for only an hour of effort can be huge.  This was not one of them.

No comments:

Post a Comment