Taking your hackathon projects to the next level is a great way to learn, have fun, and maybe even launch a new solution to a problem you're passionate about! In this module, you will begin to learn about some of the key aspects of product building that will set you up for success.
What we will cover:
- The importance of understanding your users
- Choosing the right tools for your solution scenarios
- Documentation, Documentation, Documentation
📹 Click the image above watch a video about "Scaling Your Project"
When you are deciding if and how to scale your project to be used by more folks, it's important to make sure you understand:
- Who is going to benefit from your solution?
- How are they going to use it?
You can discover how through a myriad of strategies. Here are two that you can try:
After you have identified who are your target customers, you can begin to explore how they currently solve challenges. You can do this by:
- observing folks as they work through the challenge (with permission of course)
- asking folks how they work through the challenge
- asking folks what and why they are working through the challenge in the way they are while you observe them
These strategies are very common especially in human-computer interaction research. If you haven't already, you might consider checking out the book The Design of Everyday Things by Don Norman for more information.
If you are going through this module, odds are you already have a prototype that you could test out with some of your target users. You can use the observational interview strategy above, but this time having folks use your solution instead of working through the challenge on their own.
Alternatively, you can have a friend conduct interviews so that you can get raw and honest feedback. Folks are sometimes more likely to give honest feedback when the person who built it isn't asking the questions :D
During a hackathon or course you are likely to take shortcuts to get a project functional enough to be evaluated. When you're ready to take your project to the next level, however, you need to make sure your solution is ready for:
- Scale: Make sure your solution scales to the number of users you hope to support
- Security: Make sure your solution securely stores data (or doesn't store data)
- Ethics: Make sure you understand how your solution can maintain ethical usage and protect your users (e.g. Responsible AI at Microsoft)
- Up Time: Make sure your solution can support the up-time you need for your customers
- Device Requirements: Make sure your solution works where and when users need it to work
Documentation is a huge part of any software project, but especially important as you start to scale. Here are a few kinds of documentation to consider:
- Customer Documentation: Make sure you have a basic website (could just be a simple GitHub Pages single-page site) that has basic information about how to install and use the product, device requirements, and maybe a FAQ page.
- Developer Documentation: Whether you're scaling your project (and adding on more developers) or open-sourcing your project, it is a good idea to ensure you have documentation throughout your code. This includes
- README
- Testing Framework
- Code Comments
- Contributors Guides
- Licensing