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:
- An ongoing needs description
- 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:
- There are some unchanging user needs. These ‘hard facts’ can be discovered upon an initial information gathering and analysis.
- Given the vague interpretation of the design issue, designers can propose different alternative solutions.
- 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:
- 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.
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:
- 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.
- 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.
- 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.
- Once a problem-solver becomes proficient he is able to identify the most critical issues and develop an appropriate plan accordingly.
- 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.