Home Design How to Solve Wicked Problems in Software Design
Problems in Software Design
businessman presses interface, high resolution

How to Solve Wicked Problems in Software Design


Given the nature of design problems, design issues have mostly been described as being ‘wicked’ or ‘ill-structured’. Within the field of software and platform design there always existed a blind spot regarding the process of designing as not all of the related dimensions- as mentioned below- might have been taken into account:

  • the dynamics of a design process
  • the designer’s model
  • the design task model
  • the design techniques and methodologies

Software design activities provide a ground for reasoning based on user requirements. If the underlying reasoning provides no obvious links between the needs and intended artifact there is some degree of underdetermination. Some ways for a design issue to be underdetermined are:

  1. An ongoing needs description
  2. Needs and structure are conceptually in different categories.

This gap between the ‘need’ and ‘form’ would make the solution to a design problem impossible, nevertheless, designers somehow managed to overcome this conceptual gap within their design processes. This is a gradual process, consisting of several steps embedded within the design patterns. Most design issues can be described as follows:

  1. There are some unchanging user needs. These ‘hard facts’ can be discovered upon an initial information gathering and analysis.
  2. Given the vague interpretation of the design issue, designers can propose different alternative solutions.
  3. Some part of the design issue arises due to the personal preferences of the designer.

Given these issues, there are two main different paradigms regarding the software design methodology. The first one is referred to as the Rational Paradigm approach. This rational problem-solving process entails a rational search process in which the design problem determines the ‘problem space’ seeking a design solution:

Problems in Software Design

  • A few features regarding the human or Information Processing System do not vary in terms of the related task.
  • A task environment is conceptualized as a problem space in which problem-solving occurs.
  • The structure of the task environment specified alternative structures of the problem space.

In case this theory holds true, related problem solving also occurs within a problem space structured by the task environment, which mutually influences related strategies or methods used during the design process.

Another paradigm suggested that design should be approached as an activity of reflective practice. According to this approach, technical rationality might provide some obstacles for related practitioners in the field as they might underestimate the design component of their professions and have a misunderstanding of the nature of human design activities. Based on his ‘action-oriented’ approach, attention should be provided to the connection among the process and problem structure.

Both of these paradigms emphasize the ability of computer systems to find a solution to ill-structured problems by developing formal procedures that manipulate relevant representations of the real world to solve a problem. Despite being based on a rational approach, both of these dominant paradigms proved to be useful to a limited extent.

Rather than trying to fix the issue based on a framework and looking for a reasonable solution concept, creative design entails constant iteration of analysis, synthesis and evaluation processes between the problem space and solution space. In other words, the designer tries to match a problem-solution pair based on a ‘co-evolution’ of the problem and the solution.

Problems in Software Design

The nature of a problem for which a solution needs to be found depends on the problem solver’s level of expertise which can vary as follows:

  1. A novice will need to follow a set of fixed rules to cope with the issue at hand by taking into account situational factors objectively.
  2. As the novice makes a transition into an advanced beginner, he realizes that the situational aspects play a crucial role so that maxims are used as guidance during the problem situation.
  3. A competent problem solver tries to accomplish its goals based on a choice of plan depending on the relevant aspects of a situation chosen. There can be a trial-and-error process accompanied by a feeling of responsibility.
  4. Once a problem-solver becomes proficient he is able to identify the most critical issues and develop an appropriate plan accordingly.
  5. The real expert displays the appropriate action straightaway based on his intuition so that problem solving and reasoning are not even apparent at this level of working.

All of these different ways of looking at the problem situation can co-exist together as there would rarely be someone who would have expertise in all of the design aspects. While novice designers might prefer to follow strict guidelines according to some guidance, more advanced ones might prefer to get their interpretation and reflection involved in the design process.

Based on the level of expertise, the nature of the design problem might be approached differently which also affects the paradigm choice for supporting design processes.

Previous articleBitcoin’s surge & Facebook’s Libra launch has put the Financial Regulators on High Alert
Next articleIs Quantitative Easing to Blame for Lower Yields?
Ayse Kok
Ayse completed her masters and doctorate degrees at both University of Oxford (UK) and University of Cambridge (UK). She participated in various projects in partnership with international organizations such as UN, NATO, and the EU. She also served as an adjunct faculty member at Bosphorus University in her home town Turkey. Furthermore, she is the editor of several international journals, including those for Springer, Wiley and Elsevier Science. She attended various international conferences as a speaker and published over 100 articles in both peer-reviewed journals and academic books. Having published 3 books in the field of technology & policy, Ayse is a member of the IEEE Communications Society, member of the IEEE Technical Committee on Security & Privacy, member of the IEEE IoT Community and member of the IEEE Cybersecurity Community. She also acts as a policy analyst for Global Foundation for Cyber Studies and Research. Currently, she lives with her family in Silicon Valley where she worked as a researcher for companies like Facebook and Google.


Please enter your comment!
Please enter your name here