Mason Archival Repository Service

Explicit programming strategies

Show simple item record

dc.contributor.author LaToza, Thomas D.
dc.contributor.author Arab, Maryam
dc.contributor.author Loksa, Dastyni
dc.contributor.author Ko, Amy J.
dc.date.accessioned 2021-04-01T21:49:53Z
dc.date.available 2021-04-01T21:49:53Z
dc.date.issued 2020-03-07
dc.identifier.citation LaToza, Thomas D., M. Arab, Dastyni Loksa and A. J. Ko. “Explicit programming strategies.” Empirical Software Engineering 25 (2020): 2416-2449. en_US
dc.identifier.uri http://hdl.handle.net/1920/11955
dc.description.abstract 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. en_US
dc.language.iso en_US en_US
dc.publisher Empirical Software Engineering en_US
dc.rights Attribution-ShareAlike 3.0 United States *
dc.rights.uri http://creativecommons.org/licenses/by-sa/3.0/us/ *
dc.source.uri https://doi.org/10.1007/s10664-020-09810-1
dc.subject computer programming en_US
dc.subject test-driven development en_US
dc.subject software development en_US
dc.subject software debugging en_US
dc.title Explicit programming strategies en_US
dc.type Article en_US
dc.description.note The final published version of the paper is available at the publishers website: https://doi.org/10.1007/s10664-020-09810-1 en_US
dc.identifier.doi 10.1007/s10664-020-09810-1


Files in this item

The following license files are associated with this item:

This item appears in the following Collection(s)

Show simple item record

Attribution-ShareAlike 3.0 United States Except where otherwise noted, this item's license is described as Attribution-ShareAlike 3.0 United States

Search MARS


Browse

My Account

Statistics