Assigning tasks in a 24-h software development model

https://doi.org/10.1016/j.jss.2005.06.040Get rights and content

Abstract

With the advent of globalization and the Internet, the concept of global software development is gaining ground. The global development model opens up the possibility of 24-h software development by effectively utilizing the time zone differences. To harness the potential of the 24-h software development model for reducing the overall development time, a key issue is the allocation of project tasks to the resources in the distributed team. In this paper, we examine this issue of task allocation in order to minimize the completion time of a project. We discuss a model for distributed team across time zones and propose a task allocation algorithm for the same. We apply the approach on tasks of a few synthetic projects and two real projects and show that there is a potential to reduce the project duration as well as improve the resource utilization through 24-h development.

Introduction

With the advent of globalization, many companies have started expanding their presence round the world, which has resulted in a single organization with multiple geographically distributed development centers (DCs). With the evolution of internet and other technologies like instant messaging, and audio and video conferencing, communication among these DCs has become better and cheaper.

Most software organizations have DCs in different regions of the world largely for business and manpower related reasons. This idea of having DCs globally has evolved mostly due to factors like cost advantage, availability of resources or human capital, and proximity to local market and conditions. Consequently, most current uses of DCs revolve around achieving the business benefit for which DCs are started. For example, one common use of multiple DCs is to assign different projects or development of different products to the various DCs. The main benefit of the DCs in this approach is that a higher volume of work can be done. That is, the DCs are primarily a source of manpower—the fact that they are located in different time zones is purely incidental.

Sometimes multiple DCs are involved in developing one product. The common model used here is to partition the product into relatively independent components and have the different DCs independently develop the various components. In this approach also DCs are primarily a source of manpower and there is no other benefit of having the DCs in different time zones.

Though current approaches use the DCs primarily to enhance manpower, having DCs globally distributed brings the possibility of a 24-h development model where the different time-zones of different locations can be leveraged to reduce the total development time of a project, through daily hand offs of work (Herbsleb and Moitra, 2001). For leveraging the geographical spread of the DCs to reduce the overall time for a project requires proper development approaches.

One example of effective leveraging of the potential of 24-h work day is in software maintenance. There are many instances of products being supported in India where the customer in USA logs a complaint at the end of the day and finds the complaint resolved next morning—the resolution takes place in India when it is night in USA. If the defect fixing team was also in the same time zone as the team that finds the defect, it would generally take one additional day for the user to get the software fixed. (We are assuming that fixing takes 1 day.) That is, by leveraging the DCs in two opposite time zones, problem logging and resolution cycle for the user reduces from 2 working days to 1 working day.

However, not much work has been done in leveraging the power of 24-h work day for reducing the cycle time of a development project. Clearly, leveraging teams that are spread across time zones will complicate task scheduling and project management. A global software development effort makes a project multi-site and multi-cultural, and introduces a new set of communication, technical, managerial, and coordination challenges (Carmel, 1999, Herbsleb and Moitra, 2001), which can have a negative effect on the project effort and schedule (Herbsleb and Grinter, 1999, Herbsleb et al., 2001, Mockus and Weiss, 2001). Many suggestions have been made to mitigate the problems due to communication difficulties (Carmel, 1999, Carmel and Agarwal, 2001, Herbsleb and Grinter, 1999). Tool support has also been suggested to alleviate some of the problems (Ebert and De Neve, 2001).

Even if communication and coordination difficulties can be solved satisfactorily through suitable tools and technologies, can distributed software development provide benefits, and if so, to what extent? In this paper we address this question of what potential benefits can global software development bring in reducing the project execution time. An understanding of potential benefits can help evaluate whether the benefits are worth the cost of such systems.

One approach to leveraging distributed teams for reducing the cycle time is to use the Timeboxing process model (Jalote et al., 2004a, Jalote et al., 2004b). The Timeboxing approach is an iterative development approach which leverages the DCs by dividing each iteration into different stages and having different groups execute the different stages in a pipelined manner. Substantial reduction in delivery time is possible after the first few iterations. Though this approach leverages the different teams provided by the DCs, it does not utilize the 24-h framework for reducing the schedule.

In this work we focus on how having groups in different time zones can be leveraged to build a 24-h software factory that can reduce the completion time of a project as work is being done round-the-clock.

We consider a 24-h software factory model, where multiple teams that are geographically distributed across different time zones work on the same project. Intuitively, since this model supports a 24-h operation, it should be possible to reduce the development time. However, the potential of improvement is heavily dependent upon the degree of inter-dependency between project tasks and nature of their various constraints. For example, if the tasks have fewer dependencies between them, then the development time depends primarily on the number of resources available, so a multi-site team provides no extra benefit over a single-site team of the same size. Clearly, to maximize the reduction in completion time through the 24-h model, task assignment needs to be done carefully, so that the project can be completed in minimum execution time while satisfying all the constraints.

In this paper, we first present our model for 24-h development and then present a task scheduling algorithm. The algorithm takes the task model for a project and the set of available resources as input and produces a task-schedule with minimal schedule length. We then apply the approach to the task graphs of a few synthetically generated projects, and the task graphs of two real projects. We show that not only there is a substantial reduction in the completion time of a project, there is an improvement in resource utilization as well.

For scheduling, the two main inputs are the project tasks and the available resources for executing the tasks. We present the project execution model that we assume in the next section and the resource model in Section 3. Then we present our task scheduling approach in Section 4, and discuss some properties of this 24-h development model in Section 5. Section 6 gives some experimental evaluation of the approach, which is followed by conclusions.

Section snippets

Project execution model

We view a software project as a set of activities or tasks. A task is the smallest unit of work with a well defined functionality and external interface with other tasks. For example, a task could be developing a software module, writing a technical document, testing a piece of code or any other effort in the process of software development. A task is characterized by the total effort it needs (we assume that this is in person days). We also assume that the assignable tasks are such that they

Resource model

We assume that a 24 h day is divided into three 8-h time slots, with a different resource-set for each time slot. A resource-set comprises a set of individual resources {r1, r2,  , rn}. Each resource (i.e., a person) has a set of skills associated with it which represents the skills that person has. The available resources can be modeled as a resource-table, in which each resource is identified by a number, the resource-set it belongs to, the skills it has, and its working period, are specified.

Task scheduling

Our task schedule algorithm is a heuristic based on the critical path method. It takes a task graph and a resource-table as input and generates a project schedule for the given project. The approach is to follow the critical path of the task graph for scheduling. During scheduling, a task with a higher weight will get the priority if other conditions are satisfied. The selection of a node having the highest weight from the ready to execute nodes will ensure that the critical path of a project

Properties

The scheduling approach aims to achieve performance gain by leveraging the different time slots to increase utilization of a 24-h day. The following discussion shows how distributed resource-sets can reduce the total schedule length if they work across different time zones instead of working in same time slot. These properties are more due to the nature of the problem and the scheduling approach has little impact on them.

Property A

For any Task Graph T, the length of the schedule with resource-sets

Experimental evaluation

In order to evaluate the effectiveness of the task scheduling algorithm, we did a few experiments. We generated about 100 task graphs randomly, with the number of tasks between 5 and 100. The time attribute of each task is uniformly distributed over the range of 1–20 time units. The number of tasks that have been assigned a skill or resource constraints varies from the 10% to 70% of the total number of task present in the task graph. The whole set of task graphs is tested for three different

Conclusions

The 24-h global development model is the approach where a distributed team works in different time zones to establish a 24-h work flow in a single project. In this paper we discuss the issue of scheduling of tasks to resources for reducing the overall execution time of a project.

We consider a 24-h development model which consists of three teams working in three different 8-h time slots. A software project is viewed as a set of activities or tasks. The project tasks have various constraints for

Pankaj Jalote is Professor in the Department of Computer Science and Engineering at the Indian Institute of Technology Kanpur, India. He did his B.Tech. from IIT Kanpur, MS from Pennsylvania State University, and Ph.D. from University of Illinois at Urbana-Champaign. From 1985 to 1989 he was an Assistant Professor at University of Maryland at college Park. Since 1989 he is at IIT Kanpur, where he was also the Head of the CSE Department from 1998 to 2002. From 1996 to 1998, he was Vice President

References (15)

  • P. Jalote

    Timeboxing: a process model for iterative software development

    Journal of Systems and Software

    (2004)
  • I. Ahmad et al.

    Static scheduling algorithms for allocating directed task graphs to multiprocessors

    ACM Computing Survey

    (1999)
  • E. Carmel

    Global Software teams: collaborating across borders and time zones

    (1999)
  • E. Carmel et al.

    Tactical approaches for alleviating distance in global software development

    IEEE Software

    (2001)
  • C. Ebert et al.

    Surviving global software development

    IEEE Software

    (2001)
  • J.D. Herbsleb

    An empirical study of global software development: distance and speed

    International Conference on Software Engineering

    (2001)
  • J.D. Herbsleb et al.

    Splitting the organization and Integrating the Code: Conway’s Law Revisited

    International Conference on Software Engineering

    (1999)
There are more references available in the full text version of this article.

Cited by (32)

  • Key factors that influence task allocation in global software development

    2017, Information and Software Technology
    Citation Excerpt :

    Task dependency is another key criterion for work distribution decisions in globally distributed projects, mentioned in more than 42% of the articles. Jalote et al. [16] argue that it can increase the overall development time and also limit the benefits of having multiple sites/resources. For example, a group is unable to start the next task until the previous one is finished, consequently, resources in other groups may be wasted.

  • Studying Task Processes for Improving Programmer Productivity

    2021, IEEE Transactions on Software Engineering
  • Framework for Reusable Test Case Generation in Software Systems Testing

    2021, Research Anthology on Agile Software, Software Development, and Testing
  • Software Testing Under Agile, Scrum, and DevOps

    2021, Research Anthology on Agile Software, Software Development, and Testing
  • Software testing under Agile, Scrum, and DevOps

    2020, Agile Scrum Implementation and Its Long-Term Impact on Organizations
View all citing articles on Scopus

Pankaj Jalote is Professor in the Department of Computer Science and Engineering at the Indian Institute of Technology Kanpur, India. He did his B.Tech. from IIT Kanpur, MS from Pennsylvania State University, and Ph.D. from University of Illinois at Urbana-Champaign. From 1985 to 1989 he was an Assistant Professor at University of Maryland at college Park. Since 1989 he is at IIT Kanpur, where he was also the Head of the CSE Department from 1998 to 2002. From 1996 to 1998, he was Vice President (quality) at Infosys Technologies Ltd., a large Bangalore-based software house, and 2003–2004 was a Visiting Researcher at Microsoft Corporation, Redmond, USA. He is the author of four books including the highly acclaimed CMM in Practice, which has been translated in Chinese, Japanese, Korean, etc., and the best selling text book An Integrated Approach to Software Engineering. His main area of interest is Software Engineering. He is on the board of IEEE Transactions on Software Engineering and is a Fellow of the IEEE.

Gaurav Jain is a Senior Software Engineer in Wireless Services Group of Flextronics Software Systems. Gourav received his M.Tech. degree in Computer Science and Engineering. from Indian Institute of Technology, Kanpur in 2002. He has worked on various software development projects in networking protocols and secure network domain. He has one patent pending in the area of firewall security system.

View full text