Blog IT

Software Design | November 2025

What Makes Software Design Effective: Understanding Decision Making and Design Reasoning

Authors: Antony Tang, Aldeida Aleti, Janet Burge, Hans van Vliet (Summary by Blog IT)

Software design is a complex cognitive process where decision making plays a pivotal role, yet our understanding of how designers make decisions remains limited. This research explores how design planning, problem-solution co-evolution, and reasoning techniques influence software design effectiveness through detailed observation and analysis of professional software designers at work.

Introduction: The Challenge of Software Design Decision Making

Software design represents one of the most demanding activities in engineering, characterized by volatile business requirements, rapidly evolving technologies, and unfamiliar problem domains. Designers frequently face situations where knowledge cannot be readily found, system characteristics remain unknown, and complexity in user and quality requirements is exceptionally high. Despite these challenges, we possess limited understanding of how software designers actually make decisions and whether they employ systematic reasoning in their approach.

This study investigates software design from a decision-making perspective by analyzing video recordings and transcripts from an experiment conducted at the University of California, Irvine. Professional designers were tasked with creating a traffic simulator based on a set of requirements, providing researchers with a unique opportunity to study and compare design reasoning across teams working on identical problems. The central question driving this research is whether different reasoning and decision-making approaches influence software design effectiveness.

Design effectiveness in this context is measured through two key dimensions: requirement coverage and design time utilization. The researchers seek to understand whether certain teams can address more requirements within the same timeframe, and whether specific decision-making activities enable teams to solve design problems more efficiently than others.

1. The Cognitive Foundation: Dual-Process Theory in Design

Understanding how designers think requires examining the cognitive systems underlying human reasoning. Psychological research identifies two distinct cognitive systems that influence decision making. System 1 comprises autonomous subsystems that react automatically to situations, enabling faster decisions with reduced cognitive load. This system relies heavily on intuition and past experiences, requiring minimal reflection but potentially introducing belief-based biases.

System 2 employs logical reasoning, abstract thinking, and hypothetical analysis. This system demands more time and cognitive effort, requiring designers to search through memories and engage in deductive reasoning. Both systems operate during design activities, though research suggests designers often rely more heavily on prior beliefs and intuition rather than systematic logical reasoning, potentially leading to less rational decisions.

The way designers comprehend and frame issues significantly influences their decision-making process and ultimately affects design outcomes. Design itself represents what researchers call a "wicked problem"—one without a well-defined set of potential solutions. Even though design follows a logical process, it remains subject to how individual designers handle this inherent complexity and ambiguity.

2. Research Methodology and Analysis Approach

The research team analyzed two design teams, referred to as Team A (Adobe) and Team M (AmberPoint), both spending the full two hours on their design task. The traffic simulation assignment included twenty explicit functional and non-functional requirements, plus fifteen derived requirements that designers needed to identify and address through their analysis.

Researchers employed two parallel protocol coding schemes to analyze designer dialogue. The first scheme classified statements into problem space and solution space categories, identifying design planning activities, problem decisions, and solution decisions. This coding also captured the reasoning techniques employed by designers, distinguishing between explicit reasoning (where designers explained their rationale) and implicit reasoning (decisions made without communicated justification).

The second protocol documented design rationale using the SEURAT system, organizing decisions hierarchically by topic and timestamp. This enabled analysis of how teams managed decision topics over time and whether they reached definitive solutions for each requirement. Together, these protocols provided complementary perspectives on design reasoning and decision-making patterns.

Researchers created decision maps based on the AREL model, representing design activities through three node types: design concerns (inputs like requirements and context), decision nodes (design problems), and design outcome nodes (solutions). These visual representations illustrated the progression of design by showing connections between problem space and solution space, organized by discussion sequence and subject matter.

3. Design Planning: The Foundation of Effective Design

Both teams initiated their design sessions with planning activities, but their approaches differed significantly. Team A spent approximately 1.5 minutes on initial planning, identifying traffic flow modeling, signals, and intersections as key design issues. Team M invested about 9 minutes in planning, identifying thirteen distinct design issues. This represented 1% versus 9% of total design time devoted to problem structuring, respectively.

The planning approach fundamentally shaped how each team structured their subsequent design discussions. Team A adopted what researchers termed a "semi-structured approach," starting with the assertion that Model View Controller pattern and queue-based solutions would form the foundation. They spent the next 40 minutes focused intensively on queue management before addressing other topics. Team M employed a "major-minor structuring approach," tackling significant design problems first, then addressing simpler related issues afterward.

Context switching—the act of changing discussion focus between different design topics—emerged as a critical factor affecting design effectiveness. Team A switched topics 78 times out of 312 total statements (24.9% switching rate), while Team M switched 69 times out of 518 statements (13.2% switching rate). This more frequent context switching by Team A appeared to reduce discussion effectiveness, as designers often needed to reestablish context and issues when revisiting topics.

Time distribution analysis revealed that Team A's discussions on individual topics were widely distributed across the entire design session, with some topics revisited multiple times over extended periods. Team M's discussions showed tighter clustering within specific time periods, indicating more focused exploration of each topic. Standard deviation calculations for discussion time by topic consistently showed Team M finishing topics more quickly while addressing more requirements overall.

4. Problem-Solution Co-Evolution: Exploring Design Spaces

The concept of problem-solution co-evolution suggests that creative design involves simultaneously developing and refining both problem formulation and solution ideas. While both teams demonstrated aspects of this co-evolution model, their specific approaches revealed important differences. Team A exhibited what researchers characterized as a "solution-driven strategy," where a preconceived solution concept dominated the entire design process.

Early in their session, Team A identified traffic flow and signals as design issues, then immediately decided that queue-based operations should form the solution foundation. From this point forward, Team A's discussions revolved predominantly around queue operations, with this initial solution concept driving all subsequent reasoning without questioning whether alternative approaches might prove more suitable. This behavior suggested the dominance of cognitive System 1, where designers autonomously selected solutions based on intuition rather than systematic analysis.

This phenomenon reflects the "anchoring and adjustment heuristic" observed in cognitive psychology, where people making estimates tend not to adjust away from initial values but remain biased toward them. Similarly, designers prove reluctant to change their minds even when encountering severe problems, with initial design choices exerting dominant influence throughout the process.

Team M demonstrated a more balanced problem-solution co-evolution approach. They explicitly formulated problem statements, analyzing relevant information including goals, resources, and current system conditions. Team A formulated only 34 problem statements (13.4% of all statements), while Team M formulated 120 problem statements (31.9% of all statements). Research on general problem-solving suggests problem structuring should account for 18-30% of design statements, placing Team M within this range while Team A fell significantly below.

Analysis of solution space decisions revealed both teams made similar numbers of solution generation statements (106 for Team A, 124 for Team M), but the ratio of solution statements to total statements differed significantly: 60.2% for Team A versus 45.7% for Team M. This indicated Team A spent proportionally more time devising solutions relative to problem formulation, with a problem-to-solution ratio of only 32% compared to Team M's 96.7% ratio.

Team M's approach included extended periods of intensive problem space exploration without immediately generating solutions, particularly visible at certain timestamps where problem formulation concentrated heavily. Following these exploratory phases, designers then engaged in the more typical co-evolution pattern of interleaving problem and solution decisions. This demonstrated that problem-solution co-evolution operates at different levels—broad exploration of interconnected problems at higher abstraction levels, followed by focused problem-solving with tighter problem-solution coupling for specific issues.

5. Design Reasoning Techniques: The Tools of Effective Design

Researchers identified several fundamental reasoning techniques that support design decision-making activities. These techniques can be applied across multiple design stages, from planning through problem formulation to solution generation, and often work in combination rather than isolation.

Contextualizing problems and solutions emerged as a crucial reasoning technique. Contextualisation involves attaching meaning and interpreting phenomena within the design problem framework. Team A made 62 contextualisation statements, while Team M made 97, indicating more thorough articulation of factors surrounding problems and solutions. For example, when examining traffic lights, Team M explicitly identified three relevant contexts—timing cycles, sensor impacts, and left-turn arrows—all within the same discussion timeframe, providing comprehensive focal points for investigation.

Team A contextualized design problems in a more fragmented manner, discussing signal rules at one point, revisiting signals in relation to lanes later, then reconsidering intersections and signals, followed by student specifications for signals, and finally sensors and left signals—all as separate discussions spread across the session. This lack of coordinated contextualization affected how design problems were framed and what information was available for reasoning.

Scenario construction represents another important technique, helping designers instantiate abstract design problems and evaluate fitness for real-world situations. Both teams used scenarios extensively—Team A made 93 scenario statements, Team M made 80. Scenarios enhanced problem comprehension and facilitated communication between designers, helping them understand needs and concerns while generalizing knowledge into solutions. However, researchers found no significant relationship between scenario usage patterns and design effectiveness in this study.

Creating design options proved significant for experienced designers. Team A generated 37 options for 8 problems (1:4.5 ratio), while Team M generated 58 options for 20 problems (1:3 ratio). Team M created 36% more options overall, likely due to identifying more design problems requiring exploration. Researchers observed that option generation often occurred through problem refinement, constraint specification, or scenario-driven thinking, though designers used these techniques subconsciously rather than explicitly asking what alternative options might exist.

Inductive and deductive reasoning represent fundamental cognitive approaches. Inductive reasoning generalizes from specific facts or observations to create theories applicable to new situations, while deductive reasoning applies commonly known facts to derive logical conclusions. Team M employed 112 inductive reasoning statements versus Team A's 71, suggesting a more investigative strategy for exploring new design problems and solutions.

Conversely, Team A used deductive reasoning more frequently (56 statements versus Team M's 51). Team A predicated on basic solution components early and deduced solutions from those foundations, remaining fixed on their initial design concept without exploring alternatives. This pattern aligned with their solution-driven approach.

Explicit reasoning—using articulated arguments to support or reject design choices—appeared more frequently in Team M's discussions. Team M made 87 explicit reasoning statements versus 33 implicit ones, while Team A made 52 explicit reasoning statements versus 47 implicit ones. Explicit reasoning helps designers communicate ideas more effectively and creates mutual understanding that opens opportunities for further problem and solution space exploration.

6. Measuring Design Effectiveness: Requirements Coverage and Time Utilization

Researchers evaluated design effectiveness through two primary measures: time utilization efficiency and requirements coverage. Given identical two-hour design sessions and designers with similar experience levels but no specialized domain knowledge, these metrics provided insight into how decision-making approaches influenced outcomes.

Time effectiveness analysis revealed that Team M spent more time on initial planning, resulting in more structured design discussions with fewer context switches. Team M's discussion topics clustered tightly in time, maintaining focus on single lines of thought and resolving most problems within topic areas before transitioning. This contrasted with Team A's more scattered approach, where extensive context switching appeared to reduce discussion efficiency and focus.

Requirements coverage analysis classified design decisions by status: mentioned, discussed, proposed, implied resolution, or resolved. Only "implied resolution" and "resolved" statuses indicated that solutions had been reached. Team A achieved 13 explicit requirements and 14 derived requirements (27 total), while Team M achieved 19 explicit requirements and 14 derived requirements (33 total). Given identical time allocations, Team M covered approximately 22% more total requirements, demonstrating greater design effectiveness.

Breaking down coverage by requirement category revealed both teams addressed similar numbers of derived requirements, but Team M covered significantly more explicit requirements across categories like Network of Roads, Intersections/Lights, and Non-Functional Requirements. This suggested that Team M's approach to spending design time more effectively enabled them to address a broader scope of the problem within the same timeframe.

7. Key Findings and Implications for Software Design Practice

This research provides empirical evidence that design decision-making approaches significantly influence software design effectiveness. Several key findings emerged from the comparative analysis of the two teams' design sessions.

Design planning matters. Proper planning of design discussions improves design issue identification and facilitates solution searches. Teams that invest time upfront in scoping requirements, identifying key design issues, and prioritizing problems create structure that guides subsequent design activities more effectively. The planning approach influences how designers spend their time and organize their exploration of problem and solution spaces.

Context switching reduces effectiveness. Excessive switching between decision topics defocuses design discussions, requiring designers to repeatedly reestablish context and issues. Teams that maintain focus on single discussion threads until reaching resolution demonstrate better time utilization and address more requirements. The cognitive overhead of context switching in design parallels context switching overhead in computer processing—preparation for new tasks consumes resources that could otherwise advance problem-solving.

Problem-solution co-evolution isn't universal. While design theory suggests problem-solution co-evolution as the norm, some designers employ solution-driven approaches where initial solution concepts dominate thinking without systematic validation. Designers who anchor on early solutions may fail to explore problem spaces adequately, potentially missing better alternatives. In unfamiliar domains, systematic reasoning approaches (System 2) appear more effective than autonomous intuitive approaches (System 1) due to better problem space exploration and thorough consideration of alternatives.

Reasoning techniques enhance effectiveness. Appropriate contextualization of design problems, explicit communication of design reasoning, generation of design options, and balanced use of inductive and deductive reasoning contribute to design effectiveness. Teams that explicitly formulate problems, thoroughly explore contexts, and articulate their reasoning create better opportunities for comprehensive problem understanding and solution development.

Inductive reasoning explores problem spaces. Higher levels of inductive reasoning appear related to more extensive problem space exploration. Teams using predominantly deductive and solution-driven approaches may explore fewer problems overall. If inductive and deductive reasoning are complementary, and if problem and solution formulation are complementary, then predominantly deductive and solution-driven approaches may negatively influence problem space exploration breadth.

Conclusion and Future Research Directions

This exploratory study provides preliminary evidence that design decision-making based on thorough planning, minimal context switching, well-organized problem exploration, and effective reasoning techniques contributes to software design effectiveness. The research demonstrates that the ways designers make decisions impact efficient use of design time and consequently the quality of derived solutions.

The findings suggest that software engineering education and practice could benefit from explicit attention to decision-making approaches and reasoning techniques. Rather than focusing solely on development processes and resulting artifacts, understanding the cognitive and psychological aspects of designers who use these methods proves fundamental to improving software development quality.

Several areas merit further investigation. The relationship between inductive reasoning and problem space exploration requires deeper study with larger sample sizes. The role of domain expertise versus general design knowledge in decision-making approaches deserves exploration. Additionally, understanding how organizational contexts, time pressures, and team dynamics influence design reasoning patterns would provide valuable insights for improving software design practices.

The research methodology employed—protocol analysis combined with decision mapping and rationale capture—proved effective for studying design cognition and could be applied to other software engineering contexts. Future studies might examine how these findings apply to different types of software systems, varied team compositions, or distributed design environments.

"Design decision making that is based on good design planning, minimal context switching, well-organised problem exploration and good reasoning can help effective software design. This is fundamental to the software development process and requires further in-depth empirical and experimental studies to improve the way we design software."