Ten Million Users and Ten Years Later: Python Tutor’s Design Guidelines for Building Scalable and Sustainable Research Software in Academia

Ten Million Users and Ten Years Later: Python Tutor’s Design Guidelines for Building Scalable and Sustainable Research Software in Academia
复制标题

DOI:
10.1145/3472749.3474819
复制
发表时间:
2021-10
期刊:
The 34th Annual ACM Symposium on User Interface Software and Technology
影响因子:
--
通讯作者:
Philip J. Guo
Philip J. Guo
中科院分区:
其他
文献类型:
--
作者:
Philip J. Guo

文献摘要

被引文献

相似文献

研究软件通常是作为原型建造的,这些原型永远不会广泛使用,并且在发表了几篇论文后被遗忘。为了抵消这一趋势,我们提出了一种考虑规模和可持续性的研究软件的方法,以便它可以有机地生长大型用户群并实现长期研究。为了说明这种方法,我们介绍了Python Tutor(Pythontutor.com)的设计和实施,这是一种代码可视化工具,据我们所知,它是大学实验室中开发的最广泛使用的研究软件之一。在过去的十年中,在180多个国家 /地区使用了超过一千万人。它还为13个国家的35个研究小组的55个出版物做出了贡献。我们将python导师的工作蒸馏成三组设计指南:1)用于规模和可持续性的用户体验设计,2)长期可持续性的软件体系结构设计,以及3)设计学术界内的可持续软件开发工作流程。这些准则可以使学生能够创建持久的软件,从而吸引许多用户并促进许多独立小组的研究。
Research software is often built as prototypes that never get widespread usage and are left unmaintained after a few papers get published. To counteract this trend, we propose a method for building research software with scale and sustainability in mind so that it can organically grow a large userbase and enable longer-term research. To illustrate this method, we present the design and implementation of Python Tutor (pythontutor.com), a code visualization tool that is, to our knowledge, one of the most widely-used pieces of research software developed within a university lab. Over the past decade, it has been used by over ten million people in over 180 countries. It has also contributed to 55 publications from 35 research groups in 13 countries. We distilled lessons from working on Python Tutor into three sets of design guidelines: 1) user experience design for scale and sustainability, 2) software architecture design for long-term sustainability, and 3) designing a sustainable software development workflow within academia. These guidelines can enable a student to create long-lasting software that reaches many users and facilitates research from many independent groups.