A Qualitative Study on the Implementation Design Decisions of Developers
Jenny T. Liang, Maryam Arab, Minhyuk Ko, Amy J. Ko, Thomas D. LaToza

TL;DR
This study explores how professional developers make implementation design decisions, revealing that these choices are influenced by higher-level design considerations and involve a generally consistent but individually varied decision process.
Contribution
It provides the first detailed qualitative and quantitative analysis of implementation design decision-making processes among developers, highlighting their complexity and dependence on higher-level design factors.
Findings
Implementation decisions are influenced by requirements and architecture.
Developers follow a generally consistent decision-making structure.
No single decision process is universally followed.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Techniques and Practices · Software Engineering Research · Open Source Software Innovations
