A COMPARATIVE STUDY OF COLLOCATED AND DISTRIBUTED AGILE SOFTWARE DEVELOPMENT

Agile methodologies are employed by organizations in order to ensure quick delivery of the final software product and to ensure smooth communication and coordination between the various project development teams and all the stakeholders involved. One of the major principles of the agile methodology is that all the teams and stakeholders involved should work at the same geographical location in order to have coordination amongst the various teams and also to ensure quick delivery of the software product. With the advent of globalization many of the firms have started expanding their operations throughout the world in order to increase their market both qualitatively and quantitatively. Hence software development has also become distributed in order to attain high levels of quality and productivity and decrease the costs at the same time. This paper compares both the methodologies and discusses the benefits and drawbacks of each method

The Agile SDLC model is a mixture of both incremental and iterative models having high concentration on adaptability of the process and satisfaction of the customers. Agile model does not have a fixed mechanism for all the projects.In agile every project is treated differently and the existing methods are tailored to fit the requirements of each individual projects. The iterative approach is followed and the software is built with certain features for every release. The final release is a fully functional working software productwhich will satisfy all the requirements specified by the customer.Some of the most commonly used agile software development methodologies are Scrum, XP (Extreme Programming), Agile Modelling and Adaptive Software Development. A critical factor in software development is how the teams are distributed.Collocated teams have their own share of advantages like smooth communication, trust amongst peers, an interactive environment, coordination and teamwork but at the same time can be let down due to continuous interruptions in communication, lack of privacy and flexibility at work and decrease in the potential quality of employees. Distributed teams are comparatively cheaper, they provide more flexibility to employees and offer a better talent pool, but communication in a consistent and reliable manner poses a problem. A clear lack of coordination is visible in the distributed agile development. This paper compares the effect of employing collocated and distributed teams in an agile software development life cycle.A survey was conducted in organizations which have employed both the methodologies, to try to find out which method works best in which case.

ISSN: 2320-5407
Int. J. Adv. Res. 4(10), 1142-1148 1143 Background knowledge:-Collocated Agile:-Interacting with customers is the backbone of Agile and the teams work in close partnership with each other, mostly being located in the same geographical region. This is known as co-location. Therefore collocation can be defined as the physical vicinity of all the teams, persons and stakeholders involved in the development of a project.Radical collocation is a plan that puts the whole project team along with the stake holders in a single room for the entire length of the project. The room is known as the "team room". This methodology is adopted in order to reduce the wastage of time for communication and to reduce the communication gaps caused by distributed environments. Agile methodology is one area where the advantages of collocation is clearly visible. Agile Collocation is a way to get all the important stakeholders together in a single location.This tends to fasten the defect resolution mechanism.An agile collocation center cannot operate if there is no smooth communication and trust in the relationships. The testing team will also have direct access to all the stakeholders involved such as project and business executives etc. Higher representation would be from the testing community to ensure high levels of throughput and a limited population from the component development community,solution design team, environment support, business representation etc. Also, this is imperative, because success on an Agile testing project is most often derived by test-driven development and delivery management. The location is zeroed in by analyzing the costs and then deciding where the maximum benefit is obtained. [9] Distributed Agile:-Software is now a global and ever expanding market. Majority of the organizations are now expanding worldwide and distributing their software development processes over many centers in order to achieve higher efficiency, productivity, excellence and also to reduce operational costs. This has changed the way software is being developed designed and tested and also in the way the final product is delivered to the costumers. Agile and distributed software developments are being employed rapidly as the requirement for building a quality product quickly at a cheaper price has increased. There are two methods, onshore where all development happens at different places in the country and offshore where some specific tasks are carried out abroad. Generally while employing the agile method it is assumed that the teams have to work closely in the same geographical location, but it is not possible in the real world where agile teams are also being distributed. As organizations are expanding to newer markets, hiring exceptionally talented employees and using outsourcing mechanisms to use regions with cheaper development costs it is not a feasible idea to get everyone under one roof in the same geographical location. Hence many companies opt for the distributed agile model of development Comparative analysis of collocated and distributed agile teams:-Benefits of Collocated Agile:-Many industries employ collocated teams for agile software development for a plethora of reasons. Some of the key aspects which makes collocated teams in agile software development successful are  Continuous Communication:Continuous communication between all the members of a team with a common goal to succeed and finish the project on time. Sharing a common workplace makes it easier to share thoughts ideas and views amongst each other and arrive at a universally accepted decision thereby preventing confusions and rework. This in turn leads to better decision making.  Positive Work Environment:Collocation also creates an environment filled with trust and respect for peers because people working together at the same location know each other very well. This helps in effective communication between people of various departments. People from the testing department can interact with people from the development department and develop test plans and various testing strategies as they are going to have complete knowledge of the product being developed right from the initial stages etc.  Faster Decision Making:Since the teams sit together at a commonplace the delays in arriving at a solution are completely eliminated as they can discuss face to face instead of forwarding a particular problem to the concerned department and then waiting for a response which increases delays. So the teams arrive at decisions comparatively faster.  Reduced Overhead Costs:The costs involved are also drastically reduced as there is no need for infrastructure required for communication such as telephone channels, equipment to facilitate video conferencing, building data centers etc. The need for all these costs is eliminated in agile collocation.  Easier Team Management:Also for the managers and the officials at the top, it is more convenient and easier to supervise, communicate and manage a collocated team rather than managing teams spread out through various locations i.e. distributed teams. 1144

Benefits of Distributed Agile:-
We've discussed about collocation and we can infer that collocation is productive. But is collocation so much necessary that we cannot do without it? It is also possible to manage distributed agile teams in an effective manner with the teams having their equal share of benefits.
[8]  Learning to Communicate Effectively:The problem with collocation is that it is nearly impossible in today's world to maintain all employees and their operations in a single location. Collocation can be overrated in this regard as effective communication between teams is possible even when working with agile teams in distributed areas. In today's rapidly changing world it is possible to work in different offices with different employees easily irrespective of the fact that they meet each other. Also many people prefer using emails and other messaging services to actual conversations as they need space and time to focus and don't want to be interrupted periodically. Frequent interruptions hamper the ability to think creatively. Any work when constantly interrupted is not fruitful and the results are often counterproductive. Communication need not be carried out only in person. Various methods of communication can be adopted. Teams can communicate using a secure internet connection or communicate via secured lines. An overhead investment must be done in regard to communication to install proper and secure communication equipment.  Flexibility at Work:Flexibility is one aspect which the collocated agile model clearly lacks. Since it functions in the same area for a fixed time period there's almost zero flexibility. Considering a situation where the work to be done in a single day is not yet finished, in the collocated model there is no scope to complete the work even if it is of high priority as everyone will be entering and leaving the same office at predefined timings. However when employing distributive agile teams the work can be assigned to a different location in some other part of the world as they would be functioning at different timings. The work flow is more flexible in a distributive environment as compared to the traditional collocated  Increase in Quality and Potential of Hiring:Skilled, Qualified and experienced software engineers are difficult to hire and retain. When the talent pool is limited to one particular geographic area it is difficult to find talented and skilled people. It is also difficult to retain and restrict them to a particular geographic area in this rapidly changing world. Distributed engineers can work irrespective of the location and have more global exposure. The only requirement is a proper channel for communication. This prevents all the hassle and effort put in to move skilled employees to a particular geographical location. Therefore the business can employ engineers irrespective of the location based on their talent levels thereby increasing productivity.
[7]  Working Environment:Flexible working conditions is one thing that improve the satisfaction of employees.Distributed agile teams have the flexibility at work. They can work from home, work overtime based on the goals/targets to be achieved. As mentioned earlier they need not stick to a particular post for the whole lifetime of the project but can shift verticals based on their talents and interests.

Challenges of Distributed Agile:-
We have discussed some of the problems of collocation and how distributed teams help overcome the problem of collocation. However distributed teams have their fair share of drawbacks. Some of the challenges faced by distributed teams are: [6]  Difference in Timings:Differences in time zones and the working hours at various location which poses collaboration and coordination problems. The difference in the working hours makes it very hard for different teams to communicate with each other and stay coordinated.  Linguistic and Cultural Barriers: Differences in language and culture causes communication problems and might lead to confusion. As the projects teams are distributed globally a lack of uniformity in the language and culture might cause a communication gap and lead to confusion amongst the teams due to a lack of clear understanding. Since the collocated teams are from the same geographical location this does not pose a problem at all.  Software Availability:Availability of software tools might not be uniform as access is restricted to some countries and the technical know-how of such tools is also limited. Therefore it is a challenge for the top level management to employ a reliable and consistent tool for all the teams to work with. The employees at all the locations need to be trained to efficiently use the tools as well which involves a lot of investment. So organizations employ teams which have close proximity as it is easier to train and make use of a software when the teams are physically close.

1145
 Sharing of Resources:Sharing resources and files in a secure and hassle free manner also poses a problem as the files need to be shared over secure channels in order to ensure security of the data. Hence the resources need to be shared in a timely manner securely also while ensuring the consistency of the data.  Installing Proper Equipment:Installing proper, consistent and secure communication equipment also increases the overhead costs and is a difficult thing to maintain. So companies usually don't take the trouble of employing distributed teams in order to prevent high installation and maintenance costs and prefer collocated teams as the data can be kept secure and shared easily.
But majority of these problems can be solved by making minor organizational and functional changes. Communication can be facilitated by using teleconferencing and videoconferencing etc. Discussion forms, threads and wikis should be made use of to ensure smooth and hassle free communication. It is also preferable to use a simple, low-level, easy to understand vocabulary to facilitate easier understanding. A shared secured drive or relevant document management tools can be used to solve problems of file storage. A proper synchronization plan can be adopted to solve the problem of coordination amongst various teams. Each team can have an onsite coordinator who can coordinate with various onsite coordinators and can keep the various locations updated on important information.

Challenges of Collocated Agile:-
Collocated agile is not perfect by itself. It has its own shortcomings. Some of the challenges faced by collocated agile methodologies are inflexible work hours, lack of better talent, etc. It can be clearly observed that the challenges of collocated is what distributed agile methodology cashes upon. The distributed agile methodology works in such a way that it solves the shortcomings of collocated. Unlike distributed, collocated challenges cannot be solved by simply making minor organizational and functional adjustments as such changes would require the basic principle of collocation to be violated.

Methodology:-
In order to find out the impact of collocation and distribution, we formed a questionnaire and asked employees working of different software companies working in collocated and distributed agile software development teams to fill in their responses. From the responses received we formulated bar graphs and pie charts clearly illustrating the results and outcomes of both collocated agile and distributed agile.
Figure1 measures the impact of certain parameters and how it influences the agile development teams while working in collocated environments by showing the percentage of employees who agree or disagree with a certain parameter/criterion. The impact is measured on a scale ranging from strongly agree to strongly disagree with agree, disagree and neither agree nor disagree in between. Strongly agree signifies that the given criterion is true and impacts the effectiveness of the agile development teams whereas strongly disagree indicates that the given criterion is false and has a very meagre impact on the effectiveness of the agile development teams. Similarly Figure 2 denotes the impact of certain parameters and how it influences the agile development teams while working in distributed environments by showing the percentage of people who agree/disagree with a certain parameter or criterion. The impact is measured like in Figure1 on a scale of strongly agree to strongly disagree. [3] These illustrations help organizations identify which type of methodology to adopt when proceeding with a software project by taking into consideration the parameters and the effect of each of them on agile development teams. The organization can match these parameters with the present scenario or the plan of the project and weigh in the pros and cons and then decide to proceed with and optimal and beneficial approach.    Figure 3 shows how collocated and distributed agile methodologies stand out against each other in comparison to a generalized set of parameters. We took into consideration factors such as feedback, communication, goal, flexibility, performance targets, commitment, trust and team identity, role, ease of managing teams, fun filled work environment, individuality, resolution of problems and the overall quality. All these factors were submitted to various employees working in collocate and distributed agile teams and a rating was taken on a scale of 1 to 10. The mean of all these ratings was taken and bar graphs were plotted to see how these 2 methods stand out against each other. This helps organizations clearly weigh in on the advantages of one over the other and proceed with an optimal approach by taking into consideration the organizations' current scenarios and requirement.
[2] The overall preferred approach of employees is depicted in Figure 4. This pie chart presents the responses obtained from different employees as well as the levels of satisfaction of them. However this does not necessarily mean that one methodology is superior to the other. Each has its own advantages and disadvantages and it is up to the organization to analyze the situation, weigh in on the pros and cons and then decide upon whether to employ collocated teams or distributed teams in agile development.

Conclusion:-
The main aim of this research was to determine the impact of collocated teams and distributed teams on agile software development. The conclusions were drawn by taking into consideration a number of factors to determine and influence the effectiveness of teams. From the responses and data obtained, we have arrived at the following conclusions. Collocation has been found to have a positive impact on various factors such as smooth communication

Colocated Distributed
Any approach is fine Depends upon the scenario 1148 ,efficient sharing of knowledge, building a fun filled environment of team work and trust. Some of the negative aspects of collocation are worth taking into account. Collocated environments were found to be noisier and filled with large no of interruptions and less privacy. Also it was found from the responses of the employees that there was no definite specification of roles and jobs which decreases the individuality. Distributed Teams increase the role and individuality of people working in the project. Also, in distributed teams, there's a higher chanceof better skilled people working as it is not concentrated to a single geographical area.Distributed teams face problems in terms of cultural and linguistic barriers, time zones, lack of a team identity and communication. Also sharing of resources and installation of a reliable and secure communication equipment poses a major problem. Most of them have agreed that collocated approach is better and have a higher success rate comparatively.
Collocated teams according to them have the highest rate of success as the members of the team communicate face to face. Consumers also save a lot of time and effort from an agile collocation model as they can economize on communication costs and other delays involved in communication through quicker problem resolution mechanisms.
Although collocated might be the more favored one, we cannot definitively say that it is superior over the other method. Therefore while employing any model, organizations have to consider the resources in hand, the type of project they are working on, the stakeholders involved and considering the present scenario to decide upon a particular model.