Interactive system designers may borrow observational techniques from ethnography, because they provide useful ways of observing and interpreting behaviour in real-world contexts. Designer uses this to understand the development of a particular software system. While the particular techniques may be very similar but the context and underlying assumptions are quite different. Engineering poses a different set of problems when it comes to understanding multidisciplinary teams. One concern is that engineers are usually trained to solve problems that have been given to them and are evaluated on the technical validity of their solution, not the relevance of the problem. Yet designing a system by strictly following a set of design requirements does not guarantee a successful product.
Human users add complexity and unpredictability to the situation and solutions that appear correct on paper may not be valid in practice. Software engineers are not taught strategies for questioning the design problem, so they often find themselves solving the wrong problems and ultimately failing to meet the needs of their users. Creating formal models of users and simulations of their activities provides a comforting feeling of having considered user’s needs, until the software is actually used. Technical expertise is essential to the development of quality interactive software, but that technical expertise must be used to software the right kind of problems. The design disciplines, such as graphic design and architecture, represent the third critical component of interactive system design.