Explicit programming strategies

被引:0
|
作者
Thomas D. LaToza
Maryam Arab
Dastyni Loksa
Amy J. Ko
机构
[1] George Mason University,
[2] University of Washington,undefined
来源
Empirical Software Engineering | 2020年 / 25卷
关键词
Developers; Productivity; Strategies; Test-driven development; Debugging;
D O I
暂无
中图分类号
学科分类号
摘要
Software developers solve a diverse and wide range of problems. While software engineering research often focuses on tools to support this problem solving, the strategies that developers use to solve problems are at least as important. In this paper, we offer a novel approach for enabling developers to follow explicit programming strategies that describe how an expert tackles a common programming problem. We define explicit programming strategies, grounding our definition in prior work both within software engineering and in other professions which have adopted more explicit procedures for problem solving. We then present a novel notation called Roboto and a novel strategy tracker tool that explicitly represent programming strategies and frame executing strategies as a collaborative effort between human abilities to make decisions and computer abilities to structure process and persist information. In a formative evaluation, 28 software developers of varying expertise completed a design task and a debugging task. We found that, compared to developers who are free to choose their own strategies, developers given explicit strategies experienced their work as more organized, systematic, and predictable, but also more constrained. Developers using explicit strategies were objectively more successful at the design and debugging tasks. We discuss the implications of Roboto and these findings, envisioning a thriving ecosystem of explicit strategies that accelerate and improve developers’ programming problem solving.
引用
收藏
页码:2416 / 2449
页数:33
相关论文
共 50 条
  • [21] EXPLICIT INSTRUCTION IN CORE READING PROGRAMS
    Reutzel, D. Ray
    Child, Angela
    Jones, Cindy D.
    Clark, Sarah K.
    ELEMENTARY SCHOOL JOURNAL, 2014, 114 (03) : 406 - 430
  • [22] Explicit Instruction: Historical and Contemporary Contexts
    Hughes, Charles A.
    Morris, Jared R.
    Therrien, William J.
    Benson, Sarah K.
    LEARNING DISABILITIES RESEARCH & PRACTICE, 2017, 32 (03) : 140 - 148
  • [23] Combining metaheuristics with mathematical programming, constraint programming and machine learning
    Talbi, El-Ghazali
    4OR-A QUARTERLY JOURNAL OF OPERATIONS RESEARCH, 2013, 11 (02): : 101 - 150
  • [24] A Spatially Explicit, Empirical Estimate of Tree-Based Biological Nitrogen Fixation in Forests of the United States
    Staccone, Anika
    Liao, Wenying
    Perakis, Steven
    Compton, Jana
    Clark, Christopher M.
    Menge, Duncan
    GLOBAL BIOGEOCHEMICAL CYCLES, 2020, 34 (02)
  • [25] Enabling Independent Learning of Programming Concepts through Programming Completion Puzzles
    Harms, Kyle J.
    Rowlett, Noah
    Kelleher, Caitlin
    PROCEEDINGS 2015 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC), 2015, : 271 - 279
  • [26] A Survey of Multitier Programming
    Weisenburger, Pascal
    Wirth, Johannes
    Salvaneschi, Guido
    ACM COMPUTING SURVEYS, 2020, 53 (04)
  • [27] Debugging for Reactive Programming
    Salvaneschi, Guido
    Mezini, Mira
    2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2016, : 796 - 807
  • [28] Conversational Programming in Action
    Repenning, Alexander
    2011 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC 2011), 2011, : 263 - 264
  • [29] Stochastic, spatially-explicit epidemic models
    Carpenter, T. E.
    REVUE SCIENTIFIQUE ET TECHNIQUE-OFFICE INTERNATIONAL DES EPIZOOTIES, 2011, 30 (02): : 417 - 424
  • [30] Example centric programming
    Edwards, J
    ACM SIGPLAN NOTICES, 2004, 39 (12) : 84 - 91