Monday, November 19, 2012

Requirements engineering during global software development: Some impediments to the requirements engineering process - a case study

Jo Hanisch and Brian Corbitt. Requirements engineering during global software development: Some impediments to the requirements engineering process - a case study.


View the paper
here.
View the presentation here.


Abstract


Requirement engineering is one of the most important tasks in software development life-cycle. This stage initiates the development process and even tiny fault in this stage can exponentially explode in later stages of the development process, causing a huge amount of re-work. In distributed development, developers face many challenges, de o which the requirement engineering step becomes most complicated. This paper describes the case study of a software development that was to be completed within seven month. The developer is a Netherlands-based software development company while the client is UK-based Train Company. The case study suggest that, though economy of resource can be achieved through a true global requirement engineering, a hybrid structure of requirement engineering is more effective, as it helps build lasting relationships with the clients. The main issue in requirement engineering process in GSD, as found from the case study, is communication. There are four types of communication problems in GSD – distribution of client and development teams, distribution of development teams, cultural differences between the client and the development teams and cultural differences among the development teams. 


Discussions


The paper opens with introduction to GSD and effect of GSD on requirement engineering (RE) process. Global virtual teams are teams whose members share a common purpose and are located in at least two different countries. Global software development teams are just one type of global virtual team. GSD requires teamwork, co-operation and collaboration of team members who use electronic communication media to explain and communicate complex concepts. Carmel (1999) suggests that success in global software development occurs when rigour is imposed on the team - requires greater discipline but compensates for the loss of informal communication which allows developers to get the job done. RE is concerned with understanding the needs of the client (user) and determining the systems requirements which satisfy these needs, given any identified constraints and exclusions (Carroll and Swatman 1997). Within the social context, it is necessary for IS specialists to understand communication and cooperation, as well as social complexity during RE (Thanasankit 1999b). Thanasankit (1999a) argues, organizations need to consider the emotions and culture of users and IS specialists. 

RE, which requires a higher degree of communication than the other phases in systems development, involves communication and collaboration that is more complex in global teams. Problems occur with requirements changes in global software development because it is hard for the formal mechanisms of communication, such as specification documents, to react quickly enough. Choosing the appropriate communication tools and techniques for RE in the virtual domain is problematic - RE often requires communication-rich media to analyze the requirements and present creative solutions. In addition, virtual communications inhibit the social aspects of communication, causing misinterpretation and miscommunication of the requirements. 

From the case study, it was derived that due to relocating all experienced team members at one site, miscommunication and misinterpretation of requirements occurred at the location where team members were less experienced. Communication overheads were exacerbated by the short development time frame over such a large time zone difference. The organization was not able to identify and did not have appropriate access to the key users, hence the requirements gathered were tailored towards the users who were available. The difference between the cultures of the working environments in different countries made the process even more complicated. 

The paper suggests that we should consider social and cultural aspects of RE. The experienced members of the team should be distributed in different sites. During global software development, the task of developing an information system or product goes beyond simple integration or cooperative alliance (Roy 2001) - the collaboration of the team requires shifts in perception and a broadening of their world views. 



I find the suggestion consideration of social and cultural aspects of requirement engineering very insightful and helpful. I have seen from my personal experience that social and cultural differences during RE process can hinder the progress of the entire project. Other than this aspect, the contents of the paper look quite generic with respect to GSD. The issues mentioned in the paper are highly discussed and GSD process has come a long way towards minimizing these issues. 

No comments:

Post a Comment