A Qualitative Study on the Implementation Design Decisions of Developers
Wed 17 May 2023 15:40 - 15:42 at Meeting Room 105 - Posters 1
Decision-making is a key skill in software engineering; developers constantly make choices all throughout the software development process, from requirements to implementation. While prior work has studied how developers make decisions in various contexts, the choices that developers make 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 data 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 and reconsideration of higher level design choices, such as requirements and architecture. We also show that software developers have a consistent general structure to their implementation decision-making process, although 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.
Wed 17 MayDisplayed time zone: Hobart change
13:45 - 15:15 | Software architectures and designShowcase / Technical Track / SEET - Software Engineering Education and Training / NIER - New Ideas and Emerging Results at Meeting Room 102 Chair(s): Davide Taibi Tampere University | ||
13:45 15mTalk | Robustification of Behavioral Designs against Environmental Deviations Technical Track Changjian Zhang Carnegie Mellon University, Tarang Saluja Swarthmore College, Rômulo Meira-Góes Carnegie Mellon University, Matthew Bolton University of Virginia, David Garlan Carnegie Mellon University, Eunsuk Kang Carnegie Mellon University Pre-print | ||
14:00 15mTalk | A Qualitative Study on the Implementation Design Decisions of Developers Technical Track Jenny T. Liang Carnegie Mellon University, Maryam Arab George Mason University, Minhyuk Ko Virginia Tech, Amy Ko University of Washington, Thomas LaToza George Mason University Pre-print | ||
14:15 15mTalk | Designing for Real People: Teaching Agility through User-Centric Service Design SEET - Software Engineering Education and Training Robert Chatley Imperial College London, Tony Field Imperial College London, Mark Wheelhouse Imperial College London, Carolyn Runcie Royal College of Art, Nick de Leon Royal College of Art, Clive Grinyer Royal College of Art Pre-print | ||
14:30 15mTalk | A Decision Model for Choosing Patterns in Blockchain-Based Applications Showcase Xiwei (Sherry) Xu CSIRO’s Data61, H M N Dilum Bandara Data61, CSIRO, Qinghua Lu CSIRO’s Data61, Ingo Weber TU Munich & Fraunhofer, Munich, Len Bass Carnegie Mellon University, Liming Zhu CSIRO’s Data61 | ||
14:45 15mTalk | Architectural Design Decisions for Machine Learning Deployment Showcase | ||
15:00 7mTalk | Handling Communication via APIs for Microservices NIER - New Ideas and Emerging Results | ||
15:07 7mTalk | Open Design Case Study - A Crowdsourcing Effort to Curate Software Design Case Studies SEET - Software Engineering Education and Training Chun Yong Chong Monash University Malaysia, Eunsuk Kang Carnegie Mellon University, Mary Shaw Carnegie Mellon University Pre-print |