Académique Documents
Professionnel Documents
Culture Documents
ORG
160
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
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
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
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:
1 2 3
T1 T2 T3
5 15 10
T1 -
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
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.
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
[]
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.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
T1- DR AEDv
i AED i =1
T1[i ]
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
5 ASSUMPTIONS
We are making the following two assumptions:
T1ED={DED1, DED2, DED3} T2ED={DED2, DED3, DED4} T3ED={DED1, DED2, DED4} T3ED={DED1} T3ED={DED4}
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:
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
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
Example ID 1 2
No. of Tasks 4 7
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.
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]