Vous êtes sur la page 1sur 7

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.

ORG

160

A Novel Task Allocation Technique, Based on Developers Expertise


Junaid Tariq and Saif-ur-Rehman Khan
AbstractNo matter what type of product you are developing, it may be de composed into many small manageable pieces know as tasks in computer science field. However the management of these large numbers of tasks is very critical and complex, which if not managed properly, will delay the overall project. Ultimately it may exceed the planned project cost. Similarly task allocation is another crucial challenge that may divert your project from success to failure if not handled carefully and wisely. In this paper, we present an efficient way to manage tasks and their allocation based on the available expertise known as task-todeveloper (TTD) mapping. The case study result shows significant reduction in task management. Index Terms Developer Expertise, Task.

1 INTRODUCTION

he successful development of a product requires lots of efforts from different individuals working as a Team. Team is the basic building block of any software project [1]. The project is usually schedule, i.e., the project is divided into stages and then these stages are divided into tasks [18], [19]. A task is an activity that has to be completed within a specific period of time [2]. But as we breakdown the project into smaller sub tasks; their management and allocation to specific developer becomes crucial and challenging. Division of task into sub-tast must be done very carefully. Each sub-task must be referring to the bigger problem i.e. subproblem problem. It should also emphesis to handle such division in careful fashion to ensure the timely completion of the project under devlopment. This is because the more you divide the problem into smaller pieces, the more time you need for re-assembly purpose. The division of task into sub tasks must be done on the basis of its structure, so that when sub tasks are combine together, they must perform the activities of the original task [1], [3], [4]. Task allocation problem also exists in areas like web services, grid, distributed systems [5], and task allocation is applied to many other real world applications [12], [13].

Now we have to look at the resources we need to develop the smaller tasks. There are lots of resourses required for development purpose but we are limiting our discussion to only human resourse. Because the most important and expensive resource of any task development is manpower [22]. The developers must be utilized effectively so that they help us in completing our task efficiently. Task allocation system must utilize the resources in such a way that helps us in achieving our defined goal

[6]. However in case of software development it becomes more challenging as tasks depends on other tasks and sub tasks that may be executing at the same time [23]. Independent tasks needs to be done on priority basis so that those depended tasks can be started. Another problem is related to team diversity; as each development team may have multidiscipline members and have some area of expertise [24]. If you give a task to the developer who is expert in that area, he will do the work happily and will take less time. According to Eric Raymond, an expert programmer is 100 times more productive than a competent one [19], [20]. This will save you time and cost. Therefore before assigning task to the developer, one must keep in mind his/ her area of expertise. As we are considering budget and skills of developers, you can say we are dealing with both administrative & expertise coordination [1], [7]. We use a table that depicts all tasks and their main features (e.g., task duration, dependency, etc). Next we allocate these tasks based on the available expertise. Note that you may come across a situation in which a single task may be allocated to more than one developer. This happens when you have more developer for specific task, in such case you can further divide the task which will further reduce its overall time. In such way you can also have multiple solutions for a single problem as you have more than one expert in that area. In such case group achievement will be the individuals job performance [8]. The most important and confusing part of any project scheduling activity is time slot allocation to each task. No project manager can give any time frame to programmer to complete the task; such an instruction can only be given to robots [21]. Therefore in our task scheduling technique, we are assigning numeric value to each task in duration field which means number of days. Note, any task can be given minimum of half or one working day to complete it.

Junaid Tariq is working in COMSATS Institute of Information Technology, Islamabad Pakistan,. Saif-ur-Rehman Khan is working in COMSATS Institute of Information Technology, Islamabad, Pakistan.

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

161

VARIOUS PROJECT SCHEDULING TECHNIQUES

In present literature, following project scheduling techniques have been proposed:

2.1 Milestone Charts It marks the important events in the life of the project development phase. And these events must take place on predefine time to avoid delay [17]. 2.2 Gantt Charts This chart allows you to know which task will be conducted at what time [11]. 2.3 Activity Networks This is a graph of tasks in a sequence [14]. In activity network all the sequences of system are modeled [15] [16].

3 PROPOSED TECHNIQUE
Figure 1: General Software Development Cycle [9]

The importance of tasks and developer in any task allocation system is very high. Importance of task allocation in development phase can be observed in the figure 1. It shows that huge time is spend on areas related to tasks. After assigning task to the developer, the developer should try best to put that task to finish stage. Figure 2 shows the possible finishes stages of any assigned task.

This section presents our proposed technique assigns task to the developer based on their expertise. In case of tie (i.e., more than one developer can complete the task under consideration) a task is divided among the available developers (as depicted in table 1), so that each developer gets some work to do. TABLE 1: TASK ALLOCATION TABLE ID 1 Task Name T1 Duration 15 Expert Developers D ED1 , D ED2 , D ED3

Tasks available=1 Task name=T 1 D ED = expert developer Available expert developers=(AEDv)=3 Task 1 Duration= T 1-DR =15 Where T 1-DR represent Task 1 (T 1 ), having duration (DR)15.
AED

T1=

T [i]
i =1 1

.Eq. 1

Figure 2: Task Stages [10]

The paper is organized as: Next section presents various scheduling techniques, section III presents the proposed technique, section IV represents various situation that arise in the task allocation, followed by section V which presents various assumption, section VI covers explanatory example, results are presented in section VII, best usage in section VIII, and section IX covers the conclusion.

eq. 1, AED stand for Available Expert Developers. Eq. 1 depict that the task T1 is now divided into sub tasks T1[i] so that each available expert developers gets some work to do. In this case i will be equal to the number of available expert developer; each developer working on each sub task T1[i] of task T1. Now each sub-task duration will be: T 1-DR [i] =
T1- DR AEDv

Eq. 2

= 15 3 =5

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

162

Eq. 2 shows the assigning of time duration for each sub task T1-DR[i] of task T1. The original time of the task T1 (T1_DR) is divided into equal time slots (T1-DR[i]) depending upon the available developers (AEDv). Figure 1 shows that the time 15 of T1 is divided into equal time slots and is assigned to each sub-task given by Eq. 1. Figure 3 represent the division made by Eq. 2 in graphical form. The figure shows that the division gave equal time to each sub task T1[i] of task T1.

T Common-Developer = (T 1-ED

T 3-ED )..Eq. 4

Eq. 4 will return the common developers of task T 1-ED and task T 3-ED by taking intersection on developers set of both the tasks. T Common-Developer

( T 1-ED

T 3-ED )...Eq. 5

Eq. 5 show that the T Common-Developer common developer set is a subset of (T 1-ED T 3-ED ). As we have assigned the maximum developers to T 1 so we have to subtract the common developers from the T 3 developer set using Eq. 6. After the completion of task T 1, we will assign the common developers set to T 3 expert developer set. So that its expert developer set comes to its original condition. T 3-ED

( T 3-ED - T Common-Developer ) ..Eq. 6

Eq.6 removes the common developers T Common-Developer from task-3 developers set T 3-ED , and assign it to task-1 developers; because they were the common developers and Eq.3 has selected task T1 for completion as it has the minimum duration.
Figure 3: Division of Task into Sub Tasks

4 VARIOUS SCENARIOS
In case of more than one task to be assigned, we pick the task having minimum duration as it will be completed in less time and other task may be dependent on its completion. So we can develop two tasks simultaneously. TABLE 2: TASK ALLOCATION DEPENDENCY TABLE
ID Task Name Duration Dependent Task Expert Developers

To develop any task using this task allocation technique, we have one condition out of the following conditions:

4.1 Tasks with expert developers in common:


TABLE 3: TASK ALLOCATION TABLE ID 1 2 Task Name T1 T2 Duration 15 15 Dependent Task Expert Developers D ED1 , D ED2 , D ED3 D ED1 , D ED2 , D ED6

1 2 3

T1 T2 T3

5 15 10

T1 -

D ED1 , D ED2 , D ED3 D ED5 , D ED6 , D ED7 D ED1 , D ED6 , D ED3

Suppose we have two independent tasks (i.e., T 1 and T 3 ) as depicted in table 2. In such case we give priority to less duration task because after its completion, we can start the task T 2 which is depended on T 1 . From Eq. 3 computes the minimum duration task and assign it the priority 1 (i.e., the highest priority). T Min-DR = min[available _ task (T 1, T 2,...Tn )] Eq. 3 Table 2 shows that two (2) tasks T 1 and T 3 can be start at the same time, but there are two expert developers that are common in both the tasks D ED1 and D ED3 (using Eq. 4). But we have assigned the priority to T 1 (by using Eq. 3). Now assign the maximum developers to T 1 and remaining developers to T 3 . ID 1 2 Task Name T1 T2

T Common-Developer = (T i-ED Tj -ED ) T j-ED ( Tj -ED - T Common-Developer )

TABLE 4: TASK ALLOCATION TABLE Duration 15 15 Sub Tasks T 1.1 , T 1.2 , T 1.3 T 2.1 Expert Developers D ED1 , D ED2 , D ED3 D ED6

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

163

DEVELOPMENT:

4.3.1 Task becomes available: This situation arises when two tasks are in progress and one of them finishes which may be the depended of any other task that is present in the task allocation table. So now there is again the competition of priority among those tasks that which task will start first (using Eq. 3). If those tasks have some common developers, then Eq. 4 and Eq. 6 will be applied to. As the Eq. 6 will assign the expert developers of one task to another task, the new division of task into sub tasks must be carried out using Eq. 1. Similarly the duration of new sub tasks need to be adjusted using Eq. 2 so that the uniform development of tasks is carried out.

4.2 TASKS WITH NO EXPERT DEVELOPERS IN COMMON:


Table 5 shows that there are two tasks that can be develop simultaneously as they are not dependent on any other task, and also they dont have any common expert developer. TABLE 5: TASK ALLOCATION TABLE ID 1 2 Task Name T1 T2 Duration 15 15 Dependent Task Expert Developers D ED1 , D ED2 , D ED3 D ED4 , D ED5 , D ED6

If( T i-DR 0) If( T Common-Developer !=0) Then Release T Common-Developer Endif If (T>0) T Min-DR = min[available _ task (T 1, T 2,...Tn )]
T1- DR AEDv
i AED

T Min-DR [i] =

T Min =

T1[i ]
i =1

Divide the tasks of Table 5 using Eq. 1 and the sub tasks can be viewed in Table 6. TABLE 6: SUB TASKS ALLOCATION TABLE ID 1 2 Task Name T1 T2 Duration 15 15 Sub Tasks T 1.1 , T 1.2 , T 1.3 T 2.1 , T 2.2 Expert Developers D ED1 , D ED2 , D ED3 D ED4 , D ED5

T Common-Developer = (T i-ED T j-ED ) Tj -ED ( T j-ED - T Common-Developer ) Develop(T Min ) For i=1 to T SET If (Ti -ED )!=0) Develop (T j ) Endif Endfor Endif Endif

For( j=1;j Tasks;j++) //No. of tasks k AED { Tj= // T1 k Eq. 1 k =1 Tj - DR // Tj -DR [k] = AEDv each sub-task

[]

sub-tasks using duration //Assign for sub-

For i= 1 to AED task to each developer Tj -ED Tj -ED -1 T j [i] T i [i]-1 Endfor

Tj[i]

( Tj -ED [i] )

4.3 TASK FINISHES IN BETWEEN OTHER TASKS

4.3.2 Developers become available: This situation arises when a task ends and it releases the common expert developers which were taken from another task, which is in progress now. First of all update the duration of task in progress and add the common developers to its expert developer set. Now perform the task allocation technique of sub tasking and duration assigning using the above mentions equations. If( T i-DR 0) If( T Common-Developer !=0) Then Release T Common-Developer Update T set durations of each task Endif If (T>0) T Min-DR = min[available _ task (T 1, T 2,...Tn )]

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

164

T Min-DR [i] = T Min =

T1- DR AEDv
i AED i =1

T1[i ]

T 1 = D ED1 , D ED2 , D ED3 T 3 = D ED4


After using equations 1 to 6 we have divided the T 1 into three sub tasks and T3 remains the same as it has only one developer. As T 1 is divided into three sub tasks so divide its duration into three equal parts too. This can be easily understood by considering figure 3.

T Common-Developer = (T i-ED T j-ED ) Tj -ED ( T j-ED - T Common-Developer ) Develop(T Min ) For i=1 to T SET If (Ti -ED )!=0) Develop (T j ) Endif Endfor Endif Endif

Legends: Start Completed Sub task Completed Task Task in progress

5 ASSUMPTIONS
We are making the following two assumptions:

Figure 4: Legends of Task Allocation

5.1 SUB-TASK DIVISION:


There is a limit to divide a task. We are assuming that we can divide the task into small sub-tasks equal to the number of expert developers available for that task. But make sure that the structure of the task remains the same during the sub divisions [1], [3], [4].
3.33 3.33 3.33 T1.1 T1.2 T1.3 T3 T1 1.66 1.66 1.66 T2.1 T2.2 T2.3 5 3.33 1.66 T3 5 5 T3.2 T3.3 Time 3.33 Time 1.66 Time 5 T3 T2 T3.1

5.2 TIME FOR SUB-TASKS:


Dividing the task into sub-tasks requires some adjustment to be done for the duration of that task. In our case after dividing the task into sub-tasks which is carried out by dividing the task by number of available of developers. We similarly also divide the duration of the task by number of available developers so that equal distribution of time is carried out.

T1ED={DED1, DED2, DED3} T2ED={DED2, DED3, DED4} T3ED={DED1, DED2, DED4} T3ED={DED1} T3ED={DED4}

Figure 5: Task Allocation Graph

6 EXPLANATORY EXAMPLES
Take a look at the following task allocation table. TABLE 7: TASK ALLOCATION TABLE ID 1 2 3 Task Name T1 T2 T3 Duration 10 5 20 Dependent T1 Expert Developers D ED1 , D ED2 , D ED3 D ED2 , D ED3 , D ED4 D ED1 , D ED2 , D ED4

After time 3.33, T 1 finishes and T 2 is picked up from the table 7 because T 2 was depended on T 1 . First of all release the common developer if any. And also update the duration of any task in progress. So after subtracting 3.33 from T 3 we get 16.67. Now again we have two tasks:

T 2 = D ED2 , D ED3 , D ED4 & Time=5 T 3 = D ED1 , D ED2 , D ED4 & Time=16.67
Again using equation 1 to 6 we get:

T 2 = D ED2 , D ED3 , D ED4 T 3 = D ED1


From Figure 5 we can see that after time 1.66 the task T 2 finishes and the time of T3 is updated which becomes 16.67-1.66=15.01. But now there is only one task to finish and that is T3 itself. So no division of developer will be made this time. T 3 will be divided into three sub tasks and time of 5 will be allotted to each sub task. The total time of task allocation technique will be the sum of time utilize by each task, which in this example equal to 3.33+1.66+5=9.99.

Two tasks T 1 and T 3 can be develop because they are not dependent on any other task.

T 1 = D ED1 , D ED2 , D ED3 & Time=20 T 3 = D ED1 , D ED2 , D ED4 & Time=10
But these tasks have common developers so priority will be given to less duration task and common developer will be assign to T 1 .

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

165

T1 Time:10 10 +

T2 Time: 5 T3 5 +

T3 Time: 5 5 = 20

Figure 6: Normal Allocation

7 RESULTS
Table 8 show the number of days spends on developing a task, using normal allocation, and using our task allocation technique. Table 8 clearly shows that our technique uses the resources efficiently and takes half duration to complete, than normal task allocation. TABLE 8: COMPARISON OF NORMAL APPROACH AND TASK ALLOCATION

Figure 8: Example 2, Line Graph

Example ID 1 2

No. of Tasks 4 7

Normal Task Completion Time (days) 29 65

Task Allocation Technique Time (days) 12.125 35.74

Figure 9 represents the figure 9 example in bar graph to provide the representation from another angle.

Figure 7 shows the difference in days for a project with and without task allocation approach. X-axis represent the days while the Y-axis represent the number of tasks. Normal allocation completes the tasks in 29 days while the task allocation technique does the same number of tasks in 12.12 days.

Figure9: Example 2, Bar Graph

From figure 6 we can see that by dividing the task into sub-tasks can reduce the total duration of task allocation by 1 2 . For best results, this technique can be used when we know the expertise of each developer, and also which task is dependent on which other task of the same system.

7 CONCLUSION
Figure 7: Example 1, Line Graph

Figure 8 shows the working of task allocation technique on another example. The tasks were completed in 65 days in normal allocation; whereas our task allocation does the same work in 35.74 days.

After dividing the task into manageable sub-tasks, utilizing all the resources you have, and keeping in view the expertise of each developer, we can develop the system well before time. This will save our time, cost, and effort. Availability of resources does not mean the success of project but the efficient utilization of these resources. Many project fails even having large man-power. The reason is that they are not utilized properly. Image

JOURNAL OF COMPUTING, VOLUME 3, ISSUE 7, JULY 2011, ISSN 2151-9617 HTTPS://SITES.GOOGLE.COM/SITE/JOURNALOFCOMPUTING/ WWW.JOURNALOFCOMPUTING.ORG

166

processing person coding the module of network, web portal manager is designing the ERD diagram of the system. The proposed technique allocates tasks to the developers, keeping in the view the expertise of each developer. This improves the quality of the work. The proposed technique also tries to engage all the man-power for efficient utilization of resources. As a result, the project completes well before time. Working of technique revealed that the project took half duration to complete, than normal allocation.

REFERENCES
[1] [2] Chintan Amrit and Jos van Hillegersberg. Task Allocation in A Globally Distributed software Development Environment. Khashayar R. Baghaei and Arvin Agah. Task Allocation and Communication Methodologies for Multi-Robot Systems. Intelligent Automation and Soft Computing, Vol 9, No 4, pp. 217-226, 2003. Conway, M. (1968).How do committees Invent. Datamation. 14:28-31. Herbsleb, J., D. and R. Grinter, E.(1999). Architectures, Coordination, and Distance: Conways Law and Beyond. IEEE Software Los Alamitos, Ca, USA. 16:63-70. Sherief Abdallah and Victor Lesser. Learning the Task Allocation Game. AAMAS06 May 8-12. Hakodate, Hokkaido, Japan. 2006 ACM 1-59593-303-4/06/005. URL:http://en.wikipedia.org/wiki/Task_(project_management), retrieved on: Oct 15, 2010. Faraj, S. and L. Sproull (2000). Coordinating Expertise in Software Development Teams. Management science 46 (12):1554-1568 Sparrowe, R. T., R. C. Liden, et al. (2001). Social networks and the performance of individuals and groups. Academy of Management Journal 44(2):316-325. URL: http://ksi.cpsc.ucalgary.ca/KAW/Sisyphus/Sis1/Sis124.gif. Retrieved on: 8th July, 2009. URL:http://upload.wikimedia.org/wikipedia/commons/8/88/TaskLifeC ycle.png. Retrieved on: 8th July, 2009. McGraw. Software Engineering A practitioners Approach Sixth Edition. PP 717. Mathijs de Weerdh, Yingqian Zhang, and Tomas Klos. Distributed Task Allocation in Social Networks. Proceedings Autonomous Agents and Multi-Agent Systems (AAMAS 2007), pp. 488-495, ACM Press, 2007. Onn Shehory and Sarit Kraus. Methods for Task Allocation via Agent Coalition Formation. Artificial Intelligence, 101(1-2):165200, 1998. Gert Zuch, Jorg Fischer, Uwe Jonsson. An Integrated Object Model For Activity Network Based Simulation. Proceedings of the 2000 Winter Simulation Conference J. A. Jonines, R. R. Barton, K. Kang, P. A. Fishwich, eds. Brinkmeier, B. 1998. Prozessorientiertes Prototyping von Organisationsstrukturen im producktionsbereich. Aachen: Shaker Verlag. Ifab-Forschungsberichte, Vol. 17. Grobel, T. 1992. Simulation der Organisation rechnerintegrierter Produktionssysteme. Karlsruhe Uni: Institut fur Arbeitswissenschaft und Betriebsorganisation. Ifab-Forschungsberichte, Vol. 3. Scheduling Techniques and project management. URL: http://www.ctl.ua.edu/math103/scheduling/scheduling_algorithms.ht m. Retrieved on : 22 January, 2008. S. L. Pfleeger, Software Engineering: Theory and Practice, Prentice Hall, 2001.

[19] Jim Duggan, Jason Byrne, and Gerard J. Lyons, A Task Allocation Optimizer for Software Construction, IEEE Software: IEEE computer Society. [20] E. S. Raymond, The Cathedral and the Bazaar, OReilly and Associates, 2001. [21] G. M. Weinberg, Egoless Programming, IEEE Software, vol. 16, no. 1, 1999, pp. 118-120. [22] Alexei V. Sioutine, Paal I. Davidsen, J. Michael, Modeling Resource Management in Instructional Systems Development Projects, The 16th International Conference of the System Dynamics Society, July 20-23, 1998, Quebec City, Canada. [23] Kao, B., Garcia-Molina, H., Subtask deadline assignment for complex distributed soft real-time tasks, Distributed Computing Systems, 1994, Proceedings of the 14th International Conference. [24] Kruithof, N. Informaat BV, Developing user support systems in multidisciplinary teams-new opportunities, new challenges, Professional Communication Conference, 2000, Proceedings of the 2000 Joint IEEE International and 18th Annual Conference on Computer Documentation (IPCC/ SIGDOC 2000).

[3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

[13] [14]

[15] [16]

[17] [18]

Vous aimerez peut-être aussi