skip to main content
10.1145/3025453.3025597acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
research-article

Micro-Versioning Tool to Support Experimentation in Exploratory Programming

Published: 02 May 2017 Publication History

Abstract

Experimentation plays an essential role in exploratory programming, and programmers apply version control operations when switching the part of the source code back to the past state during experimentation. However, these operations, which we refer to as micro-versioning, are not well supported in current programming environments. We first examined previous studies to clarify the requirements for a micro-versioning tool. We then developed a micro-versioning tool that displays visual cues representing possible micro-versioning operations in a textual code editor. Our tool includes a history model that generates meaningful candidates by combining a regional undo model and tree-structured undo model. The history model uses code executions as a delimiter to segment text edit operations into meaning groups. A user study involving programmers indicated that our tool satisfies the above-mentioned requirements and that it is useful for exploratory programming.

Supplementary Material

ZIP File (pn1708-file4.zip)
suppl.mov (pn1708-file3.mp4)
Supplemental video
suppl.mov (pn1708p.mp4)
Supplemental video

References

[1]
Kent Beck. 2003. Test-driven development: by example. Addison-Wesley Professional.
[2]
Joel Brandt, Philip J Guo, Joel Lewenstein, Scott R Klemmer, and Mira Dontcheva. 2009. Writing Code to Prototype, Ideate, and Discover. Software, IEEE 26, 5 (2009), 18--24.
[3]
John Brooke. 1996. SUS-A quick and dirty usability scale. Usability evaluation in industry 189, 194 (1996), 4--7.
[4]
Aaron G Cass and Chris ST Fernandes. 2007. Using task models for cascading selective undo. In Task Models and Diagrams for Users Interface Design. Springer, Hasselt, Belgium, 186--201.
[5]
Eclipse 2016. Eclipse - The Eclipse Foundation open source community website. (31 July 2016). Retrieved July 31, 2016 from http://www.eclipse.org/.
[6]
EGit 2016. EGit. (31 July 2016). Retrieved July 31, 2016 from http://www.eclipse.org/egit/.
[7]
emacs 2016. Emacs. (31 July 2016). Retrieved July 31, 2016 from https://www.gnu.org/software/emacs/.
[8]
James Fogarty, Andrew J Ko, Htet Htet Aung, Elspeth Golden, Karen P Tang, and Scott E Hudson. 2005. Examining task engagement in sensor-based statistical models of human interruptibility. In Proceedings of the SIGCHI conference on Human Factors in Computing Systems (CHI 2005). ACM, Portland, Oregon, USA, 331--340.
[9]
git 2016. Git. (31 July 2016). Retrieved July 31, 2016 from https://git-scm.com/.
[10]
Max Goldman, Greg Little, and Robert C Miller. 2011. Collabode: collaborative coding in the browser. In Proceedings of the 4th international workshop on Cooperative and human aspects of software engineering (CHASE 2011). ACM, Waikiki, Honolulu, HI, USA, 65--68.
[11]
Google Bug Prediction 2016. Google Bug Prediction. (24 July 2016). Retrieved July 31, 2016 from http://google-engtools.blogspot.jp/2011/12/ bug-prediction-at-google.html.
[12]
gundo 2016. Gundo - Visualize your Vim Undo Tree. (29 March 2016). Retrieved July 31, 2016 from http://sjl.bitbucket.org/gundo.vim/.
[13]
Björn Hartmann, Loren Yu, Abel Allison, Yeonsoo Yang, and Scott R Klemmer. 2008. Design as exploration: creating interface alternatives through parallel authoring and runtime tuning. In Proceedings of the 21st annual ACM symposium on User interface software and technology (UIST 2008). ACM, Monterey, CA, USA, 91--100.
[14]
Shinpei Hayashi, Daiki Hoshino, Jumpei Matsuda, Motoshi Saeki, Takayuki Omori, and Katsuhisa Maruyama. 2015. Historef: A tool for edit history refactoring. In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER 2015). IEEE Computer Society, Montreal, QC, Canada, 469--473.
[15]
Yun Young Lee, Sam Harwell, Sarfraz Khurshid, and Darko Marinov. 2013. Temporal code completion and navigation. In 35th International Conference on Software Engineering (ICSE 2013). IEEE Computer Society, San Francisco, CA, USA, 1181--1184.
[16]
Erica Mealy, David Carrington, Paul Strooper, and Peta Wyeth. 2007. Improving usability of software refactoring tools. In Australian Software Engineering Conference (ASWEC 2007). IEEE Computer Society, Melbourne, Australia, 307--318.
[17]
Mathieu Nancel and Andy Cockburn. 2014. Causality: A conceptual model of interaction history. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '14). ACM, Toronto, ON, Canada, 1777--1786.
[18]
Atul Prakash and Michael J Knister. 1994. A framework for undoing actions in collaborative systems. ACM Transactions on Computer-Human Interaction (TOCHI) 1, 4 (1994), 295--330.
[19]
Bastian Steinert, Damien Cassou, and Robert Hirschfeld. 2012. Coexist: Overcoming aversion to change. ACM SIGPLAN Notices 48, 2 (2012), 107--118.
[20]
undotree 2016. EmacsWiki: Undo Tree. (31 July 2016). Retrieved July 31, 2016 from http://www.emacswiki.org/emacs/UndoTree.
[21]
Mohsen Vakilian, Nicholas Chen, Stas Negara, Balaji Ambresh Rajkumar, Brian P Bailey, and Ralph E Johnson. 2012. Use, disuse, and misuse of automated refactorings. In 34th International Conference on Software Engineering (ICSE 2012). IEEE Computer Society, Zurich, Switzerland, 233--243.
[22]
YoungSeok Yoon and Brad A Myers. 2011. Capturing and analyzing low-level events from the code editor. In Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools (PLATEAU 2011). ACM, Portland, OR, USA, 25--30.
[23]
YoungSeok Yoon and Brad A Myers. 2012. An exploratory study of backtracking strategies used by developers. In Proceedings of the 5th International Workshop on Co-operative and Human Aspects of Software Engineering (CHASE 2012). IEEE Computer Society, Zurich, Switzerland, 138--144.
[24]
Young Seok Yoon and Brad A Myers. 2014. A longitudinal study of programmers' backtracking. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2014). IEEE Computer Society, Melbourne, VIC, Australia, 101--108.
[25]
Young Seok Yoon and Brad A Myers. 2015. Supporting selective undo in a code editor. In the 37th International Conference on Software Engineering-Volume 1 (ICSE 2015). IEEE Computer Society, Florence, Italy, 223--233.

Cited By

View all
  • (2024)SHARP: Exploring Version Control Systems in Live Coding MusicProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3656195(426-437)Online publication date: 23-Jun-2024
  • (2023)Spellburst: A Node-based Interface for Exploratory Creative Coding with Natural Language PromptsProceedings of the 36th Annual ACM Symposium on User Interface Software and Technology10.1145/3586183.3606719(1-22)Online publication date: 29-Oct-2023
  • (2023)Understanding Version Control as Material Interaction with QuickposeProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581394(1-18)Online publication date: 19-Apr-2023
  • Show More Cited By

Index Terms

  1. Micro-Versioning Tool to Support Experimentation in Exploratory Programming

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    CHI '17: Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems
    May 2017
    7138 pages
    ISBN:9781450346559
    DOI:10.1145/3025453
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 02 May 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. develpment environment
    2. micro-versioning
    3. version control system

    Qualifiers

    • Research-article

    Conference

    CHI '17
    Sponsor:

    Acceptance Rates

    CHI '17 Paper Acceptance Rate 600 of 2,400 submissions, 25%;
    Overall Acceptance Rate 6,199 of 26,314 submissions, 24%

    Upcoming Conference

    CHI 2025
    ACM CHI Conference on Human Factors in Computing Systems
    April 26 - May 1, 2025
    Yokohama , Japan

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)31
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 13 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)SHARP: Exploring Version Control Systems in Live Coding MusicProceedings of the 16th Conference on Creativity & Cognition10.1145/3635636.3656195(426-437)Online publication date: 23-Jun-2024
    • (2023)Spellburst: A Node-based Interface for Exploratory Creative Coding with Natural Language PromptsProceedings of the 36th Annual ACM Symposium on User Interface Software and Technology10.1145/3586183.3606719(1-22)Online publication date: 29-Oct-2023
    • (2023)Understanding Version Control as Material Interaction with QuickposeProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581394(1-18)Online publication date: 19-Apr-2023
    • (2022)A Language-Parametric Approach to Exploratory Programming EnvironmentsProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567527(175-188)Online publication date: 29-Nov-2022
    • (2022)StickyLand: Breaking the Linear Presentation of Computational NotebooksExtended Abstracts of the 2022 CHI Conference on Human Factors in Computing Systems10.1145/3491101.3519653(1-7)Online publication date: 27-Apr-2022
    • (2021)Fork It: Supporting Stateful Alternatives in Computational NotebooksProceedings of the 2021 CHI Conference on Human Factors in Computing Systems10.1145/3411764.3445527(1-12)Online publication date: 6-May-2021
    • (2020)What's Wrong with Computational Notebooks? Pain Points, Needs, and Design OpportunitiesProceedings of the 2020 CHI Conference on Human Factors in Computing Systems10.1145/3313831.3376729(1-12)Online publication date: 21-Apr-2020
    • (2019)Characterizing Developer Use of Automatically Generated Patches2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VLHCC.2019.8818884(181-185)Online publication date: Oct-2019
    • (2018)DoppioProceedings of the 2018 CHI Conference on Human Factors in Computing Systems10.1145/3173574.3174029(1-13)Online publication date: 21-Apr-2018
    • (2017)The entangled strands of time in software developmentProceedings of the 3rd ACM SIGPLAN International Workshop on Programming Experience10.1145/3167107(11-16)Online publication date: 22-Oct-2017

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media