The importance of silly projects

In engineering, we love to hack. It’s not just something we do because we get paid … it’s something we do for fun (that’s what’s kinda awesome about software engineering as a job). Obviously we’re usually working on the core product, building new features, fixing bugs, and refactoring code to make it harder/faster/better/stronger. But sometimes, towards the end of the day, we write stuff that is just for fun.
For example, a couple of weeks ago, Eugene noticed that we waste a lot of time arguing about where to go for lunch. So he wrote a “lunchbot”, that hangs out on our irc channel. The lunchbot knows the restaurants in the area and picks a random one whenever we ask it. This is a dorky but extremely efficient way to decide where to eat … no one can argue with the verdict the lunchbot gives.
Last week, Sylvain noticed that there was no way to know whether code was currently being deployed to the server. So he hooked up some (huge) speakers to a spare desktop and wrote a script that plays a bell sound every time the deploy script is run.  That way, two people won’t try to deploy at the same time (we’re not sure what would happen in that case, but our theory is that it wouldn’t be good). We’re thinking of upgrading this script to tell us when someone subscribes to slideshare, renews, or cancels … this would give everyone on the team a visceral feeling of the rhythms of our business (sort of a “sales gong for fermium”). When do people upgrade? When do they downgrade? (Full disclosure: the idea came from the movie “Middle Men”, which was otherwise mostly terrible).
Fun projects like this are why a lot of us started programming in the first place, but with deadlines and customers and all the pressures of writing production code, it’s really easy to get all serious and forget about the sheer joy of programming. As a programmer, you can literally write software that changes your workplace for the better! So the next time you need a break, look around and see if there’s something about your workplace that could be improved with a 20-line ruby program. If this sounds like fun to you, you should know that we’re hiring.

10 Responses to “The importance of silly projects”

  1. Adam

    I couldn’t agree more. Programming can be tiring and can burn you out quickly if you don’t find something to do for fun.

    Just the other day I spent some time building an online “wall” application for a co-worker that was leaving instead of doing a card.

  2. Bryan

    Completely agree with you. We run analysis of buildings to find savings opportunities and one of the guys added speakers to our server so when a customer submits for analysis it plays a quote from Space Balls that starts “Found anything yet? We ain’t found..”

    Total lines of code added less than 10. Number of laughs from it playing at inappropriate times, countless.

  3. Richard Schneeman

    A tip, in your deploy script create an easily accessible file on a server before the deploy is started, and remove it after the deploy is finished. Anyone else who tries to deploy when the flag already exists should exit. Not perfect, but it will save you when someone accidentally unplugs your speakers.

  4. Will

    Why not just have a channel in IRC for deploying since you’re already using IRC. That’s what we do at Etsy. When you are deploying set the topic to your name. If people want to deploy while you are deploying they just add their name to the end of the topic and we cycle through.

  5. Shahriar Haque

    Interesting article, but I wonder why you started a programming article with “In engineering, we love to hack” ?

  6. Amit Saha

    Couldn’t agree more. Even after a very stressful week/day, I have myself experienced a sheer joy even when I wrote a 10-line script for fun. My most recent fun project was to implement a simple proof-of-concept to take codes from a designated email address and compile/interpret it back and reply to the sender with the output.

    Pure fun!

  7. Nathaniel

    Thanks, Slideshare team. And I’ve this confession to make: your project really inspired me. It’s provided me just the right tool to offer myself to my community for service. You may view my slides, which I’ll make as regular as I can. Thanks to you!

  8. kelly

    Just the other day I spent some time building an online “wall” application for a co-worker that was leaving instead of doing a card.