论文标题

探索性研究和修改明确的编程策略的研究

An Exploratory Study of Writing and Revising Explicit Programming Strategies

论文作者

Arab, Maryam, LaToza, Thomas D, Ko, Amy J

论文摘要

在所有软件应用程序开发活动中,知识共享都起着至关重要的作用。当程序员通过Stack Overflow,Github,Meetups,视频,讨论论坛,Wiki和Blog等媒体学习和分享时,每个开发人员都会受益。但是,开发人员共享的一种知识要少得多:有关如何解决编程问题的战略知识(例如,如何调试服务器端的Python错误,如何解决合并冲突,如何评估API的稳定性,人们正在考虑采用API的稳定性)。在本文中,我们调查了开发人员阐明和分享其战略知识的可行性,以及使用这些策略来支持其他开发人员解决问题的可行性。我们特别研究开发人员在阐明策略中面临的挑战,以其他开发人员可以用来提高其生产率的形式。为了观察到这一点,我们模拟了一个知识共享平台,要求专家阐明自己的策略之一,然后要求第二组开发人员尝试使用策略并向作者提供有关策略的反馈。在研究期间,我们要求战略作者和用户反思他们面临的挑战。在分析作者创造的策略时,使用这些策略,用户提供给作者的反馈以及作者面临的困难解决了这一反馈,我们发现开发人员可以共享战略知识,但是创作策略需要来自多元化受众的大量反馈,才能对具有不同知识的程序员有用。我们的结果还提出了有关未来工作应如何支持搜索和浏览支持改变先验知识的策略的挑战性问题。

Knowledge sharing plays a crucial role throughout all software application development activities. When programmers learn and share through media like Stack overflow, GitHub, Meetups, videos, discussion forums, wikis, and blogs, every developer benefits. However, there is one kind of knowledge that developers share far less often: strategic knowledge for how to approach programming problems (e.g., how to debug server-side Python errors, how to resolve a merge conflict, how to evaluate the stability of an API one is considering for adoption). In this paper, we investigate the feasibility of developers articulating and sharing their strategic knowledge, and the use of these strategies to support other developers in their problem-solving. We specifically investigate challenges that developers face in articulating strategies in a form in which other developers can use to increase their productivity. To observe this, we simulated a knowledge-sharing platform, asking experts to articulate one of their own strategies and then asked the second set of developers to try to use the strategies and provide feedback on the strategies to authors. During the study, we asked both strategy authors and users to reflect on the challenges they faced. In analyzing the strategies authors created, the use of the strategies, the feedback that users provided to authors, and the difficulties that authors faced addressing this feedback, we found that developers can share strategic knowledge, but authoring strategies require substantial feedback from diverse audiences to be helpful to programmers with varying prior knowledge. Our results also raise challenging questions about how future work should support searching and browsing for strategies that support varying prior knowledge.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源