Showing posts with label Requirement Engineering. Show all posts
Showing posts with label Requirement Engineering. Show all posts

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. 

Analysis of the Effectiveness of Global Virtual Teams

You can download the paper from here: Analysis of the Effectiveness of Global Virtual Teams.pdf

Analysis of the Effectiveness of Global Virtual Teams in
Software Engineering Projects

Abstract : 

Global Software Development (GSD) projects use virtual teams that are present in different pars of the world. These teams often communicate through telecommunication technologies. And hence there is problem of communication as it is never as effective as face to face communication like in co-located teams. The paper takes one phase of the Software Development process and studies the complex issues associated with the Global Virtual Teams (GVTs). The study analyzes the ease of use of technology, trust between teams and the task structure and how they impact the efficiency, effectiveness and the satisfaction level of the virtual teams.

Motivation :

The GVTs rarely meet in a face to face context, and hence a lot of problems arise that are not present among co-located teams.
There is a lot of debate on weather the idea of Global Virtual Teams has a positive or a negative effect on the project quality. And hence, there is a need to study the issue with the help of a real world experiment.
Also, it is needed to study weather the early stages of the software development process can be carried out at off-shore centers using virtual teams.

Objectives : 

Analyze the factors that significantly affect the quality of the output of the requirements definition phase prepared by the virtual teams.
Examine the effectiveness of the Global Virtual Teams in performing these projects.

Lessons Learnt :

In this experimental study, two teams of students, one from IIM-Lucknow and other from University of West Ontorio were asked to co-ordinate together and gather requirements for a project. The following lessons were learnt from the experiment:


  1. The differences in time, culture and size of the teams, do not have any significant impact on the final deliverables.
  2. The trust between the virtual teams is lower in the beginning of the project, but it eventually increases as time goes by. Trust is one major factor that affects the software engineering process. Increase in trust level has a positive impact on the software engineering process.
  3. Academic and cultural differences do not have any significant impact on the project.
  4. The learning process is better when teams from different backgrounds interact with each other. And therefore, the learning experience is also better.
  5. If the structure of the project is good and the technology becomes easy to use, the effectiveness and the satisfaction level of the teams is increased.
  6. Heterogeneous teams has a positive impact on the project deliverable as opposed to a common perception that heterogeneous teams do not perform well.


Conclusion :

Every organization implementing GSD have to manage the Global Virtual Teams. The study helps the organization in creating and managing their GVTs more effectively.
The analysis is similar to real world scenario of the Global Software Development where heterogeneous teams are spread across the globe. Even though the study was done only for the requirements phase, it is important to know how the teams react in a GSD scenario.