I think a "non-interruption weekend" specifically designed around healthy food and sleep breaks is more fruitful in general.
The true value of a hackathon is twofold (imo)
- you don't have normal office interruptions and the like and can focus on one thing for an extended period
- you get to meet interesting people and exchange ideas
I think just focusing on that and mostly ignoring the "extremeness" of hackathons would be awesome. Instead of thinking "how can I code on for hours" a better focus would be "how can we generate a very productive and pleasant environment and still reap the benefits of hackathons".
For example, if it's a biggish place, childcare for parents would be something I'd think about before diving into how to get more coffee to the venue ;)
Did one a couple years ago - there were just 4 of us, and I was the only software guy. In ... about 30 hours (including my drive time to/from home a couple times) we had a decent-looking and moderately functional piece of software. It actually did quite a lot of stuff, but not what was originally talked about. But everyone was still impressed. Why? Mostly because I was able to focus on a few core things while saying no to most ideas/requests. I just kept saying "no", over and over, while working. Once the base was done, it was easier to say 'yes' to some ideas, or at least sketch them out.
We came in second place, out of about 20 teams that started the Friday night. I chalk about 80% of it up to the focus/constraints and ability to adhere to those.
If it's a biggish place, I think hackatons should take place during work hours. I knew a place where hackatons were 3 days in the week during work hours (technically you could stay after, but as it was a competition it felt partly like cheating).
One of the point to make it work was to have it focused on somewhat viable or useful ideas (you could submit stupid stuff as well, but not in categories with prizes), so the company gets it's share of benefits from the event without having to screw the participants.
In a way it's like condensing a few weeks of "20% time" into a few days, and not "come to work for free during the weekend, it will be so fun"
The true value of a hackathon is twofold (imo)
- you don't have normal office interruptions and the like and can focus on one thing for an extended period
- you get to meet interesting people and exchange ideas
I think just focusing on that and mostly ignoring the "extremeness" of hackathons would be awesome. Instead of thinking "how can I code on for hours" a better focus would be "how can we generate a very productive and pleasant environment and still reap the benefits of hackathons".
For example, if it's a biggish place, childcare for parents would be something I'd think about before diving into how to get more coffee to the venue ;)