A Qualitative Study on the Implementation Design Decisions of Developers
Jenny T. Liang, Maryam Arab, Minhyuk Ko, Amy J. Ko, Thomas D. LaToza
摘要
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. Index Terms-implementation design decisions, software design Implementation Architecture Requirements Consideration: What third-party libraries can I take dependencies on? ! Decision: How should I represent my matrix data- Python arrays, C++ arrays, or third-party libraries? Action: Prioritizing testability as a requirement after learning third-party libraries are hard to unit test while prototyping. Consideration: How important is memory for my use case? Action: Researching what similar modules or classes already use in their implementations. Class/Module
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- A Large-Scale Survey on the Usability of AI Programming Assistants: Successes and ChallengesJenny T. Liang, Chenyang Yang, Brad A. MyersICSE 2024 · 被引用 126 次
- Can GPT-4 Replicate Empirical Software Engineering Research?Jenny T. Liang, Carmen Badea, Christian Bird, Robert DeLine 等FSE 2024 · 被引用 15 次
- Meta-Manager: A Tool for Collecting and Exploring Meta Information about CodeAmber Horvath, Andrew Macvean, Brad A. MyersCHI 2024 · 被引用 13 次
- Automated Extraction and Analysis of Developer's Rationale in Open Source SoftwareMouna Dhaouadi, Bentley Oakes, Michalis FamelisFSE 2025
它引用的顶会 Paper2
相关 Paper
- Selecting third-party libraries: the practitioners' perspectiveEnrique Larios Vargas, Maurício Finavaro Aniche, Christoph Treude, Magiel Bruntink 等FSE 2020 · 被引用 81 次
- How Does Usable Security (Not) End Up in Software Products? Results From a Qualitative Interview StudyMarco Gutfleisch, Jan H. Klemmer, Niklas Busch, Yasemin Acar 等S&P 2022 · 被引用 51 次
- Paths Explored, Paths Omitted, Paths Obscured: Decision Points & Selective Reporting in End-to-End Data AnalysisYang Liu, Tim Althoff, Jeffrey HeerCHI 2020 · 被引用 40 次
- An Exploratory Study on the Engineering of Security FeaturesKevin Hermann, Sven Peldszus, Jan-Philipp Steghöfer, Thorsten BergerICSE 2025 · 被引用 2 次
- Evidence Profiles for Validity Threats in Program Comprehension ExperimentsMarvin Muñoz Barón, Marvin Wyrich, Daniel Graziotin, Stefan WagnerICSE 2023 · 被引用 3 次
