HowToo: A Platform for Sharing, Finding, and Using Programming Strategies
Developers rely heavily on resources to find technical insights on how to use languages, APIs, and platforms, seeking help from Stack Overflow, GitHub, meetups, blogs, live streams, forums, documentation, and more. However, there is one kind of knowledge for which there are hard-to-find resources: strategic knowledge. In contrast to technical knowledge, strategic knowledge is the insight into how to approach software engineering problems. Prior work has shown that developers can write their strategic knowledge and that developers can use these written strategies to improve their problem-solving. While such peer-to-peer sharing is viable, there is no way to share, curate, or search for this knowledge at scale. To address this gap, we contribute HowToo, a platform for finding, sharing, authoring, and requesting programming strategies. Its key insight is there are many different approaches to the same problem, and different developers may need different strategies, depending on their prior knowledge. This poses unique search, browsing, and retrieval problems, which HowToo addresses by carefully structuring strategy metadata and feedback. In a longitudinal evaluation with more than 30 students in a project-based software engineering course, we found that: 1) developers viewed HowToo as complementary to technical resources; 2) developers viewed strategies as helping them be more systematic and complete in their work; 3) that HowToo helped them be more confident in their problem solving, but 4) when they were under time pressure, students were less inclined to use HowToo to structure their work, as being mindful required slowing down.