I think there is value in understanding the problem and being immersed in it, but I've been to a few hackathons where the organizers try to play it up and create an "ideation" phase, which often just ends up frustrating many programmers who would prefer to focus on the technical problem.