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 条
  • [41] Status and Strategies for Development of Pulses in Bundelkhand Region of India: A Review
    Sah, Uma
    Dixit, G. P.
    Kumar, Narendra
    Pal, Jeetendra
    Singh, N. P.
    LEGUME RESEARCH, 2024, 47 (03) : 335 - 342
  • [42] The Implicit/Explicit Continuum of Life Skills Development and Transfer
    Bean, Corliss
    Kramers, Sara
    Forneris, Tanya
    Camire, Martin
    QUEST, 2018, 70 (04) : 456 - 470
  • [43] Optometrists' Clinical Reasoning Made Explicit: A Qualitative Study
    Faucher, Caroline
    Tardif, Jacques
    Chamberland, Martine
    OPTOMETRY AND VISION SCIENCE, 2012, 89 (12) : 1774 - 1784
  • [44] Productive corecursion in logic programming
    Komendantskaya, Ekaterina
    Li, Yue
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2017, 17 (5-6) : 906 - 923
  • [45] A Reactive Constraint Programming Formulation
    Monfroy, Eric
    Castro, Carlos
    Crawford, Broderick
    2009 EIGHTH MEXICAN INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE, PROCEEDINGS, 2009, : 165 - +
  • [46] Linear Programming with the Attic Method
    Buzzi-Ferraris, Guido
    INDUSTRIAL & ENGINEERING CHEMISTRY RESEARCH, 2011, 50 (09) : 4858 - 4878
  • [47] Programming and symbolic computation in Maude
    Duran, Francisco
    Eker, Steven
    Escobar, Santiago
    Marti-Oliet, Narciso
    Meseguer, Jose
    Rubio, Ruben
    Talcott, Carolyn
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2020, 110
  • [48] Parallel Programming for Heterogeneous Architectures
    Krammer, Bettina
    Mix, Hartmut
    Geimer, Markus
    PARALLEL COMPUTING: ACCELERATING COMPUTATIONAL SCIENCE AND ENGINEERING (CSE), 2014, 25 : 731 - 732
  • [49] Test-driven programming
    Georgiev, Bozhidar
    Georgieva, Adriana
    39TH INTERNATIONAL CONFERENCE APPLICATIONS OF MATHEMATICS IN ENGINEERING AND ECONOMICS (AMEE13), 2013, 1570 : 455 - 460
  • [50] Interactive Programming of Reactive Systems
    Mandel, Louis
    Plateau, Florence
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 238 (01) : 21 - 36