• No results found

Importance of Knowledge Management in Distributed Software Development

N/A
N/A
Protected

Academic year: 2021

Share "Importance of Knowledge Management in Distributed Software Development"

Copied!
54
0
0

Loading.... (view fulltext now)

Full text

(1)

School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI

Importance of Knowledge Management in Distributed Software Development

Bhagyashree Sailwal

Aug 2009

MSI Report 09050

Växjö University ISSN 1650-2647

SE-351 95 VÄXJÖ ISRN VXU/MSI/IV/E/--09050/--SE

(2)

Executive Summary

Companies in all types of industry compete with each other to sustain competitiveness and software companies are no different. To achieve differentiation, the companies need to cut down the development cost of the software, reduce the time to market of its products, make available the skilled labour at a place at any time. Due to this the software companies started offshoring or outsourcing their work to software companies in other parts of the world, preferably India, China so that they can get the work done faster and in a cheaper way. As a result, there is formation of distributed teams i.e. varied sized teams are formed in different parts of the world. These teams tend to communicate and coordinate through ICT (Internet and telecommunication technologies). In-spite of these ICTs, the software teams do come across several challenges like cultural differences, loss of communication richness, geographical dispersion, coordination breakdown, loss of teamness and time zone differences. ICT can minimize these problems but managing the knowledge that exists between the team members, processes, culture, and working environment of the software company is also important. A software development life cycle (SDLC) is followed for the development of the software products in the companies. Organizations must manage knowledge in all stages of software development efforts—from requirements gathering to creating and testing programs, installation, and maintenance. Knowledge management is considered to be the most important asset of an organization because it not only enables organizations to efficiently share and create knowledge, but also helps in resolving the problems faced in distributed software development. Knowledge even extends to the improvement of organizational software development processes and practices. Variety of knowledge management techniques can be introduced into the SDLC to enhance the understanding and knowledge sharing between dispersed team members. In this dissertation, a qualitative survey was performed with employees of Lelesys Infotech Pvt. Ltd, to understand the measures the distributed teams take to overcome the problems. Analysing the empirical data, it is found that, a right mix of personalization strategy needs to be adopted which is more people led. People need to socialize at a larger extent so that ones ideas and thinking is expressed and hence will build a sense of trust and bonding between them. Due to this people will start sharing more of their knowledge and hence knowledge will be disseminated in the organization at a greater extent. For this, various knowledge management techniques are proposed, like building communities of practice which can help in quick problem solving and sharing of ideas of similar interest, spreading motivational and inspirational stories which can motivate the team members and can potentially help the company minimize the problems related to distributed software development. Frequent face to face meetings, more training sessions where people can meet and socialize often, celebrating successes etc. can help people come closer and be motivated. With respect to technology, companies need to have good telecom infrastructure with high capacity bandwidth and encourage frequent video conferencing where people can see each and other and hence can understand each other better, similar to face-to-face meetings.

Standardization like using standard templates, versioning tools for maintaining the versions of the software and also project management tools to manage the project effectively, standard processes and procedures so that all members can follow them and hence will reduce the problems faced in distributed software development. Use of document management systems, knowledge repositories can help individuals in solving problems easily and fast. Team members need to be encouraged to use these knowledge repositories to codify the knowledge as well as reuse the knowledge. Software companies can benefit from achieving certifications like ISO, CMM for quality or P-CMM which is more people led, to have a good working culture and more of sharing of knowledge between the members in the organization. Overall, in this thesis it is seen that not only ICT but ICT and Knowledge management both can possibly provide an effective and efficient solution for abating the problems faced in distributed software development.

(3)

Abstract

In today’s global market, software companies are forced to compete with each other and must sustain their competitiveness. Software companies outsource and/or offshore their work leading to the formation of distributed teams to cut down development costs, availability of skilled labor force, reduce time-to-market of their products, risk sharing etc. Despite the fact that distributed software development offers many benefits to software companies, the developers do come across several challenges like culture difference, loss of communication richness, geographical dispersion, coordination breakdown, loss of teamness and time zone differences. Information and communication technologies can minimize these problems but managing the knowledge that exists between the team members, processes, culture, and working environment of the software company is also important. A Qualitative survey was performed with employees of Lelesys Infotech Pvt. Ltd, to understand the measures the distributed teams take to overcome the problems. Analyzing the empirical data, it is found that to have a right mix of personalization strategy and to create a knowledge sharing environment by encouraging the teams for socialization, building communities of practice, spreading motivational and inspirational stories can potentially help the company minimize the problems related to distributed software development. Also general recommendations are provided, since every other company is facing such problems. Blend of Knowledge Management practices and Carmel’s answer with respect to ICT can possibly provide an effective and efficient solution for abating the problems faced in distributed software development.

Keywords: Software Development, Software Process, Software Development Process, Distributed Software Development, Knowledge Management, Knowledge Management Practices.

(4)

Acknowledgements

This dissertation is a collaboration in the truest sense, and could not exist without the support and input of more people than I can name on one written page. I would like to thank the following people who played important roles in the process:

I especially want to thank my supervisor Ms. Miranda Kajtazi, for her eloquent correspondence, openness and sensitivity above and beyond the call of duty during my dissertation. The words we shared have illuminated me beyond the confines of this research. Her perpetual energy and enthusiasm in research had motivated all her advisees, including me. Her contribution made my research smoother.

I wish to express my sincere thanks and appreciation to Prof. Anita Mirijamdotter for her attention, guidance, insight, and support during the research and the preparation of this thesis. My special thanks to Dr. Jan Aidemark for directing me towards the area of Knowledge Management, main focus of this thesis.

He has also supported me in various ways to complete this Masters program successfully.

I would extend my thanks to Mr. Osama Mansour, my advisor in the final stages of the work, has also been abundantly helpful and assisted me in numerous ways.

I would like to thank my teachers and supervisors for their unmatched patience and generosity, and for creating a beautiful environment for the finished work.

My warm thanks are due to my fellow colleagues for their extended support and help during the Masters study at Växjö University, Sweden.

I convey special acknowledgement to Lelesys for giving me an opportunity to conduct this research in their esteemed organization. I feel fortunate and honoured by the employees of Lelesys, who participated in this study by devoting their valuable time in interviews, questionnaires and sharing their feelings. I know it might not have been very comfortable for them and I am in awe of their generosity and fortitude.

My deep gratitude goes to my family for their unflagging love and support throughout my life; I owe my loving thanks to my father - B. R. Jogdand, husband - Sandeep Sailwal and son - Yajat Sailwal. My father has given me encouragement for further study. My husband gave me motivation and direction from time to time. My son sacrificed lot of fun times due to my research study. I dedicate this work to my whole family for their understanding and love.

Last but not least, thanks to God for my life through all tests and always giving me right opportunity when needed. You have made my life more bountiful. May your name be exalted, honoured, and glorified.

(5)

Table of Contents

Executive Summary ... i

Abstract... ii

Acknowledgements ... iii

1. Introduction... 1

1.1. Background and Problem Area... 1

1.2. Topic Justification... 1

1.3. Purpose and Research Questions ... 2

1.4. Disposition ... 2

2. Theoretical Framework... 3

2.1. Software Development... 3

2.2. Distributed Software Development Teams... 5

2.3. Centrifugal and Centripetal Forces Model (CCF). ... 13

2.4. Knowledge Management ... 17

3. Methodology ... 25

3.1. Knowledge Claim: ... 25

3.2. Type of Research: ... 25

3.3. Survey Instrument:... 25

3.4. Sampling Selection: ... 26

3.5. Data Analysis:... 26

3.6. Validity & Reliability: ... 26

3.7. Ethical considerations ... 27

4. Presentation & Analysis ... 28

4.1. Company Information... 28

4.2. Interviews... 28

4.3. Mapping of Empirical Data to Research Themes and Analysis ... 30

5. Discussion... 37

5.1. How can KM Practices help in resolving or abating the problems in DSD?... 37

6. Conclusion ... 40

6.1. Future work... 41

References... 42

Appendix A- Questionnaire ... 47

Table of Figures

Figure 1: Software Processes ... 3

Figure 2: Onsite Delivery Model ... 8

Figure 3: Offshore Delivery Model ... 8

Figure 4: Hybrid Onsite-Offshore Delivery Model ... 9

Figure 5: Centrifugal Forces & Centripetal Forces... 13

Figure 6: Data, information and knowledge ... 17

Figure 7: Alternative view of data, information and knowledge. ... 18

Figure 8: Spiral Evolution of Knowledge Conversion and Self-transcending Process ... 20

Figure 9: Communities of Practice ... 22

(6)

1. Introduction

1.1. Background and Problem Area

During the last decade software engineering industry has started to increasingly use nationally and internationally distributed way to carry out software development projects (Herbsleb and Moitra, 2006).

Amount of delivery time needed, expenses incurred, a shrinking local skilled pool, and rising complexity in technology and customer requirements has resulted in a need for companies to look for globalization for offshoring or outsourcing their product development operations. According to Carmel(1999), the reasons behind this trend towards Distributed Software Development (DSD) are software industry’s growing needs to cut down development costs, constant need of skilled labor force, need to decrease time-to-market of software and companies’ need to be near the customers worldwide. In regard to these reasons, DSD is considered to be an important issue for software companies, as teams are located at different locations across the globe and work on the project(s) simultaneously, in a distance-based communication and development. The need to manage development efforts in different locations and time zones that gives rise to communication and coordination problems, and across cultural or organizational boundaries, amplifies the complexity and cost of modern-day software development.

1.2. Topic Justification

Software development process is a set of activities that leads to the production of a software product. These processes are complex, and like all intellectual and creative processes, they rely on people making decisions and judgments. These processes consists of human intensive activities, hence to work in a DSD environment imposes a lot of problems like language barriers, lack of synchronization of development processes, lack of understanding the business, software and technical requirements, difficulty in collaborating due to different geographical locations, and so on (Mockus and Herbsleb, 2001).

The literature review performed for this study reveals about the problems faced in the process of software development life cycle (SDLC) and also the challenges faced by the companies while developing software in a distributed team environment. Distributed teams result mainly due to outsourcing, offshoring or through acquisitions and mergers (Sood, 2005). Carmel (1999) discussed about the centrifugal forces that are mainly the challenges faced in DSD and centripetal forces as the proposed solution for those challenges.

Knowledge Management (KM) is considered to be the most important asset of an organization because it not only enables organizations to efficiently share and create knowledge but also helps in resolving culture, communication, and coordination and collaboration problems especially in DSD. A KM system facilitates creation, access and reuse of knowledge, and its main goals are to promote knowledge growth, communication, preservation and sharing (O'Leary and Studer, 2001). It involves human resource, enterprise organization and culture, as well as the information technology, methods and tools that support and enable it. For managing knowledge into the organization, a proper KM Strategy need be developed. KM is a strategy that has defined and coordinated plan of actions to enable the use of KM techniques in core business processes. KM Theories like Communities of Practice; Nonaka’s (1998) model for knowledge creation and sharing; use of stories; knowledge repositories for reuse; document management systems;

yellow pages for competence management are well suited in DSD environments.

Software companies has large amount of knowledge resided in their processes, methodologies, people, culture and working environment. There is a need to spread knowledge in/across organizations in order to understand, manage, identify customer and business needs, know-how of culture and co-ordinate throughout the SDLC effectively (Rus and Lindvall, 2002). The complications happen in communication and coordination due to distributed teams, especially when they are developing one single program or module in collaboration with other teams that reside at different locations. Lots of knowledge and information needs to

(7)

be shared at the right time, so that other team takes over from the point one team developed partly without wasting much of the time in understanding the module from scratch. In a similar manner, managers also face many problems, such as deadline slippage in the project, due to which the relation between the organization and the client is at stake. Considering these widely known problems that software companies face today, distributed teams require a high degree of collaboration and knowledge sharing to overcome them.

Although Carmel(1999) discussed about the centrifugal forces(challenges faced in DSD) and centripetal forces(proposed solution to the said problems), a solution to these problems from a KM perspective has not been researched before. So a research needs to be done on how KM practices can help in overcoming the problems while developing a project by teams working at different locations over the globe. As a result, Carmel(1999) s’ answer to those problems should be supplemented by the KM practices that are highlighted in this research to give an effective and efficient solution for the challenges in DSD.

1.2.1. Importance of a study for an audience

This research is important for several audiences in different ways. First, it provides information regarding KMs’ capacity for handling problems related to DSD so it can be informative for Chief Knowledge Officers in organizations. It is important for the personnel who are in charge of implementing a KM system for incorporating more techniques to create and share knowledge from KM area like communities of practice where people are not forced to, but can willingly form a team and discuss about the problems and solutions.

Project Managers and Developers, who are lagging behind and require delivering the project in time, can get information on how KM helps in overcoming the challenges faced during SDLC in distributed teams. This research also shows how taking out time to document and share personal knowledge pays-off.

1.3. Purpose and Research Questions

This paper investigates software development challenges introduced by stakeholders’ geographical distribution in a multi-site organization and shows how important KM is in minimizing the problems faced.

In particular, this thesis proposes the KM practices that can possibly be used to abate software development problems in distributed environment.

1.3.1. Research Question

RQ: How can Knowledge Management Practices help in resolving or abating the problems in Distributed Software Development?

The research is more focused on KM Practices that are useful for DSD. The challenges faced in distributed development teams are briefed so that one understands how they can be reduced by using KM practices.

Many authors (Sood, 2005, Carmel, 1999, Mockus et al., 2001, Prikladnicki et al., 2004 and Vanzin et al., 2005) have already researched in the area of problems faced in global development but there is a need of research in KM area for DSD. So in this research, the objective is to focus on the KM practices which are useful for distributed software teams.

1.4. Disposition

The thesis is constructed into chapters mentioned below.

 Introduction-Introducing the problem area, purpose of this research with research question guiding the whole research.

 Theoretical Framework-Analyzing and Synthesizing the concepts and theories, which are required to perform this research.

 Methodology–Method of conducting this research, how data is collected and analyzed.

 Presentation & Analysis-Empirical data is presented and analyzed simultaneously.

 Discussion-Research question is answered by the findings from theory and practice.

 Conclusion-Recommendations and future work.

(8)

2. Theoretical Framework

In this chapter theories that are relevant to the study are presented. First an overview of software development is given which is followed by the section which describes the reasons why companies opt for distributed teams or why are they forced to go for geographically dispersed teams. Next, Carmel’s theory describing the challenges faced in DSD and the solution in ICT to overcome those challenges is given.

Further, KM theories are provided which are relevant to this study..

2.1. Software Development

In this section, software development concept is introduced to the reader to understand the main purpose of this study. Main aim is to see how KM is important in the area of DSD. This section will help the reader to get familiar with the software development concepts and the roles and responsibilities the developers of the team may have and also various process models for the software development will be discussed

2.1.1. What is Software?

In these techno-savvy days’ the need of software is versatile. In each and every sphere of human life software play a great role. In fact, it originates from the users’ needs and requirements. Many people equate the term ‘software’ with computer programs but according to Sommerville (2007), “software is not just the programs but also all associated documentation and configuration data that is needed to make these programs operate correctly”. A software system usually consists of a number of separate programs, configuration files, which are used to set up these programs, system documentation, which describes the structure of the system, and user documentation, which explains how to use the system and web sites for users to download recent product information. Software engineers are concerned with developing software products, i.e., software which can be sold to a customer.

According to Jalote (2005), a successful project is the one that satisfies the expectations of the customer on all the three goals of cost, schedule, and quality of the end product. Consequently, when planning and executing a software project, the decisions are mostly taken with a view to achieve a high quality and productivity. In software, three main factors that influence quality and productivity are (Jalote, 2005):

 People - Skills of the people involved in the project,

 Processes – processes which people use to perform the different tasks in the project and

 Technology - or tools the people use. Software projects utilize a process to organize the execution of tasks to achieve the goals on the cost, schedule, and quality fronts.

2.1.2. What is a Software process?

A software process consists of several processes and sub processes that run simultaneously during the project execution. The figure below shows different processes running parallel from the start to the end of the project.

Figure 1: Software Processes (Jalote 2005, p. 29)

(9)

The software development process is the central process, which specifies the development, and quality assurance activities that need to be performed and may utilize some process models. Running parallel is the management process, which specifies how to plan and control these activities so that cost, schedule, quality, and other objectives are met. During the execution of the project many items are produced like source code files, requirement document, design document, integrated modules. These items keep evolving as the project proceeds, creating many versions on the way. To ensure that the final software being produced uses the correct versions of these items, suitable software configuration control process is used. This process is important to keep track of versions and modifications made and hence very effective in distributed team’s environment. These three constituent processes (development process, management process and software configuration control process) focus on the projects and the products and are considered as comprising the product engineering processes, as their main objective is to produce the desired product. Software process is a dynamic entity, since it needs to adapt to the newer technologies and tools (Jalote, 2005). Hence a process is needed to manage it, like the management process, which has a main objective as to improve the capability of the software process to produce quality products in low cost.

2.1.3. Software development life cycle and various roles the developer plays

Software Development life cycle is a systematic process consisting of various stages during which software is developed or a software process is the set of activities and associated results that produce a software product (Sommerville, 2007). Software processes are complex and, like all intellectual and creative processes, rely on people making decisions and judgments and therefore software development process consists of human-intensive activities. Software development team consists of many developers. These developers have to perform different roles. A role is defined by a set of activities and responsibilities related to the artifacts being created or controlled (Kruchten, 2000). As per Mellor et al. (2004), the roles in the software development process are Requirement Analyst (Business analyst for domain specific projects), System Analyst, Designer, Programmer, Tester and Maintainer (cited in Liu and Roussev, 2005, p. 56).

Every company has their own process of developing the system but every software process has four fundamental process activities that are common to all software processes (Sommerville, 2007). The way the companies plan and standardizes these processes is different.

Software Specification – Software specification or Requirement engineering is the process of understanding and defining what services are required from the system and identifying the constraints on the system’s operation and development (Sommerville, 2007). This stage is particularly the critical stage of the software process as errors at this stage inevitably lead to later problems in the system design and implementation. The Business Analyst understands the requirements and in coordination with the System Analyst analyzes all the requirements and comes up with a requirements document which consists of the end-user or customer requirements and the system requirements (system specification).

Software design and implementation: Implementation stage of software development is the process of converting a system specification into an executable system. A software design is a description of the structure of the software to be implemented, the data which is part of the system, the interfaces between system components and, sometimes, the algorithms used (Sommerville, 2007). Designers develop the design iteratively through a number of versions and come up with a design document. The development of a program to implement the system follows naturally from the system design processes. Normally, programmers carry out testing of the code they have developed. Changes in the program are done if there are defects in the program. Testing is repeated to ensure that the change has been made correctly.

Software Validation: Software validation or, more generally, verification and validation are intended to show that a system conforms to its specification and that the system meets the expectations of the customer buying the system. Testers perform testing of the software. Different types of tests are done like component tests, system tests, acceptance tests etc. (Sommerville, 2007).

(10)

Software Evolution: The flexibility of software systems is one of the main reasons why more and more software is being incorporated in large, complex systems. Changes can be made to software at any time during or after the system development. This is the maintenance phase, where software may be modified if the customer requirements are changed or new requirements come up (Sommerville, 2007). The Maintainer is involved in the maintenance activity by building software assets, which can be reused across a large number of enterprise applications over a long period of time. The job of maintainer bears similarities to those of analyst and designer and developer (Liu and Roussev, 2005).

The software development process may utilize some of the process models that specifies a general process and is an optimum for a class of projects. Sequential models like waterfall model (Royce, 1987) exist where all the activities in the SDLC are executed sequentially, without returning back to the previous activity.

Some variants of the waterfall model allow revisiting the immediately preceding activity ("feedback loops") if inconsistencies or new problems are encountered during the current activity. There are iterative models like spiral model (Boehm, 1988), rational unified process (RUP) (Kruchten, 2000), timeboxing (Jalote, 2005) etc. In these models, the basic idea is that the software should be developed in increments, each increment adding some functional capability to the system until the full system is implemented. At each step, extensions and design modifications can be made. The iterative approach to software development is nowadays widely used. Many contemporary development approaches Agile approach (Cockburn, 2001) and extreme programming (Beck, 2000) consider iterative development as a basic strategy for developing software for current times.

2.2. Distributed Software Development Teams

Distributed Software Teams are software teams that collaborate across national borders and mostly work on a common software system/project (Carmel, 1999). The distributed teams collaborate during the software development phase through the use of various technologies such as video conferencing, discussion boards and electronic meeting. The business analysts need to work closely with the system analyst to make a requirements document. Also when the programmers in distributed teams are working on a same module to be developed then there is need of collaboration to achieve the desired task. In this section, first the factors that lead to DSD or teams is discussed and then how these teams actually work or formed is seen. Further, the challenges faced by the companies going for DSD is discussed.

2.2.1. Factors that lead to distributed software development or distributed software teams are:

Several authors have mentioned the factors that lead to DSD teams. A thorough review has been done for the literature written by (Sood, 2005, Carmel, 1999, Mockus et al., 2001, Prikladnicki et al., 2004 and Vanzin et al., 2005) and has finally come up with a consolidated list below:

 The reasons for Outsourcing & Offshoring which leads to distributed teams;

 Acquisitions & Mergers – Acquisition and Mergers leading to teams from different companies collaborating to achieve the desired task;

 Proximity to the Customer;

 Size of software companies Outsourcing & Offshoring:

Outsourcing from a company perspective is about getting an external entity (vendor) to perform work for you for an agreed remuneration, in order to provide a certain strategic advantage. Here the company is the Client and the external entity is the vendor. Offshoring is the process of' outsourcing to a remote location that offers some sort of advantage, generally a cost advantage. Not all outsourcing is offshoring (Sood, 2005). Offshoring as previously considered as a bold step but in this era of globalization it is a necessity to maintain a certain edge by companies. The steady and irreversible norm of globalization of businesses has been started from last decade, and particularly in field of software outsourcing business (Herbsleb et al., 2001). Due to speedy introduction of new technologies and computer applications, the pace of globalization

(11)

has dramatically increased and leading to an independent world. Software outsourcing companies also tend towards globalization due to satisfied customers, high quality and due to rapid and cheaper development of software products to compete in the targeted market.

Following are the reasons for a company to outsource its work. These reasons also finally fuel up the formation of DSD teams. (Sood, 2005, Carmel, 1999, Mockus et al., 2001, Prikladnicki et al., 2004 and Vanzin et al., 2005)

 To reduce staffing costs (development cost) -by leveraging the lower cost of highly trained offshore resources. Software companies in high-wage nations are always looking out for low-cost programming. The giant of offshore programming is India, with programmers earning roughly ten to twenty percent of what their counterparts in the United States earn. Other emerging nations with low software labor costs that have become popular are the Philippines, Russia, as well as China.

 To reduce operating costs-by a reduction in facility costs, facilities management, HR, management, payroll, etc.

 To improve company focus-by concentrating in-house resources on future products and services.

 To provide flexibility-by enabling the addition of trained, competent resources as and when required.

 To reduce the time to market-by providing flexibility in resources during implementation or testing to reduce the lead time. Given the time zone differences in this world, a project which is dispersed can be productive around-the-clock. The concept of working around-the-clock works as follows: When the team in California, US finishes its work for the day, it sends its work, such as design modules or source code, to its sister team in Bangalore, India. Since, its morning in India at that time, the members of this team read through the questions, summaries, and instructions written by their American colleagues and proceed to continue their work. As the sun sets in Bangalore, the local team finishes its day's tasks, reversing the information flow, together with its day's worth of added value. Around-the-clock development turns a disadvantage (geographical distance and time zones differences) into a competitive advantage.

 To acquire specialist skills-by introducing trained individuals with specialized skills as and when required. Main issue with software companies is the scarcity of software professionals. One of the primary reasons for the explosion in DSD teams is the acute global labor shortage in software professionals.

 To follow the leader-by aping the others thinking that since big companies are doing, it might indicate that several informed minds have analyzed the proposition and have arrived at the conclusion that outsourcing is the right thing to do. Besides, if your company operates within the global market, you will be forced to keep up with your competition.

 To leverage the use of world-class resources-by using affordable world-class resources that would otherwise have been too expensive. Also Software companies want to deploy the best software designers and developers in the world regardless of their geographic location.

 To improve quality by trying to bridge the gap on processes, e.g., by working with vendors that have a higher' level of process maturity. Offshoring to India is mostly preferred because of high level of certified companies offering the offshore solutions. The certifications are International Standards Organization (ISO that concern quality systems that are assessed by outside auditors) and Software Engineering Institute’s (SEI) Capability Maturity Model (CMM - A model of 5 levels of organizational ‘maturity’ that determine effectiveness in delivering quality software). Other emerging nations are China, Japan as well as Russia. The results of an annual survey conducted by RUSSOFT Association in 2006 on Russian Export Software Market stated that more than 500 companies in US are certified to CMM standard, in India more than 140 companies, China and Japan also post large number lie close to 120 each but in Russia only 10 companies had gone for certification. (http://www.russoft.org/analytics/market_survey_2006/?quality, 2009). Same survey conducted in the year 2008 revealed that the number of companies undergoing certifications

(12)

remained almost unchanged. (http://www.russoft.org/downloads/RUSSOFT_Survey_5_en.pdf, 2009) Certification is the most important way to gain credibility with foreign customers. Quality is of utmost importance and so achieving these certifications is in most cases a passport to participation in major tenders.

 For risk mitigation or risk sharing: High risk of budget is involved in developing a project on time. This risk is shared by the vendor when the outsourcing companies outsource their project work to the vendors. The vendors offer deals by which they agree to engage in an undertaking and guarantee a set of deliverables at the desired time and fixed cost. In the agreement penalties are mentioned if the vendor fails to deliver upon the agreed time. Vendors have become more aggressive nowadays and are providing value pricing that can be a major benefit. For Example, in one case, a vendor offered to take on the entire cost of implementation in return for 40% of the savings that would be realized during a five-year period (Carmel, 1999).

We have seen the reasons for outsourcing which fuel up the formation of distributed team. Other reasons that lead to distributed teams are Acquisitions and Mergers, Proximity to customer and size of software companies which is discussed below.

Acquisitions and Mergers: Software companies are filling gaps and expanding product families through acquisitions. Software firms are much in the news in this decade for the acquisition and merger activity.

Most of the giant software companies either acquire a company, or a product line, or merge with other companies. An acquisition is when one company, the acquirer, purchases and absorbs the operations of another, the acquired (Thompson et al., 2003). A merger happens when two firms, often of about the same size, agree to move forward and exist as a single new company (Barker et al., 1998). Every company strives for growth and smaller firms cannot survive against the giant software conglomerates and hence go for merger or acquisition. By doing so, they benefit from a more competitive worldwide platform;

well-defined and complementary brand identities; a wider range of products, and a stronger presence in the global market. So in order to remain viable global player, software companies are increasing global software development by getting into the merger activity thereby to signal the world that ‘we are a global player’.

Due to this trend of global acquisition, software teams thousands of miles apart are suddenly forced to collaborate and coordinate, sometimes rather reluctantly. (Carmel, 1999)

Proximity to the customer: The maxim of the best corporations, the best salespeople, and the best designers is to stay close to the customer. Software development process requires a great deal of interaction- ideally face-to-face-between business analyst and customer and also between designer and customer. Hence software companies need to set up sites near their customers, wherever they may be. Customer proximity is particularly important for requirements gathering and design, where rich communication and relationships are needed between customers and developers.

Size of software companies: Software companies have grown quite large. The top 50 software companies have now more than 1000 employees and hundreds of these professional are mainly into development. This size factor creates both problems and opportunities. Problems in the sense, these co-located software development centers become too large and unwieldy to manage and therefore distribute and work globally and due to this opportunities for global collaborations are evolved.

2.2.2. Formation of distributed software teams:

There are different delivery models, however in this research the following three models are taken in consideration. These models help in understanding how the teams are actually distributed geographically.

 Onsite model: In this model the vendor places skilled individuals at the client location to perform a particular task ranging from requirement gathering, specification development, implementation, testing, maintenance, or support. The vendors’ team members will work and constantly interact with

(13)

the client (as shown in figure-2). Placing a vendors’ team on the client location adds a certain amount of overhead to the client like day-to-day management which may include appointing a project managers for 5-10 developers, an administrator for 40-50 members etc, provide all logistical support, such as offices, computer, software licenses, phone etc.

Figure 2: Onsite Delivery Model (Sood 2005, p. 53)

 Offshore model: In this model, the entire outsourced work undertaken is accomplished in a different country across national borders, in general in a more cost-effective location. The Client manager directly deals with the offshore personnel who are the main offshore coordinator (as shown in figure- 3). Preplanned meetings and exact handover dates are planned in advance, since face-to-face contact take place very rarely. This model can be very successfully deployed for tasks requiring people working around-the-clock in 24/7 model such as in the areas of product support, project implementation etc. This model helps in reducing the time to market as well as client gets skilled labor at a fraction of domestic cost.

Figure 3: Offshore Delivery Model (Sood 2005, p. 58)

Here, the client project manager uses the offshore coordinator to manage resources at the offshore location. A part of the offshore team co-locates to the clients’ office during the initial phase of project development like planning the scope and deliverables, for requirements gathering. Once the scope is defined and the deliverables are clearly understood, the vendor's team returns offshore to continue the implementation and whole implementation process is conducted offshore.

 Hybrid Onsite-Offshore Model: The vendor in this scenario can use a variant of pure onsite model and offshore model, but most of the work will be carried out in the offshore centre. In this model the

(14)

onsite staff is managed by the vendor, who is responsible for smooth knowledge transfer, as well as the integration and execution of the work undertaken (as shown in figure-4). This model is most successful and widely used, but slight variations are there in the way they divide or perform the work in the teams.

Figure 4: Hybrid Onsite-Offshore Delivery Model (Sood 2005, p. 63)

In this model, the client project manager relies on the vendor’s manager to control and coordinate all activities conducted by the vendor, including the onsite and offshore teams.

2.2.3. Challenges in Distributed Software Development:

Software development itself is very challenging and many software projects fail to fulfill customers’ quality expectation or fail to deliver the software within budget and on schedule (Jalote, 2002). As per Jalote (2002), major reasons for projects out of control are unclear objectives, inability to deal with changing requirements, bad planning, new technology, and lack of project management methodology, insufficient resources, and poor software quality. In addition Kruchten (2000) also mentions unacceptable software performance where team members are in each other's way – making it impossible to reconstruct who changed what, when where and why. DSDs have imposed additional problems, which will be discussed in detail in this section.

Globalization is becoming more and more prevalent among software companies. According to (Mockus et al., 2001), “in year 2000, 185 of Fortune 500 companies outsourced software development to India alone and the amount of outsourcing grew at a 53% yearly rate according to report by the National Association of Software and Service Companies (NASSCOM)”. Apart from the benefits that the global software development provides as discussed above, it has brought up a number of challenges, such as: geographical dispersion, loss of communication richness, breakdown of traditional control and co-ordination, culture differences, loss of teamness and time zone difference. (Vanzin et al., 2005, Carmel, 1999 and Battin et al., 2001). Each of these problems is discussed below.

Geographical Dispersion:

Geographic dispersion means to divide the functional part or department of an organization into varied teams and locate them across the globe so that there is some physical distance amongst the teams. Tom Allen(1977) is his creative study validated that managing such dispersed teams is far difficult than co-

(15)

located teams. Allen (1977), in his study found that communication drops precipitously when engineers' offices are more than 25 meters from one another.

Collocation is comparatively simple than geographical dispersion because of physical proximity like having near access to others by walking distance in same building or in the adjacent building. Therefore, it is very easy for managers to keep eyes on tasks either by observation or MBWA (Management by Walking Around) (Lister et al., 1987)

Rafii (1995) summarizes the advantages of co-location for product development (such as software development). Co-location increases trust and reduce miscommunication and therefore less likely to squabble. It also reduces project costs primarily because fewer organization support services are needed to support. Additional time is wasted coordinating meetings between the teams.

However, co-location also poses disadvantages like there is no proximity to the customer which leads to misunderstanding of business requirements (Rafii, 1995), informal oral communication leads to poor documentation quality (Carmel, 1999), co-location leads to group thinking while distributed teams foster independent thinking and initiative and a more competitive atmosphere is built up. Carmel (1999), Vanzin et al (2005) and Carmel et al. (2001), have mentioned many factors due to which collocation is less feasible in the present era comparatively to geographically dispersed organizations, like cost advantage, large labor pool, close to important customers etc.

On other hand geographical dispersion has also brought some challenges which complicated the situation of product development like coordination, control, culture differences, language barriers and communication problems (Carmel et al., 2001 and Duarte et al,, 2001). Effective use of communication and collaboration technologies can also help to reduce the challenges faced by organizations due to geographical dispersion (Duarte et al., 2001).

Loss of Communication Richness:

As discussed above Tom Allen(1977) found that communication drops precipitously when engineers' offices are more than 25 meters from one another. Communicating effectively becomes more challenging due to geographical dispersion and effective communication can play vital role in the success of a dispersed software project (Carmel et al., 2001). For example a small issue can take days of back-and-forth discussions over e-mail to resolve, but a brief conversation (over phone or face-to-face) can quickly clarify the problem before it becomes bigger (Carmel and Agarwal, 2001). In DSD, stakeholders from different national and organizational cultures and time zones are involved in developing software, and tasks at various stages of the SDLC may be separated and implemented at different geographic locations coordinated through the use of information and communication technologies (Sahay, 2003).

Rich communication is defined as two-way interaction involving more than one sensory channel (Trevino et al., 1987). This conveys us that common media like telephone and email are not communication rich though we refrain from calling them poor. The best rich media is face-to-face meetings which convey the message appropriately. Only some of the message is strictly in the explicit text while 80% of the message is nonverbal and implicit which includes body language such as gestures, facial expressions, postures, emotions etc. Different cultures are involved when the teams are dispersed geographically. Non-verbal communication is important when members from different cultures communicate. Especially at the requirements gathering stage, face-to-face meetings are the best chosen channel for communication. While designing and intensive problem solving, managers can use other rich communication media like video conferencing or audio conferencing. During the implementation stage email, phone calls, or conferencing should suffice the purpose.

(16)

Vanzin et al. (2005) have shown a direct relation of geographical distance between units of an organization and the technology used for communication. This means that the success of geographical dispersed units is directly dependent on the communication media used and coordination between them which helps in communication a lot. Further, communication becomes more important when the project picture is not clear and needs more discussion (Herbsleb et al., 2001). In addition four categories of communication and interaction have been mentioned in (Duarte et al., 2001):

 Same time, same place like face-to-face meetings.

 Same time, different place like video or audio conference.

 Different time, same place like chat room or shared a file on network, net meetings

 Different time, different place like email or voice mail.

According to (Tihinen et al., 2005), 88% of single site software projects have face-to-face meetings when team members communicate with one another, which reduced up to 4% during distributed teams. This means that face-to-face communication is one of the best ways of communication but geographical dispersion lacks it.

Culture Differences:

If teams are dispersed geographically, different countries are involved in the software development and culture varies in all countries. Culture can be seen in various forms like national culture – culture throughout the nation such as languages, ethics, different religions etc. ; organizational culture- which includes norms, management styles, rewards and recognition, communication styles across the organization; professional cultures – which is ingrained through formal education and trainings; functional culture – way a specific department in an organization works; team culture – which emerges from bonding through common work experiences. Due to these varied forms of culture, people have different style of communication; different response times, attitudes are different, various ways of commitment, thinking and problem solving and hence close co-operation among different individuals from different cultures is required (Herbsleb et al., 2001). In short, culture diversity encompasses norms of behavior, values and language (Fenema, 2002).

Many researchers have found culture difference as a challenging issue (Herbsleb et al., 2001, Vanzin et al., 2005, Carmel, 1999, Battin, 2001, Smith et al., 2002), which should be considered and cannot be neglected in DSD because it can cause serious and chronic misunderstanding, which in turn will lead to unexpected results of a project. According to Tihinen et al. (2005), 52% of the respondents have mentioned culture difference as a problematic issue. Another study (Vanzin et al., 2005), has mentioned that culture differences have 33% negative impact on project activities. These different studies, in different ways, stress the point for researchers as well as practitioners that as in DSD numerous members from different nationalities and backgrounds are involved therefore, there is a need to take the issues of culture seriously whether it is national or organizational. Furthermore, according to Nicholson and Sahay (2004), culture issues can “make or break an offshore project”. Culture differences can create problems of misinterpretations or misunderstanding, for example – reporting a particular problem was interpreted as an insult in some organization while it was accepted and encouraged at the other firm (Tihinen et al., 2005).

Sense of time and commitment may also vary between different countries and continents, which are considered to be the key players in project’s success and failure (Vanzin et al., 2005).

Coordination Breakdown:

Coordination is the act of integrating each task and organizational unit so that it contributes to the overall objective. Hence, close coordination and collaboration is essential for reaching on consensus about specific problems occurring during the development of the product. According to Lister et al. (1987), developers spend 70% of their time working with others and 40% of their time waiting for resources or doing other work. When the team members are co-located they can just hop into the cubicle and ask for help and get the work done.

(17)

Distributed teams creates burden on coordination mechanisms like people cannot coordinate by peeking around the cubicle wall, or with the time zone differences, no longer a quick phone call can resolve the issue or assist in the work which is stuck up. Coordination amongst the team members is heavily needed in a distributed software team environment and hence need of rich communication media and channels arise more. When there is interdependence of work in the teams then the need for coordination increases (Thompson, 1967). In distributed teams who work around-the-clock, the need of coordination arises because there is lot of interdependence on the task. Lot of time is wasted in coordinating meetings across the teams where formal interaction takes place between the members. Distributed teams lack the informal way of interaction. Formal and informal way of interaction between the team members help alleviate coordination breakdown.

Loss of Teamness:

A good team encompasses a lot of benefits to an organization. It creates synergistic ideas and innovations; it is better at objectively evaluating ideas and finding mistakes; it provides greater access to expertise and experience; it enhances motivation and commitment to the task; it has greater access to information; and it is a very flexible unit of work (Phillips, 1994). According to Carmel (1999), a team has certain characteristics and defines that real team - is perceived to be a team by its members; is recognized as a team by non- members; has collective responsibility for its products; shares responsibility for managing its work; has a common goal or set of tasks; works together on tasks that are interdependent; demands peak performance from all members; shares its rewards; is small in number of members.

As discussed above, a software development team consists of several members like business analysts, designers, developers, testers. A team can effectively work if it is co-located because of the characteristics mentioned above. But distributed teams face lot of hurdles in their work. They require more time to get consensus to implement solutions due to cultural differences, miscommunication etc. So there is diversity in teams. There is loss of cohesion in distributed teams. That means the team members are not jelled up properly as per the definition of cohesiveness provided by Lister et al. (1987). Due to loss of cohesion, productivity of the team reduces and there is no enhanced motivation or increased morale in the team. Also building trust takes time when the teams are distributed. Due to these several issues the teamness is lost in distributed teams. Therefore, it is a challenging task for managers involved in global projects to create and maintain teams which are working in such a volatile and complicated environment (Vanzin et al., 2005, Smith et al., 2002, Duarte et al., 2001).

Time Zone Difference:

Time zone is a challenging issue and has negative impacts on DSD activities (Conchuir, 2006).

Furthermore, organizations working in large time zones face more problems than organizations working in fewer time zones like arranging meeting time between units because the selected time may be suitable for one unit and problematic for other unit. So, most of the time is wasted in coordinating meetings. Likewise (Paulish et al., 2005), due to different time zones, one cannot immediately ask for help or interact with another team to solve an urgent problem. Additionally, some inconsistencies may arise when different units use different processes, policies and so on, therefore, in this case intense interaction is needed which is a bit harder in having larger differences in time zones.

Apart from the negative impacts that time zone has; organizations can benefit in getting the work done faster by making people work round-the-clock as discussed in the reasons for distributed development section. Asynchronous communications like email is best in such time zone differences but it is not a richer communication media. Dialog between the team members does not happen since one cannot use a phone when the other party is not awake for receiving the call. If the whole work is planned properly and goes as per schedule then time zone difference is not a big issue.

(18)

2.3. Centrifugal and Centripetal Forces Model (CCF).

The study presented in this dissertation uses the novel ''Centripetal and Centrifugal Forces'' (CCF) model developed by Carmel (1999, p. 82) in the context of global new product development projects, to give an appropriate solution to the problems faced in DSD. As per the CCF model (figure-5), various types of forces exist in teams in distributed environment and they can be characterized as either centrifugal or as centripetal. The centrifugal forces are the challenges faced in DSD and centripetal forces are the possible solution to overcome the challenges which is the main intent of the study. So this study uses this models’

centripetal forces as a supplement to the KM practices to give an effective and efficient solution to overcome the problems in DSD.

Centrifugal Forces Centripetal Forces

Figure 5: Centrifugal Forces & Centripetal Forces. (Carmel 1999, p. 39 & 82 )

Centrifugal Forces: Carmel (1999) defines centrifugal force as a ‘‘force that propels things outwards from the center as it disperses developers to the far corners of the world.’’ Centrifugal forces are the problems that pull a team apart and therefore inhibit its performance. Like the separation between business analysts and designer or developers becomes so much that intense communication and collaboration drops which affects the overall performance of the project. And also these centrifugal forces are basically the challenges faced in DSD which are described in detail in section 2.2.3. The five centrifugal forces are:

 Cultural differences;

 Geographic dispersion;

 Loss of communication richness;

 Coordination breakdown;

 Loss of teamness.

Centripetal Forces: Carmel (1999) describes centripetal forces as those forces that pull the team together, making the team more effective. Distributed software teams need to create centripetal forces in order to counter the centrifugal forces. Besides, these forces are the solutions to centrifugal forces which are the problems faced in DSD. The Six centripetal forces are:

 Telecomm infrastructure: Carmel (1999) makes an analogy of Telecom Infrastructure to that of a house saying it is a foundation on which all rests. Due to intense need of communication and coordination in distributed teams, the teams need reliable, high speed connection for all forms of data

(19)

transfer. Telephones, private internal network which uses leased line or wireless network connections with high bandwidths or Virtual Private network (VPN) which connects dispersed offices through internet (where every office is connected to internet via its local Internet Service Provider) are the main blocks which should be considered while building up a telecom infrastructure.

 Collaborative technology: Geographic dispersion, coordination breakdown and communication losses can be counterbalanced by having abundance electronic communication between the teams which is possible by good collaboration technologies. Collaborative technologies such as email, groupware platforms promise to collapse distance and bring closer the colleagues which are far away (Carmel, 1999). Email, audio conferencing, video conferencing and group ware platforms are the main tools used for communication. Specialized Collaborative technology tools like software configuration management or project management tools are used to support software engineering process.

 Development methodology: Carmel(1999) talks about methodology as a systematic approach to conducting at least one complete phase (e.g., design) of software production, consisting of a set of guidelines, activities, techniques, and tools, based on a particular philosophy of system development and the target system. Use of a development methodology imposes a rigor on the software team and demands greater discipline than many software companies have become accustomed to. Carmel (1999) suggests that, projects in which there is a need of dispersed teams should use a development methodology since it gives all team members a common language of tasks and activities, terms and milestones are understood. All developers come to know where their place is in the bigger picture. And also, coordination activities are reduced since the process is understood and agreed upon by all the members and conversations are then focused only on the problem domain.

 Product Architecture: As per Carmel (1999), Product architecture determines whether dispersed teams can work harmoniously with each other. Clements et al. (1997) defines software architecture of a computing system as the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them. This architecture is based on the principle of modularity in which one designs software components that are self contained and have few interdependencies with other modules which are developed by dispersed sites. By creating a minimum of interdependence between the sites, coordination overhead is reduced (Bradlep et al., 1997). After modules are formed, tasks are allocated to the teams. Meadow (1996) has mentioned mainly three types of task allocation strategies:

o Module-based allocation: Assign modules to each site and these sites work independently on those modules from start to end and then integrate the work.

o Phase based allocation: This strategy is based on standard phases or stages of software development like analysis, design, implement and test. In this strategy, one site performs the first phase (analysis) and the other site performs the next phase (design) and so on.

o Integrated allocation: This strategy is seen where (dispersed) sites work close together, both across modules and across the development cycle. For distributed teams, this phase is known as around-the-clock as discussed in section 2.2.1

 Managerial techniques: According to Carmel (1999), distributed teams requires motivated and responsible project management committee for the management of different activities related to the project and must also be able to overcome the unique problem of distributed teams: culture, time zone and distance. Several techniques are provided by Carmel (1999) which are primarily in the realm of team management and are unique to dispersion and collaboration.

o Team Structure: needs to be redesigned. As per Carmel (1999), a formal team structure provides the flexible foundation for efficient modular work, effective communication and clear decision making. The team structure needs to be based on several design principles. First, a balance need to be maintained between centralized (like collocated) and decentralized

(20)

(distributed) structure. Second, some essential centralized roles are preserved such as architecture, planning, budget and standard setting. Third, hierarchy in the team is not discarded entirely: some internal decision-making hierarchy needs to remain: in the roles of project manager, team leads and so forth. Fourth, the structure facilitates the all-important inter-team communication. Finally this structure allows the individual functions (roles) or the committee functions (project management, technical, processes) to be collapsed if necessary.

o Conflict Management: As per Carmel (1999), groundwork needs to be set for future inevitable conflicts. Humphrey (1997) suggests a three step process for handling inter-site disputes. First try to resolve the dispute between the team leads without involving the other team members.

Have the team between each sites air the various issues. Second, if the dispute remains unresolved, informally explore the respective positions separately and then bring the team leads together to discuss the dispute resolution process. The project manager can make media choices for the first two steps: audio/video conferencing or best can consider air travel as an alternative.

The third step in handling inter-site disputes is to bring in an expert third party to resolve the dispute.

o Measuring & Benchmarking: Apart from the fundamental techniques of project management, the global software managers should measure the unique dimensions of the distributed teams which include use of collaborative technologies, meetings and face-time, site handoff efficiency, issue management, and some specific items like telecommunications, travel and labor.

o Rewards, Recognition and Compensation Norms appropriate in one culture and business climate will not be appropriate elsewhere and need to be careful about the gifts and bonuses.

o MERIT: Carmel (1999) states that a global software manager needs to have five unique qualities to become successful. The five unique-qualities are summarized into an acronym MERIT (Multiculturalists, E- Facilitator, Recognition promoter, Internationalist, Traveler).

 Team Building: According to Carmel (1999), real teams cannot be built only by providing communication tools and installing advance technologies but major attention needs to be paid towards building a sense of trust, personal bridges (relationships) so that members can easily communicate, coordinate and collaborate.

o Building trust: Face to face ties foster trust by creating enduring personal relationships. Carmel (1999) suggests to facilitate opportunities for face-to-face encounters, encourage travel, build swift trust (colleagues respect others’ professional credentials and everyone’s professional reputations and qualifications are well recognized across the team sites), also first face-to face and electronic communications make an important first expression, begin a project with a kick off meeting (project launch meeting which builds trust, team spirit, addresses some of the cultural differences and also accelerates communication at the outset). Key components in a kick off meeting include vision, methodological framework, communication protocols, cultural training and social bonding (Carmel, 1999). Also celebrating achievements, milestones, successes, end of projects etc. can cement the bonding between members and motivate, excite members to work for the next phase.

o Communication: Formalize the communication which used to be informal and also encourage more informal communication. Encourage lateral communication (between colleagues). Through communication, transparency needs to be maintained between team sites and team members.

Communication protocols need to be instilled which include communication responsiveness (e.g.

responding at least in short each and every email), frequency (e.g. fixed weekly status meeting), time zone awareness (at any point of time one should know what time it is at the other team site, and if possible, establishing regular overlap windows for synchronous communication for audio and video conferencing) and establishing support mechanisms for communication problems and breakdowns (Johansen et al., 1994).

o Build Personal bridges between the sites: Personal relationships-are the glue that hold distant sites together. They serve as a bridge between the cultures of the various sites, as well as the

References

Related documents

Inom ramen för uppdraget att utforma ett utvärderingsupplägg har Tillväxtanalys också gett HUI Research i uppdrag att genomföra en kartläggning av vilka

The increasing availability of data and attention to services has increased the understanding of the contribution of services to innovation and productivity in

Syftet eller förväntan med denna rapport är inte heller att kunna ”mäta” effekter kvantita- tivt, utan att med huvudsakligt fokus på output och resultat i eller från

Generella styrmedel kan ha varit mindre verksamma än man har trott De generella styrmedlen, till skillnad från de specifika styrmedlen, har kommit att användas i större

I regleringsbrevet för 2014 uppdrog Regeringen åt Tillväxtanalys att ”föreslå mätmetoder och indikatorer som kan användas vid utvärdering av de samhällsekonomiska effekterna av

Parallellmarknader innebär dock inte en drivkraft för en grön omställning Ökad andel direktförsäljning räddar många lokala producenter och kan tyckas utgöra en drivkraft

Närmare 90 procent av de statliga medlen (intäkter och utgifter) för näringslivets klimatomställning går till generella styrmedel, det vill säga styrmedel som påverkar

• Utbildningsnivåerna i Sveriges FA-regioner varierar kraftigt. I Stockholm har 46 procent av de sysselsatta eftergymnasial utbildning, medan samma andel i Dorotea endast