A Study Of Potential Risks Associated

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Abstract:

Global Software Engineering (GSE) is the new trend of the software industry due to the round the clock development, closeness to the market, improvement in the quality and flexibility in development etc. There are many other potential benefits of global development of the software that can arise from GSE but at the same time there are some potential risks also associated with. In this paper we will discuss about some risks that can occur in GSE and the negative effects of it on the project and the possible solutions to it.

Introduction:

Global development of Software is getting more and more popular because of its powerful factors like round the clock development, economic factor, risk dilution, improvement in quality, flexibility in development and the competitive advantages. The inclination towards Global Software Engineering (GSE) is obviously because of its well identified and documented benefits [1] that includes savings in cost, access to large multi-skilled workforces, closeness to the market and reduced time to customer market etc. [1]. Availability of skilled labour at a cheaper rate around the globe, to lower down the increasing costs and most importantly to take advantage of the benefits of operating from a closest possible location, have all contributed to more and more organisations selecting this strategy. The quest for business excellence and competitive advantage compels organizations to look for solutions around the globe (offshore sourcing or offshoring). GSE appears as a feasible alternative [2] in such an environment. Some time ago the culture of developing software at remote locations started in order to reduce the cost of the product, to get access to qualified skilled human resource available around the globe. Sahay [3] defines GSE as follows:

"Global Software Engineering is the software work undertaken at geographically separated locations across natural boundaries in a coordinated fashion involving real time (asynchronous) and synchronous interaction".

It has been observed that from the studies that up to 50% of employment in the global software can be done offshore. The R&D work can be sent at offshore locations with the required services and support. [4].

But at the same time GSE is facing problems with the changing requirements and their management as compared to single-site development. Managing and keeping track of this ever changing global software process is difficult to achieve when the management has to deal with temporal, geographical, communication and cultural barriers.

In this paper we will discuss about some risks that can occur in GSE and its impact on the project and the possible solutions to it.

Literature Review

Outsourcing is a process defined as a situation in which a company shifts a part or parts of its development work to another organization to save cost, time and to get a better quality product [4].

A long ago it started as the responsibility of the organisations for producing the goods right from the raw material to the final finished goods and continues till now. But as the time went by, some companies begun to subcontract other companies to help them to finish the project by producing some of the components specially in automobile industry and the main reason for this was to cut down the cost, reduce the load and to improve the production speed by concentrating on main items. But nowadays, it has become a culture for automobile companies [40].

Gradually, the IT industry has had its own share in the evolution of outsourcing. IT outsourcing began in the 1960s when computers were highly priced and required large amounts of space [41]. A lot of money was needed to buy the computer hardware and this cost was further increased by the need for space and environmental conditions required to run and maintain the computers. In order to reduce the overall cost of the system, many companies contracted with a data processing bureau that would be responsible for performing the data processing operations.

In the 1970s, as computer hardware became more powerful and were available at an affordable price, many companies were able to buy computers and process data internally. On the other hand, companies were lacking in computer skills, resulting in the need to seek external experts to perform some of the computer operations. It was during this time that the idea of standardized application packages was born [41](Jae-Nam et al, 2000).

The beginning of the outsourcing IT functions trend started in 1989 with Eastman Kodak’s decision to outsource its IT functions.

In this section of the paper in order to identify critical factors that are known as barriers to the success of the GSE project we performed a literature review, we have tried identify the most significant factors that are barriers to GSE based upon the results of literatures only. From these, we determine all the factors which should be taken care to achieve more and more success in the GSE projects implementations.

According to SIIA [34] Global Software Engineering survey report in 2006 as shown in the picture the GSE has a significant impact on the development of a system.

Taken from SIIA Global Software Engineering Survey Report 2006

Quality of work compared to onshore staff

Taken from SIIA Global Software Engineering Survey Report 2006

With the help of literature survey we were able to identify eighteen factors which are affecting the quality and the development of GSE projects as shown in the picture and described below.

coordination

3. Risks in GSE

3.1. Quality Assurance

According to Project management guide body of knowledge [39], the best way to produce quality software that will satisfy the needs of a customer is by using the SQA processes in the whole project life cycle. Software Quality Assurance (QA) is defined as, "the performance of the overall project should be evaluated regularly to find out whether the product is satisfying the quality standards and the customer requirements or not".

If the environment is collocated, it is easier to recover from failures. We know it very well that the preventive majors are always there that can make up for deficiencies in any process [5], for example meeting with the teammates, discussion with the teammates can debug the problems and solve them easily. But in the global environment it is not the same case. Often, the clients and the developers and the members of the developer team are separated by geographical distance and may not be familiar with their collaborating partners in this kind of situation it is a difficult situation to be sure of the quality of the product being developed [5]. It is not an easy task to learn everything about the system especially when the testers and the developers are not known to each other.

3.2. Verification is an important part of Quality Management (QM) which requires a lot of collaboration and communication specially in testing the software. Thus it will be a difficult task in a geographically distributed environment. As it is a well-known fact that the separation of the teams by a distance will increase the problems because the members of the different teams may not know the responsibilities of their counterparts.

Sangwan[5], provides some rules for the verification of the product in the global scenario as good practice rules. These are given as follows:

4.2.1. Automated Code Inspections – According to Sangwan [5], a team should be created which will be the mixture of local and global teams. It will be a good practice to define the coding standards for all the sites which will help in understanding the project very well [5] and the team members will not be dependent on each other and they won’t be spending time to understand the achievement of the other team.

Prototyping – Using a prototype teams at remote locations can be made aware of what to develop [5].

Modeling- UML is a collection of techniques for modelling software or systems. UML provides mechanisms for modelling requirements [33].

Regular Requirement Reviews: it is a good practice to review the product at a regular interval of time. It is an easy option to review products in distributed environment the moment it is built as it is small in size. It helps in building trust in teams as well at different sites and improves the communication as suggested by Sangwan [5].

As Validation is an important part of Quality Management thus it faces the same crisis that verification does in the distributed environment.

Acceptance testing – it is very helpful in tackling the quality issues but it may be troublesome for the central team [5].

Knowledge Management

Wongthongtham [6] defines Knowledge Management in the global context as "In a multisite development process finding information, access of information, storing of information and sharing of information with the members of the distributed team".

When the projects are developed in a distributed environment it has many teams and different versions of documents and codes. It is normal to loose track of the projects. It has been observed that when they integrate the system it has been seen that different modules have been modified several time by different people and the system has gone to an undefined state. Configuration management tools can be used to solve these kind of problems. Configuration management is a kind of repository which consists of a set of codes of modules of different sizes and different chapters. Tools make it sure that all the conflict will in the module can be seen easily and an updated version of the module will be existing only.

‘Optimistic Locking Strategies’ is a kind of tool that allows many users to access the same document at the same time. Developers are allowed to create new documents and save them. Other users can have the access to the document to modify simultaneously.

As the amount of information is very large in size Knowledge Management becomes very complex in the distributed. Sarkar [7] also states that sharing of knowledge and management is one of the contributing factors for the success of geographically distributed projects.

Enforcing Centralized infrastructure for knowledge management – it is very much obvious that in the distributed setting, every remote site sets will have to set up its own local infrastructure. An infrastructure at the central site with the established process and the guidelines will solve the problem completely.

Cultural Sensitivity – Desouza [8] suggests that unifying knowledge from different global cultures may not be a good approach and instead it is better to gradually integrate them into one system.

Incentives – if the members are sharing information they can be paid little extra for this job as it will motivate them to share more and more information which will help in developing a better system. [8].

Weekly meetings – meeting can be fixed weekly to monitor the progress [9].

Documentation

When a product is developed in a distributed environment it has been observed that during the integration testing big amount of errors are discovered.

When the modules developed at different sites are put together and go through the unit testing they also get several errors.

According to Herbsleb [10] the main issue with the most of integration problem that the documentation is not complete, understanding of requirement is not clear. As Herbsleb [10] states that it has been observed difficulties in distributed environment comes because of the lack of essential documents."

Agerfalk [11] suggests that in a multisite development project teams should concentrate documentation so that communication gap will be less and hence the understanding and errors.

UML diagrams – To understand the project better and clear use of UML diagram in designing document is the best option. UML diagrams reduces the ambiguity and helps in understanding the project better. According to Huang [12] in global software engineering UML tools are very much useful.

Sharing templates – As suggested by Volere[32] templates can provide guidance on structured interviews for requirements elicitation which can be used to support this technique as well. Ahmad [13] mentions that multiple documents and standards causes lot of work to be repeated which is true for the global environment also.

Configuration Management

Configuration management is one of the key development process activities in a successful global project. Especially in distributed development, chances are high that different versions of software are merged creating inconsistencies and errors. Change review boards, versioning rules, branching and merging guidelines, and clean base lining and change control mechanisms must be installed. They ought to work in all sites the same way!

The purpose of Software Configuration Management (SCM) is to maintain the integrity and traceability of configuration items throughout the system lifecycle, and to make them available to whoever requires it [14]. It further states that Configuration Management is both a managerial and technical process and is essential for consistent quality control of software entities [14].

Rigorous change management assures that no change to any baseline happens without agreement. Any changes and defects must be reported in a standardized change management system. They must have status flags with time stamps to allow consistency checks before approving them. They should be traceable to related work products. And most important, no change is allowed without a documented approval. Often changes happen through tunneling between engineers that know each other. This is not working in global development.

As the popularity of Global software engineering is growing among the software organizations many challenges are also coming in its way. Among the challenges lack of trust, misunderstanding, difference of culture and the difference of language, jet lag due to time-zone differences, and lack in knowledge management due to inefficient communication technologies.

In global context, Software Configuration Management is also influenced by team distribution [2].

Failure in creating an overview of the software in development (i.e. construction and organization, identification and description of its modules, dependency definitions and project status in a time-line) [15].

Failure to provide an effective change control system [15].

Failure in breaking down work and distributing it – Often breaking down work into different tasks and modules contains interdependencies between them. Improper distribution of these tasks amongst multiple distributed sites can result in failure due to difficulty in communication and version control.

Problem Resolution

Organization should find a way to find out the problems, manage them and debug them. [14].

The information about a problem must be available at each site otherwise two site working on the same project will have ambiguous information, they may encounter communication gap and finally they wont be able to understand the system.

The information about the problems is usually maintained at each individual site, and information sharing is generally needed in the global environment. Otherwise, if two sites are working on concurrent problems, there might be a gap in communication and the sites would not be able to fully understand each other because of the lack of information. Gao[16] also encountered this as a problem in many global software production processes.

Globally centralized problem repository – According to Gao[16], such a repository allows global sites to share their problems in a centralized manner so that everyone is aware of the problems in the global project.

Use of tools – The use of tools to manage these problems is also a good practice and tools like PIMS [16] are very effective in managing problems.

Development

The development process covers the following [14]:

Requirements,

Design,

Code, testing, installation and acceptance support

The problems in most of the processes in the development phase are usually the same in both collocated and distributed GSE projects. However, their impact is not the same. Usually in most projects the processes of design, coding and testing etc, build on requirement engineering (RE) and as these processes are more complex in distributed projects, RE needs to be adapted so as to incorporate these processes [5].

UML models – One approach to maintaining traceability is by creating models for requirements in UML, as suggested by [5].

Periodic Reviews – It is easier to understand the requirements when periodic reviews are done with most of the stakeholders present.

Problem of Design

Requirements engineering is accepted as one of the most crucial stages in software design and development as it addresses the critical problem of designing the right software for the customer. Requirements engineering is increasingly becoming a set of processes that operates on different levels, including organizational, product and project levels. Furthermore, it is a continuous process on organizational and product levels and a process limited in time on the project level.

Meetings – As discussed earlier, the distributed environment makes it harder to collaborate and understand the designs of a project.

Tool support – This is considered very important at this stage and wiki is stated as especially effective by [5]

Problem of Testing

Developers at one site often make incorrect assumptions about sub-systems being developed at other sites. These discrepancies remain hidden during unit testing and surface only during integration when they are very expensive to fix. Another major challenge that can come across is the acquisition of application knowledge from the customer/parent site and its subsequent management at a remote site through the life of a project. In addition, there may be networking and other infrastructure issues which may lead to challenges in data replication and remote builds, as well as data privacy concerns that discourage customers from sharing much needed production data to development teams in other organizations.

Maintenance

The purpose of Maintenance is "to enable a software system to continue to meet user’s business needs by correction of faults, improvement, enhancement and/or migration to new environments, while preserving the integrity of organizational operations; to retire software at the end of its useful life" [14].

Banker [17] highlights the fact that a very high percentage of outsourced work pertain to software maintenance. The problem that is faced is that, most often, adequate information regarding size, complexity, reliability, maintainability etc. of these software systems is missing [4].

Negotiating a service level agreement –Sneed [18] suggested that in offering the maintenance service, the outsourcing contractor must have capable lawyers who are familiar with the work laws of the country where the service is being provided.

Management

Management covers various aspects in an organization, like organizational management, project management, quality management, configuration management, risk management and knowledge management.

Management of risk is a major concern in any project, but there are certain concerns that are specific to the distributed environment. As already discussed earlier, there are certain areas in GSE that cause a lot of problems like coordination and communication. A Research by Sangwan[5] has shown that tasks executed across multi-sites take about 2.5 times more time than tasks in a single-site.

Risk Identification:

Diagnostic methods – Risk diagnostic methods like Software Risk Evaluation (SRE) and ATAM are valid for distributed projects but they do not pay much attention to coordination issues [5].

Risk Mitigation:

Increase organizational capabilities – If the capabilities of the organization are not enough to meet the coordination needs, the capabilities need to be improved. A few improvements are suggested by Sangwan [5].

Infrastructure

Planning for the right type of tools and infrastructure support in distributed projects is a significant success factor [5].

Conventional tools may not fulfill the necessary needs of a distributed environment with multi-site teams. These teams require infrastructure support that addresses accessibility, collaboration/concurrency, awareness of GSE challenges and integration [5].

Human Resource Management

The purpose of Human Resource Management (HRM) is to provide the organization and projects with adequate human resources and maintaining their competences consistent with business needs [14].

Top multinational companies (MNCs) strive to maintain their status quo in this era of globalization. Some of the factors which influence global Human Resource Management as mentioned in [19] and other research literature are as follows:

Economy – Economy of a region greatly influences business activity and in turn affects workforce decisions [19].

Demographics: Demographics or general labour characteristics such as age, gender, ethnicity and skill base can influence the nature of challenges and practices of human resource management [19].

Cultural Differences

Cultural issues prevail due to the fundamental differences in values governing people’s lives. Based on their culture, individuals have different attitudes towards communication styles and preferences and behaviours [20]. It is the boundary condition for all personal communication [21].

Managing the work environment in a global setting can be a very difficult task. The global work environment changes according to a lot of different factors. One of these factors is the cultural difference between teams operating in this global setting.

There are many different definitions of culture. Carmel’s [22] definition of culture is something that "provides members with images of their basic concerns, principles, ethics, and bodies of manners, rituals, ideologies, strategies, and tactics of self-survival including certain notions of good deeds and bad, various forms of folklore and legends." By this definition culture is a form of social identity that influences behaviour of individuals. According to Sneed [18], Hofstede’s definition of culture is "the collective programming of the mind, which distinguishes the members of one human group from another."

Culture can often lead to many misunderstandings, both in the collocated environment as well as a global setting. However, its effects are more visible in the latter and according to Vance [19], there are frequent misunderstandings in environments where the participants are from two or three different countries. Different local traditions can lead to misunderstandings for example Mexican engineers in khaki shirts and sunglasses looking suspicious to the shirt-and-tie US engineers [19].

There are a couple of ways to alleviate the cultural differences between organizations. Communication is one of the major areas that need to be improved in order to alleviate this difference. Komi-Sirvio [23] suggested that the following recommendations need to be incorporated in global organizations to reduce the cultural differences:

The use of well-known keywords and predefined terminologies.

Enhancing communication between the team functions and improving the language of team members in order to build understanding between the sites.

Spreading the awareness of the customs and traditions of the cultures.

Communication and Coordination

People working in a single sited organization rely a lot on ad-hoc and informal communication (either during lunch / coffee breaks or the hallways). It is not often realized how crucial this informal communication is to the software development effort where ideas need to be constantly discussed and shared. In addition to this, during the course of this informal communication, conflicting assumptions, incorrect interpretations, or dependencies are discovered [5].

Consistent awareness of tasks is an important consideration in any project. Awareness is defined as an understanding of the activities of others, which provides a context for one’s own activities [24]. In software engineering, awareness is generally linked to issues related to coordination, or managing dependencies between activities [25].

In a globalized environment, this awareness tends to come about with great difficulty. Geographic and socio-cultural differences tend to result in the lapse of communication and as a result, lapse in awareness. Smite in [38] mentions certain threats and consequences regarding communication and coordination in global environment

Trust

Lewicki [26] states the importance of trust as increasingly recognized as a critical element in the successful operation of organizations and specifically of business, professional and employment relationships [27].

According to Kreitner [27] trust in the organizational setting is defined as the "reciprocal faith in others intentions and behaviour. In short we give what we get: trust begets trust, distrust begets distrust".

Another factor affecting the global work environment is trust. Moe [28] defines trust as "the willingness of a party to be vulnerable to the actions of another party based on the expectation that the other will perform a particular action important to the trust or, irrespective of the ability to monitor or control that other party."

Trust in the organizational setting is defined as the "reciprocal faith in others intentions and behavior. Trust is the foundation of successful cooperation amongst individuals within and between organizations. It is essential for the functioning of an organization and the units operating within it. A high level of trust within an organization improves performance, efficiency, productivity, creativity and the overall results achieved [29].

Describing this in the global context, we can say that "trust is simply the confidence that two global parties have on each other to be fair and honest and provide what they have promised". This global aspect of trust is very important and it is crucial for relationships between teams as it enables open communication, performance enhancements, higher quality products, and a greater satisfaction in the decision making processes [30].

Trust is the main factor that affects communication, information exchange, feedback, mutual coordination, cooperation, morale and performance [28]. Therefore the lack of trust is usually a major factor that negatively affects the workings of a project and causes projects to fail. Trust is even a bigger problem in the globally distributed environments as Carmel [22] says that the introduction of distance makes it harder for the teams to build relationships of trust.

On how to build trust an interesting research has been done by Jarvenpaa [31].

Data Privacy: In maintenance projects, data available in production databases of the live system have traditionally been used for testing. However, with increasing security concerns, many customers are now unwilling to share this data across organizational/geographic boundaries. In a study of distributed development [Sengupta et al IBM research], it was discovered that the unavailability of real-life data makes it difficult for remote development teams to conduct comprehensive unit testing of their modules.

S.N.

Area

Brief Description

Problems

Good Practice

1

Quality Assurance

[5]

Software Quality Assurance (QA) is defined as, "evaluating overall project performance on a regular basis to provide confidence that the project will satisfy the relevant quality standards".

In GSE environments clients and the developers and the members of the developer team are separated by geographical distance.

Developers may not even know who they are collaborating with on the other side.

Problems are often not discovered until very late in the project and it is usually difficult to recover from these in GSE.

In this scenario it is really hard to assure the quality of a system that has been developed by people that we do not know as we have no influence on their development process [5].

Communication must be improved.

Prototyping

Regular Requirement Reviews

2

Verification

[5]

Verification is carried out to check that the product satisfies the requirements. As a minimum, this is done in an acceptance test where the parties go through the requirements one by one and check that the product satisfies them.

It requires a lot of collaboration and communication specially in testing the software. Thus it is a difficult task in a geographically distributed environment. As the distance between teams gives rise to the problem of unawareness.

Customers and engineers will work together to verify the requirements specification document.

Use cases should be associable to functional requirements.

Every function identified though use cases should be addressed in a functional requirement. Functional requirements should be clear, concise, unambiguous statements that clearly communicate the intent of the developers to the customers.

3

Validation

[5]

The customer must be able to validate the requirements to see that they correctly reflect his needs. This means that he must be able to read the specification, understand it, and say "Yes, this is what I need.

It also runs across the same problems that verification does in the distributed environment.

Acceptance testing can be a useful tool to solve the issue.

4

Knowledge Management

[6]

The requirements engineering process deals with large volume of information. Collect, process, store and make available the knowledge related to the requirements process, as well as unify the organizational vision are needs that should be addressed with knowledge management.

In the Global Software Engineering environment knowledge is created at almost every site for the team members to communicate and understand the problem. But because of the communication gap it is unable to deal with it in proper manner.

There should be a centralized knowledge management database.

Good tools like wikis, maple etc. can be very useful.

5

Documentation

Existing documentation about the current systems and business processes including manuals, forms, and reports can provide useful information about the organization and environment, as well as requirements for the new system and their supporting rationale and importance.

Documentation is the way to provide information in Global Software Engineering environment to the geographically distributed teams and the organizations.

Template sharing

Requirement reviews

Good communication channels

6

Configuration Management

Configuration management is one of the key development process activities in a successful global project. Especially in distributed development, chances are high that different versions of software are merged creating inconsistencies and errors.

Due to cultural differences, languages problems, time zone difference, communication gaps and the trust issues it affects the quality of globally developed software.

Change review boards, versioning rules, branching and merging guidelines, and clean base lining and change control mechanisms must be installed.

7

Problem Resolution

It is the process of identifying problems, analyzing them and finally finding the resolution of it.

In a Global Software Engineering environment problem occurs at every site and maintained their as well but because of the lack of communication, coordination and cultural differences all the sites may not be aware of the problems found at one site.

This aspect should be addressed by combining process and leadership measures. For example, process, roles, and responsibilities should be made clear: every practitioner should know who should resolve an issue, how it should be resolved and the expected timeline for the solution.

8

Development

As development is iterative process, it is necessary to reopen an issue and re-evaluate competing alternatives. At the end of development, most issues are listed which is known as documentation.

Due to cultural differences, languages problems, time zone difference and communication gaps project’s specific information is not the same to all the teams

Use of templates

Sharing of UML diagrams

9

Problem of Design

The problem of design is similar to requirement. It is one of the most crucial stages in software design and development as it addresses the critical problem of designing the right software for the customer.

The problem of design in global environment is as equal as in collocated environment.

Requirement elicitation should be given more importance by creating a team to find out requirements.

Regular review of requirements can be very useful as well.

10

Problem of Testing

Software testing is a fundamental component of software quality assurance and represents a review of specification, design and coding. The greater visibility of software systems and the cost associated with software failure are motivating factors for planning, through testing. It is not uncommon for a software organisation to spent 40% of its effort on only testing.

The problem of testing in global software environment is similar to the testing problem in collocated environment but because of the communication and coordination gap we do encounter some additional problems.

Tool support , regular meetings are the useful way to overcome with it.

11

Maintenance

Maintenance of any software is an important issue to meet the business needs of a customer by taking care of the errors, debugging them, enhancing the software, improving it, and making it successful in new environment as well.

According to the research maintenance is not an uncommon issue. It is a fact that most often information about the size, complexity, reliability and maintainability is missing.

According to the research it has been suggested that service providers must invest in maintenance infrastructure as well with online maintenance culture.

12

Management

Management covers almost all the parts of the development whether it is project management, team management, risk management or human resource management.

Because of the lack of communication and coordination research shows that tasks finished in global software environment take almost 2.5 times than the project in single site.

Regular meetings, monitoring and reviews are the only ways to solve this issue.

13

Infrastructure

Infrastructure is one of the most important tools in the Global Software Engineering environment.

Infrastructure issues lead to challenges in data replication and remote builds, as well as data privacy concerns that discourage customers from sharing much needed production data to development teams in other organizations.

Good bandwidth management. Good internet connection should be available.

14

Human Resource

Human resource does not need any definition as without it no project can be imagined.

In Global Software Engineering environment as the teams are geographically dispersed because of the language problem and the cultural differences a communication gap exits which is not good for the quality of the software.

Managers should learn how to collaborate with foreign partners to minimize cultural clash.

15

Cultural Differences

Cultural identity is the identity of a group or culture or of an individual as far as one is influenced by one's belonging to a group or culture.

Managing a Global Software Engineering project is not easy as driving forces are so many.

Spraying awareness about the culture

16

Communication and Coordination

It is one of the major challenges in the Global Software Engineering environment.

As the team is geographically separated

Use of well-known functions and predefined terminologies.

Improving communication skills of the team members.

17

Trust

According to research it is believed

that trust is a fundamental factor in determining the success and failure of virtual teams.

Trust in virtual teams

needs to be developed quickly because teams may

only interact for a short period of time or may be

working on a task that is very important and urgent

Significant social communication;

predictable communication patterns;

substantial feedback;

positive leadership;

enthusiasm;

ability to cope with technical uncertainty.

18

Data Privacy

Data privacy concerns that discourage customers from sharing much needed production data to development teams in other organizations.

Due to lack of trust it is difficult to share information on different sites.

Face to face meetings

High quality video conferencing

Discussion and Conclusion:

There are lots of factors which have been experienced as barriers in the globally developed software projects and many more will come in future as well. Although research has shown that the implementation of good practices contributes to the overall success of software projects [35; 36, 37, 38]. In the paper presented above through the available literature we tried to find out some potential risks which are barriers to globally developed software projects and the available solutions to them as well.

[1]. Conchuir, E. Holmstrom, O. Olsson, H. Agerfalk, P. Fitzgerald, B., 2009. Benefits of

Global Software Engineering: Exploring the Unexplored. Software Process

[2]. L. Pilatti, J. L. N. Audy, and R. Prikladnicki, "Software configuration management over

a Global Software Engineering environment: lessons learned from a case study," in Proceedings of the 2006 international workshop on Global Software Engineering for the practitioner Shanghai, China: ACM, 2006, pp. 45-50.

[3]. Sahay, S., 2003. Global software alliances: the challenge of ‘standardization".

Scandinavian Journal of Information Systems. Vol. 15,2003, pp.3-21.

[4]. McKinsey & Company, The Emerging Global Labor Market, June 2006

P. Bhatt, G. Shroff, K. Williams and A. K. Misra, "An Empirical Study of Factors and their Relationships in Outsourced Software Maintenance," in Proceedings of the XIII Asia Pacific Software Engineering Conference: IEEE Computer Society, 2006, pp. 301-308.

[5]. R. Sangwan, M. Bass, N. Mullick, D. J. Paulish, and J. Kazmeier, Global Software

Development Handbook (Auerbach Series on Applied Software Engineering Series),: Auerbach Publications, 2006.

[6] P. Wongthongtham, E. Chang, and T. S. Dillon, "Multi-site Distributed Software

Development: Issues, Solutions, and Challenges", in Computational Science and Its Applications ICCSA 2007, vol. 4706, Heidelberg: Springer, 2007, pp. 346-359.

[7] S. Sarkar, R. Sindhgatta and K. Pooloth, "A collaborative platform for application

knowledge management in software maintenance projects," in Proceedings of the 1st Bangalore Annual Compute Conference (Bangalore, India, January 18 - 20, 2008). Compute '08. ACM, New York, NY, pp. 1-7.

[8] K. C. Desouza, Y. Awazu and P. Baloh, "Managing Knowledge in Global Software

Development Efforts: Issues and Practices," IEEE Softw. vol. 23, no. 5, pp. 30-37. Sep. 2006

[9] D. Damian, "Stakeholders in Global Requirements Engineering: Lessons Learned from

Practice," IEEE Softw. vol. 24, no. 2, pp. 21-27, Mar. 2007.

[10] Herbsleb, J. D. & Grinter, R. E. Architectures, Coordination, and Distance: Conway's

Law and Beyond. IEEE Software, Sept/Oct 1999, pages 63-70.

[11] P. J. Agerfalk, B. Fitzgerald, H. H. Olsson and E. O'Conchuir, "Benefits of Global

Software Development: The Known and Unknown," in Q. Wang, D. Pfahl, and D.M. Raffo (Eds.): Making Globally Distributed Software Development a Success Story, Springer-Verlag Berlin Heidelberg: ICSP 2008, LNCS 5007, pp. 1-9

[12]. S. Huang, V. Gohel, and S. Hsu, "Towards interoperability of UML tools for exchanging

high-fidelity diagrams," in Proceedings of the 25th Annual ACM international Conference on Design of Communication (El Paso, Texas, USA, October 22 - 24, 2007). SIGDOC '07. ACM, New York, NY, pp. 134-141.

[13] A. Ahmad, H. Khan, "The Importance of Knowledge Management Practices in

Overcoming the Global Software Engineering Challenges in Requirements Understanding," M.S. thesis, Department of Systems and Software Engineering Blekinge Institute of Technology, Sweden, August 2008.

[14] British Standards Institution, Issue 5.5, November 2007.

[15.] H. TellioÄŸlu and I. Wagner, "Negotiating Boundaries. Configuration Management in

Software Development Teams," Computer Supported Cooperative Work (CSCW), vol. 6, pp. 251-274, 1997.

[16]. J. Z. Gao, F. Itaru and Y. Toyoshima, 2002. "Managing Problems for Global Software

Production – Experience and Lessons," Inf. Technol. and Management, vol. 3, no. 1-2, pp. 85-112, Jan. 2002.

[17] R. D. Banker, S. M. Datar, C. F. Kemerer, and D. Zweig, "Software complexity and

maintenance costs," Commun. ACM, vol. 36, pp. 81-94, 1993.

[18]. H. M. Sneed, "Offering software maintenance as an offshore service," in Software

Maintenance, 2008. ICSM 2008. IEEE International Conference on, 2008, pp. 1-5.

[19]. C. M. Vance and Y. Paik, Managing a Global Workforce Challenges and Opportunities

in International Human Resource Management,: M.E. Sharpe Inc., New York, July 2006.

[20] Perry, D. E., Staudenmayer, N., & Votta, L. G. (1994). People, organisations, and process

improvement. IEEE Software, 11(4), 36-45.

[21] Gudykunst, W. B., & Matsumoto, Y. (1996). Cross cultural variability of communication.

In W. B. Gudykunst,S. Ting-Toomey, & T. Nishida (Eds.), Communication in personal relationships across cultures. Thousand Oaks, CA: Sage Publications.

[22] Carmel, E. and Agarwal, R. Offshore Sourcing of Information Technology Work by

America’s Largest Firms. Technical Report, Kogod School, American University, Washington D.C., November 2000.

[23] S. Komi-Sirvio and M. Tihinen, "Lessons Learned by Participants of Distributed

Software Development", Knowledge and Process Management, vol.12, no.2, Wiley InterScience, pp.108-122, 2005.

[24] P. Dourish and V. Bellotti, "Awareness and coordination in shared workspaces," in

Proceedings of the ACM Conference on Computer Supported Cooperative Work, 1992, pp. 107-114.

[25] T. W. Malone and K. Crowston, "The interdisciplinary study of coordination," ACM

Comput. Surv., vol. 26, pp. 87-119, 1994.

[26] R. J. Lewicki and B. B. Bunker, Developing and maintaining trust in work relationships,

in Trust in Organizations: Frontiers of Theory and Research. London UK: Sage Publications, 1996, pp. 114-139.

[27] R. Kreitner, A. Kinicki, and M. Buelens, Organizational Behavior, First European Edition

ed. London UK: McGraw-Hill Publishing Company, 1999.

[28]. N. B. Moe and D. Å mite. "Understanding a lack of trust in Global Software Teams: a

multiple-case study," Softw. Process, vol. 13, no. 3, pp. 217-231, May. 2008.

[29]. Y. Keyzerman, Trust in Virtual Teams, in Proceedings of IEEE International Professional

Communication Conference, 2003, Orlando, Florida, USA., 2003.

[30]. M. A. Babar, J. M. Verner and P. T. Nguyen, "Establishing and maintaining trust in

software outsourcing relationships: An empirical investigation," J. Syst. Softw. vol. 80, no. 9, pp. 1438-1449, Sep. 2007.

[31]. Jarvenpaa, S. and Leidner, D. Communication and Trust in Global Virtual Teams.

Journal of Computer Mediated Communication 3(4), June, 1998.

[32]. Sengupta et al, A research agenda for distributed environment "IBM Research"

[33]. Dennis A. (2002) Systems Analysis and Design: an Object-Oriented Approach with

UML, Wiley.

[34]. SIIA Global Software Engineering Survey Report, 2006

[35]. Emam K. E. and Birk A. (2000) Validating the ISO/IEC 15504 Measure of Software

Requirements Analysis Process Capability, IEEE Transactions on Software Engineering, Vol. 26, No. 6.

[36]. Young R. R. (2004) The Requirements Engineering, Boston, Artech House

[37]. Sommerville I. (2004) Software engineering, Seven Edition, Addison-Wesley Publishers

Limited

[38]. Brooks F. (1987) No Silver Bullet – Essence and Accident in Software Engineering,

IEEE Computer Vol. 20, No.4,pp.10-19

[39]. A Guide to the Project Management Body of Knowledge (PMBOK Guides). Project

Management Institute, 2004.

[40]. www.ccsenet.org/journal/index.php/ijbm/article/download/12151/10124

[41] www.doria.fi/bitstream/handle/10024/29922/TMP.objres.661.pdf



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now