The Importance of Domain Ignorance in Requirements Engineering and Software Engineering

Daniel M. Berry

Cheriton School of Computer Science
University of Waterloo
Waterloo, ON, Canada


It is believed that the effectiveness of requirements engineering activities depends at least partially on the individuals involved. One of the factors that sems to influence an individual's effectiveness in requirements engineering activities is knowledge of the problem being solved, i.e., domain knowledge. While a requirements engineer's having in-depth domain knowledge helps him or her to understand the problem easier, he or she can fall for tacit assumptions of the domain and might overlook issues that are obvious to domain experts.

Historically, several, including the speaker, have reported observations that sometimes ignorance of the domain in a software development project is useful for promoting the elicitation of tacit assumptions and out-of-the-box ideas.

Recently there have been attempts to confirm these observations with well-designed empirical studies.

This talk describes a controlled experiment to test the hypothesis that adding to a requirements elicitation team for a computer-based system in a particular domain, requirements analysts that are ignorant of the domain improves the effectiveness of the requirements elicitation team. The results show some support for accepting the hypothesis. The results were analyzed also to determine the effect of creativity, industrial experience, and requirements engineering experience.

The controlled experiment was followed up by a confirmatory case study of an elicitation brainstorm in a software-producing company by a team with four domain experts from the company and four domain ignorants from our university. According to the company domain experts, the brainstorm produced ideas that they would not have produced themselves.

This talk then reports on a two-part empirical test of the importance of domain ignorance in software engineering. First, a survey was conducted among software development managers of varying experience to determine what software development activities they thought were at least helped by domain ignorance. Second, transcripts from fourteen interviews of presumably-domain-ignorant immigrants to new software development projects at one large company were examined to determine if the activities performed by those with the successful immigrations were activities that are at least helped by domain ignorance. The conclusions are that ignorance can play an important role in software development but there are a lot of other factors that influence immigration success.

Joint work with Alin Niknafs and Gaurav Mehrotra