[ICSE 2023]
A Qualitative Study on the Implementation Design Decisions of Developers
Jenny T. Liang, Maryam Arab, Minhyuk Ko, Amy Ko, Thomas LaToza
The ACM/IEEE 45th International Conference on Software Engineering
2023
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 semistructured 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.