meta data for this page
  •  

Planning Your Project

Successful project planning is the backbone of any hackathon project.

After coming up with an initial project idea, it is a good idea to think about how to ensure that there is a common understanding of your project (see Ideation). Moreover, it is important to structure your work going forward. You might want to assign certain roles to team members based on their strengths and set deadlines so that you ensure all of your work is finished in time (see Team work).

Ideation

  • Think Like a User: Put yourself in the shoes of your target audience. What are their needs? What problems are they facing? This will not only help you think of the appropriate use cases, but it will also help you get on the same page as your teammates.
  • Keep It Simple: Start with a minimum viable product (MVP). Focus on the core features that solve the primary problem. Additional features can be added later if time allows.
  • Create user stories User stories are documented features, described from the perspective of users. They should be formulated in the structure below.
    • Prioritize: The most efficient and standardized way to formulate user stories is with the MoSCoW method. MoSCoW stands for must, should, could, would. Each category reflects a larger importance, such that must features should be implemented long before could features.
As a [user], I [must/should/could/would] be able to [feature], so that I can [goal].

See also:

  • Wireframing: See Wireframing for more information
    • Start with creating Low-Fidelity Wireframes: Use pen and paper or simple online tools to sketch basic layouts. Focus on the flow and structure rather than details.
    • Iterate Quickly: Share your wireframes with teammates and get feedback. Make quick adjustments based on input.
    • Move to High-Fidelity Designs: Once the structure is finalized, use tools like Figma or Adobe XD to create detailed designs with actual UI components.

Team work

  • Use Agile Methodology: Break your project into small, manageable tasks (sprints). Regularly review progress and adjust plans as needed.
    • Define sprints: A sprint is a period in which a work is done to reach a final product. Before each sprint, it is decided what the final product should look like. We suggested defining daily sprints.
    • Stand-ups: Stand-ups are short explanations of each team member of what their work will be for the foreseeable future. This ensures that the whole team is up to date and that no time is wasted due to misunderstandings.
  • Assign Roles and Responsibilities: Clearly define who is responsible for what. This helps prevent overlap, ensures accountability, and plays into every team member’s strengths.
  • Use management tools: The use of management tools takes saves significant time, which is highly important in the amount of time available for this project.
    • Trello: Trello allows you to categorize User Stories, such that members can assign features to implementers and the progress status of features can easily be viewed. This takes some of the mental load off the leader's shoulders and provides a reference for all team members.
    • GitHub Projects: GitHub Projects is a feature that helps you organize and manage tasks, issues, and pull requests within a GitHub repository, providing a visual way to track progress and collaborate on projects. It allows you to create task boards, automate workflows, and prioritize work efficiently. This assumes some knowledge about GitHub, so it is only recommended if the whole team has experience with git.