Software development means collaboration, and increasingly this collaboration must cross boundaries of culture. The aim of this tutorial is introduce models of culture, and to explore the impact of cultural differences on software development processes and methods, especially novel approaches such as agile development. The tutorial is organized around a novel board game, “Cultural Monopoly”, for small groups to explore the effects of cultural difference on a development project.
Target Audience: Architects, Developers, Designers, Managers, Project Leaders
Prerequisites: Basic knowlege of software development processes, especially agile processes.
You will learn:
knowledge of cultural dimensions
application of cultural differences in software development
Our tutorial is designed to be very accessible and practical. However, the content is based on well- established research on organizational and national cultures. We ourselves are engaged in an ongoing research study of the effects of cultural differences on software development, and are studying teams around the world.
Culture is conceived as a set of denotative elements (beliefs), connotative elements (attitudes, norms and values) and pragmatic knowledge (procedural rules) shared by a group of individuals who have a common history and who participate in a social structure. Hofstede (1997) describes cultures as the collective programming of the mind distinguishing members of one group or category of people from another. According to Hofstede, a culture varies along different dimensions: power distance, collectivism- individualism, uncertainty avoidance, long and short-term orientation and masculinity-femininity. Moreover, Hall (1976) distinguishes between high and low context cultures and also finds time orientation an important factor differentiating cultures.
In software development, groups are involved in tactical decision making, determining requirements, evolving designs, sharing code and refactoring software. Many misunderstandings between individuals that do not share a common frame of references can arise (MacGregor et al.). For example, problem identification and reporting might well depend on culture (e.g. not losing face). In some cultures getting to know you (and forming personal relationships) might be more important than legal contracts, and this could have several implications for the team process, or with the relationship with the customer. Another important source of friction is a differing sense of time and for instance ways of dealing with deadlines. Cultural differences can impact thus collaboration and interpersonal communication such as ways of solving problems, or the dynamics of the negotiation. All of these issues can become serious obstacles that require careful examination and practical solutions.
Much computer technology has been developed in North America, and many developers unintentionally apply North American cultural values and systems of thought while developing computer applications (Chintakovid, 2005). Thus, how specific methodologies succeed and are adapted in different culture different remains in question (Launier, 2005). Cultural constraints could thus set boundaries to software development introduction and performance outside North American culture, unless we learn how to adapt.
This tutorial is designed to meet the needs and challenges of software developers working in culturally diverse settings, as well as anyone implementing software methodologies in different cultures. The emphasis of the tutorial is in understanding the role and impact of cultural differences on software processes and methods. The tutorial should facilitate the development of participants’ skills to improve effective cross-cultural communication and collaboration in software projects.
This tutorial will provide a broad cultural literacy that enhances software projects conducted in multi- cultural settings and facilitate the adoption of new software development practices in different cultures. We will contribute to the understanding of the function of cultures and diversity in a software development environment.
Participants will improve their skills and knowledge by actively participating in our software development culture game, as we describe below.
Our activity involves a simulation board game. Participants move around the board, simulating the events of and software development project. Cards are drawn to indicate the cultural dimensions involved in the development team. In order to make progress, participants need to learn about the effects of the cultural dimensions on various software practices. They will participate in a role-play simulation activity where the strategies will be used in both appropriate and inappropriate ways. The effectiveness of these strategies will be reviewed in the context of software development.