Explicit Programming Strategies

10/31/2019
by   Thomas D. LaToza, et al.
0

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 StrategyTracker tool that explicitly represents 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. Ina 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 strategies, developers gave 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/09/2019

Supporting Software Engineering Research and Education by Annotating Public Videos of Developers Programming

Software engineering has long studied how software developers work, buil...
research
04/01/2020

An Exploratory Study of Writing and Revising Explicit Programming Strategies

Knowledge sharing plays a crucial role throughout all software applicati...
research
03/30/2023

Understanding the Usability of AI Programming Assistants

The software engineering community recently has witnessed widespread dep...
research
03/31/2022

Software Engineering for Quantum Programming: How Far Are We?

Quantum computing is no longer only a scientific interest but is rapidly...
research
12/17/2021

Hashing It Out: A Survey of Programmers' Cannabis Usage, Perception, and Motivation

Cannabis is one of the most common mind-altering substances. It is used ...
research
06/30/2022

GitHub Copilot AI pair programmer: Asset or Liability?

Automatic program synthesis is a long-lasting dream in software engineer...
research
02/07/2023

"STILL AROUND": Experiences and Survival Strategies of Veteran Women Software Developers

The intersection of ageism and sexism can create a hostile environment f...

Please sign up or login with your details

Forgot password? Click here to reset