Failures during the elicitation process have been usually attributed to the difficulty of the development team in working on a cooperative basis (Togneri, Falbo, & de Menezes, 2002), but today there are other points that have to be considered. In order to save costs, modern software organizations tend to have their software development team geographically distributed, so distance between members becomes one of the most important issues added to the traditional problems of the requirement elicitation process (Brooks, 1987; Loucopoulos & Karakostas, 1995). So far, literature has widely analysed real life Global Software Development (GSD) projects and pointed out the main problems that affect such environments, especially related to communication. As a complementary view, we have focused our research on analysing how cognitive characteristics can affect people interaction in GSD projects, especially during the requirement elicitation process, where communication becomes crucial. In this article, we present the main characteristics of requirements elicitation in GSD projects and introduce a cognitive-based requirement elicitation methodology for such environments.
Advantages and challenges of GSD have been widely analyzed in literature. As part of the advantages, the most cited are:
Taking advantage of time difference to extend productive hours (Herbsleb & Moitra, 2001);
Minimizing development costs (Lloyd, Rosson, & Arthur, 2002);
Locating developers closer to the customers (Damian & Moitra, 2006); and
Taking advantage of diversity of stakeholders’ knowledge and experiences (Ebert & De Neve, 2001).
On the other hand, the challenges that GSD must face are (Damian & Zowghi, 2002):
the loss of communicative richness, affected by the lack of face-to-face interaction;
the time difference between sites, that introduce delays in the project;
cultural diversity, as a source of misunderstandings; and
knowledge management, because of the need of maintaining information from many distributed sources.
Looking for solutions to improve communication in GSD, concepts from CSCW (Computer-Supported Cooperative Work) become important because this research area concerns the development of software for enabling communication between cooperating people (groupware), that can be simple systems (like e-mail or plain-text chat), more complex ones (like videoconferencing), or the combination of more than one of them. To be more specific, when talking about groupware we follow a convention: We refer to every simple communication technology (e-mail, chat, videoconference) as groupware tools, and to the systems that combine them as groupware packages (Gralla, 1996). Doing so, the most common groupware tools used during multisite developments are e-mails, newsgroups, mailing lists, forums, electronic notice boards, shared whiteboards, document sharing, chat, instant messaging, and videoconferencing (Damian & Zowghi, 2002; Gralla, 1996).
Another research area related to the distributed requirements elicitation process is Cognitive Informatics (CI), a transdisciplinary research area that encompasses informatics, computer science, software engineering, mathematics, cognition science, neurobiology, psychology and philosophy, and knowledge engineering (Chiew & Wang, 2003). In CI, there is a bidirectional relationship between cognitive sciences and informatics (Wang, 2002):
using computing techniques to investigate cognitive science problems like memory, learning, and thinking; and
using cognitive theories to investigate informatics, computing, and software engineering problems.
Key Terms in this Chapter
Distributed Software Development: It is a way of developing software that allows the stakeholders to be distributed in geographically distanced sites.
Stakeholders: They are all the actors that have some interest on a system. They can be the people that pay for it, work on its development or people whose task will be affected by the system, among others.
Global Software Development: When the distribution of the members of a distributed software development team exceeds the frontiers of a country.
Requirements Elicitation: It is the first stage in the process of understanding the problem the software has to solve. It is crucially based on human communication between the development team and the customer. Other terms that are used as synonyms are “requirements capture,” “requirements discovery” and “requirements acquisition.”
Learning Style Model: It is a cognitive psychology theory that classifies people according to a set of behavioural characteristics pertaining to the ways they perceive and process information. They can be used to improve the way people learn a given task.
Cognitive Informatics: It is an interdisciplinary area that applies concepts from psychology and other cognitive sciences to improving processes in engineering disciplines, such as informatics, computing, and software engineering.
CSCW: (Computer-supported Cooperative Work): It is a research area that focuses on how people work together and the design and development of software (groupware) that may help their work as a group.
Groupware: Software that supports and improves group work. It can be a simple text-based technology like e-mail or more sophisticated like videoconferencing.