Hackathons run by companies have always seemed to me to be a way for them to unleash creative thinking without having to devote significant company time to it or make strategic tradeoffs.
The best companies find a way to build the spirit of hackathons into the daily culture and provide scheduled, dedicated time to do this during normal business hours.
That being said, if you're young and have no kids then hackathons are probably a lot of fun. After you have other commitments in life, it just doesn't work.
If you're running a hackathon in a company do it on company time and make sure to be prepared to do something with the ideas they generate. Results of our recent hackathon is a good example how to do it: out of 7 out of 14 projects are finding their way to the product roadmap. We run it on Thursday-Friday with demos on Monday morning.
If you don't follow up, event may backfire and will remain an example how a company merely pays lip service to ideas coming from developers.
"Hackathons run by companies have always seemed to me to be a way for them to unleash creative thinking without having to devote significant company time to it or make strategic tradeoffs."
Yes. The internal hackathons I've been involved with have taught me a lot about a) problems developers face that they're motivated to fix, and b) areas developers are personally interested in and motivated to put forth some effort. (I suppose those are sort of the same thing, although what I meant by the first was fixing problems, and the second was introducing new features or products.)
The internal hackathons at Yahoo (Europe) were essentially an exercise in futility. They jumped on the hackathon bandwagon, but were unprepared to deal with the after effects of a hackday - what to do with these ideas.
From what I saw, hackday was used to pretend the organisation cared about the ideas of it's engineers and web developers, but at a safe enough distance not to affect their product roadmap. When push came to shove we were all enthusiastically encouraged to patent our ideas, because it protects us from evil people stealing all our ideas. Naturally I refused.
The Yahoo Open Hackdays also, was an exercise in futility. Yahoo didn't do anything with ideas generated, or encouraged the people who attended and built something. It was just a two day event over a weekend where a venue was populated by groups of people who may be building something, or not. Esssentially it was just a marketing ploy to get developers using the Yahoo APIs for a weekend.
Looking at that, these hackdays offered no value. I don't need a hackday / hack-weekend to work on ideas I consider interesting. I don't need to be in a noisy drafty building where the roof opens up during a thunderstorm ( http://developer.yahoo.com/blogs/ydn/posts/2007/06/hack_day_... ).
I gave up on the internal hackdays, after participating in two: winning one, and getting a notable mention for the second. Ideas are no good gathering dust on the shelf. And all hackdays accomplished was for the company to have an inkling on the ideas I was working on in my own time, so they could decide to claim ownership if they liked.
Open Hackdays are only useful to meet up with people you haven't seen for a long time. So having free beer and pizza is useful, I guess.
To be honest, the things I did gain from being at an open hackday:
* Watching James Aylett build a social network from scratch, and fully unit-tested. That demolished most of my reservations of unit-testing and development agility.
* Meeting some of fine Yahoo US folk during that time: Ryan Kennedy and Dav Glass.
* The internal hackday win led me to meeting David Filo to give him a quick demo. Not often I meet people who are also Wikipedia entries.
It all depends how you approach it. We recently went away for a week (with our wives) as a development team, locked ourselves in a rural cottage, and built the first iteration of an iPhone app for the site.
We worked normal hours, spent evenings relaxing, and still got a huge amount done in the week because we weren't in the usual environment of having distractions and other things popping up. A great time was had, and because we hadn't spent a weekend coding for 36 hours straight we were fresh and ready to go on Monday morning.
The best companies find a way to build the spirit of hackathons into the daily culture and provide scheduled, dedicated time to do this during normal business hours.
That being said, if you're young and have no kids then hackathons are probably a lot of fun. After you have other commitments in life, it just doesn't work.