A Qualitative Study on the Implementation Design Decisions of Developers

01/24/2023
by   Jenny T. Liang, et al.
0

Decision-making is a key software engineering skill. Developers constantly make choices throughout the software development process, from requirements to implementation. While prior work has studied developer decision-making, the choices made while choosing what solution to write in code remain understudied. In this mixed-methods study, we examine the phenomenon where developers select one specific way to implement a behavior in code, given many potential alternatives. We call these decisions implementation design decisions. Our mixed-methods study includes 46 survey responses and 14 semi-structured interviews with professional developers about their decision types, considerations, processes, and expertise for implementation design decisions. We find that implementation design decisions, rather than being a natural outcome from higher levels of design, require constant monitoring of higher level design choices, such as requirements and architecture. We also show that developers have a consistent general structure to their implementation decision-making process, but no single process is exactly the same. We discuss the implications of our findings on research, education, and practice, including insights on teaching developers how to make implementation design decisions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/16/2018

Towards a Theory of Software Development Expertise

Software development includes diverse tasks such as implementing new fea...
research
09/02/2022

Programming with Context-Sensitive Holes using Dependency-Aware Tuning

Developing efficient and maintainable software systems is both hard and ...
research
08/13/2020

On the design of text editors

Text editors are written by and for developers. They come with a large s...
research
03/05/2023

Regexes are Hard: Decision-making, Difficulties, and Risks in Programming Regular Expressions

Regular expressions (regexes) are a powerful mechanism for solving strin...
research
02/04/2022

Crystalline: Lowering the Cost for Developers to Collect and Organize Information for Decision Making

Developers perform online sensemaking on a daily basis, such as research...
research
10/30/2019

Paths Explored, Paths Omitted, Paths Obscured: Decision Points Selective Reporting in End-to-End Data Analysis

Drawing reliable inferences from data involves many, sometimes arbitrary...
research
01/21/2019

Temporal Discounting in Technical Debt: How do Software Practitioners Discount the Future?

Technical Debt management decisions always imply a trade-off among outco...

Please sign up or login with your details

Forgot password? Click here to reset