I'm looking into starting a hackathon to stimulate creativity at the company and solve real problems (not startup but small with 30 people). Some questions: Should it be after work hours? How do you frame a theme or propose problems to be solved? How do you make sure that people don't go too far away and build stuff that is not useful?
The best ones are done over the weekend. My favorite schedule for it is from Saturday morning until Sunday noon.
You could make it a competition for people to build something to solve something specific. They have the liberty to do whatever tool they think best to solve that problem.
Also, make sure the prize is useful for them.
It may be worth looking into the approaches or larger companies that foster internal innovation.
Many companies give their employees a day every week or two to focus exclusively on side projects — maybe taking a full day to run the hackathon during working hours shows the team you're not just trying to get free labor out of them on a Friday night.
Maybe you offer an incentive to the team that creates the most value for your customers. Something that doesn't explicitly require people to work on company-focused goals, but that encourages people to do so with prizes or bonuses.
Another option is to look at how companies with internal incubators structure the operation. Is there potential for profit sharing if an employee's idea is used? Is there a perk that can be offered to employees who dedicate time to improving the company's offerings?
A hackathon is — at its core — an attempt at getting free labor and ideas. Make sure that your team stands to gain as much from innovating as the company, and I think you'll find engagement is higher overall.