This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2007-211760, filed on Aug. 15, 2007, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
An aspect of the invention is related to a method and an apparatus for estimating man-hours of an entire project which consists of series of two or more tasks.
2. Description of the Related Art
Conventionally, methods for estimating man-hours have been used that break down an entire development project having a plurality of tasks into work units. The man-hours of the entire project are estimated by using both the estimated man-hours of each task and a workflow which represents a relationship before and after the task. A method, represented by the Program Evaluation and Review Technique (PERT), in which man-hours of an entire development project are estimated by taking account of variations in estimated man-hours of each task, has been used as well.
Recently, tools which applied these methods and automated man-hours estimation for an entire development project have been provided. For example, tools which obtain a function quantity based on function information managed by each development area, and estimate man-hours of an entire development project by using the quantity, are provided for software development (e.g., refer to Japanese Laid-open Patent Publication No. 2002-222080).
Tools for estimating man-hours of an entire development project by referring to actual man-hours of a similar past project are also provided (e.g., refer to Japanese Laid-open Patent Publication No. H11-203351).
These tools enable the accuracy of man-hours estimation to be improved, because the amount of tasks and costs in a software development are estimated by using actual values in the same development field (i.e., a similar project).
According to an aspect of the present invention, a method for estimating man-hours of an entire project having a series of tasks with a computer includes,
inputting an estimated man-hours of each task,
acquiring model functions for extracting estimation errors included in the estimated man-hours of each task based on an attribute of a worker who performs the task,
calculating a probability density distribution representing estimation errors depending on the attribute and a probability density distribution representing modeling errors depending on methods for estimating the man-hours for each task using the model functions,
calculating man-hours of the entire project having a series of tasks for each task using statistical methods to accumulate the probability density distribution representing estimation errors and the probability density distribution representing the modeling errors, and
outputting calculating results of man-hours of the entire project to an output device.
Additional objects and advantages of the invention (embodiment) will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and not restrictive of the invention, as claimed.
Reference may now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.
The conventional techniques described above do not take variations caused by the experience and skill of an individual worker, and by the method used to estimate man-hours, sufficiently into account. Consequently, such variations may lead to larger estimation errors and lower accuracy of man-hours estimation for an entire development work.
Particularly, man-hours of each task may tend to vary substantially depending on the experience and skill of a worker in a software development compared with that of hardware and construction designs. This leads to an increase of estimation errors caused by variations. Thus, improving accuracy of man-hours is important.
According to the probability density distribution “Y1”, the skilled worker “A” generally spends fewer man-hours than the estimated man-hours (mean value of a probability density distribution “X”), with smaller variations. According to the probability density distribution “Y2”, the new worker “B” spent more man-hours than the estimated man-hours with larger variations.
As mentioned above, the man-hours required for a task largely vary depending on a worker's experience and skill. Therefore if such variations depending on experience and skill are not sufficiently taken into account, a man-hours estimation error increases and accuracy of man-hours estimation of an entire project having a series of tasks is reduced.
A method and an apparatus to improve accuracy of man-hours estimations are explained in an embodiment of the present invention.
In
Generally, man-hours of tasks “A” to “C” largely vary depending on a worker's attributes such as experience and skill. In this embodiment, therefore, we estimate man-hours of a series of tasks by taking account of estimation errors depending on attributes of a worker who performs tasks “A” to “C”. More specifically, the probability density distribution “X” is separated into a probability density distribution “x” and a probability density distribution “e”. Then the probability density distributions “X”=“x”+“e” is used.
The same applies to tasks “B” and “C” as the task “A”. That is to model errors separately depending on estimation methods and estimation errors depending on attributes of a worker, and regard them as the estimated man-hours of the tasks “B” and “C” respectively. Thus, the accuracy of man-hours estimation is improved by taking account of estimation errors included in estimated man-hours of tasks “A” to “C” depending on attributes of workers and then estimating man-hours of an entire project having a series of tasks.
In
The computer 210 includes a central processing unit (CPU), memories, and an interface. The CPU controls the man-hours estimation apparatus 200. The memories include a read only memory (ROM), a random access memory (RAM), a hard disk (HD), an optical disk 211 and a flash memory. Some memories are used as a work area of the CPU.
Various programs are stored in the memory and are loaded by an instruction of the CPU. Disk drives control read and write of the HD and the optical disk 211 respectively. The optical disk 211 and the flash memory are attachable and detachable to the computer 210. The interface controls input from the input device 220, output to the output device 230, and sends and receives to and from the network 240.
The input device 220 may include a keyboard 221, a mouse 222, and a scanner 223. The keyboard 221 provides keys for inputting characters, numbers, and various instructions and performs data input. A touch-panel keyboard may be used. The mouse 222 moves a cursor, selects area, moves a window, and changes the size, etc. The scanner 223 optically reads an image. The optically read image is taken as image data and stored in the memory of the computer 210. The scanner 223 can be provided with an optical character reader (OCR) function.
The output device 230 may include a display 231, a speaker 232, and a printer 233. The display 231 displays a cursor, an icon, and a toolbox, and data such as a text, an image, and functional information. The speaker 232 outputs sounds such as sound effects and readout sounds. The printer 233 prints image and text data.
Each attribute information “300-1 to 300-n” provides model functions to extract estimation errors from the estimated man-hours of each task for the workers 1 to n. More specifically, the model functions include random variables “e1 to en” representing estimation errors depending on workers 1 to n, and random variables “x1 to xn” representing modeling errors depending on estimation methods used to estimate man-hours of each task.
The random variables “e1 to en” are provided beforehand for each of the attributes (workers 1 to n). The random variables “x1 to xn” are provided beforehand for each of the methods for estimating man-hours of each task. Here, the random variables “x1 to xn” representing modeling errors depending on a particular estimation method are described. Specific examples of random variables “e1 to en” and random variables “x1 to xn” are explained later.
In
More specifically, the correlation coefficients between attributes of workers with the same name are 1.0 and those between different workers are 0.0. A correlation coefficient between attributes can be set optionally. For example, a high correlation coefficient is set when years of experience are closer between workers, while a low correlation coefficient is set when years of experience are far apart between workers.
These units 501 to 506 can realize their functions by causing a CPU to execute corresponding programs stored in a memory. Output data from functions 501 to 506 may be stored in an output memory. Referring to
The man-hours estimation apparatus 200 estimates man-hours of an entire project having a series of tasks. The “task” means actual work performed at each process when a project is divided into a plurality of processes. In software development, for example, when each function of software is enabled by dividing the function into a plurality of modules; each “task” means work to develop a program for each module.
A “series of tasks” means a work set having a plurality of tasks, and the tasks are connected either in parallel or in series. Now, a specific example of a series of tasks is explained.
In the diagram 610, tasks are connected in series. This means the task “B” starts after task “A” is completed, and then task “C” starts after the task “B” is completed. In the diagram 620, a task “A” and a task “B” are connected in parallel. This means the tasks “A” and “B” are performed in parallel, and the task “C” starts when both the task “A” and the task “B” are complete.
Firstly an input unit 501 accepts input of estimated man-hours of each task. The estimated man-hours are estimated with man-hours of each task (e.g., a mean value of a probability density distribution “X” in
An acquisition unit 502 acquires model functions based on an attribute of a worker who performs the task to extract an estimation error included in estimated man-hours of each task input at the input unit 501. The attribute means characteristics of a worker who performs each task. More specifically, the attribute may be personal information (e.g., a name, an age, and a department), or proficiency such as years of experience and skill in order to identify a worker.
Information representing attributes of each worker (e.g., personal information and proficiency) may be directly input to the man-hours estimation apparatus 200. The information representing attributes of each worker may be input, for example, by linking the attributes with estimated man-hours. The information representing attributes of each worker may also be pre-stored in a storage area such as a read only memory (ROM) or a random access memory (RAM).
Model functions are random variables representing estimation errors depending on an attribute of a worker, and random variables representing modeling errors depending on estimation methods. The acquisition unit 502, for example, reads information representing an attribute of a worker who performs each task from a storage area. The acquisition unit 502 acquires the random variables “e” and “x” based on the information. The random variables “e” and “x” are Stored by being linked with each worker's attribute from the attribute information DB300 shown in
Specific examples of random variables “e” and “x” are explained. Expressions 1 to 6 below show random variables “e1” to “e3” representing estimation errors depending on attributes of workers 1 to 3 and random variables “x1” to “X3” representing modeling errors depending on estimation methods for estimating man-hours. Note that “T” is estimated man-hours of each task, while “r1” is a normal distribution of (a mean value, a standard deviation)=(0,1).
e
1=0.07×T*r1+0.03×T (1)
x
1=1.0×T+1 (2)
e
2=0.1×T×r1 (3)
x
2=0.75×T+1 (4)
e
3=0.07×T×r1 (5)
x
3=1.2×T+1 (6)
A first calculation unit 503 calculates, for each task, both a probability density distribution and a distribution by using model functions acquired by the acquisition unit 502. The probability density distribution represents estimation errors depending on attributes, while the distribution represents modeling errors depending on estimation methods for estimating man-hours. More specifically, for each task “i”, the first calculation unit 503 calculates probability density distributions “ei” and “xi” by assigning estimated man-hours of each task into random variables “ei” and “xi” obtained by the acquisition unit 502.
For example, assume that a worker of a task is a worker 1 and estimated man-hours of the task are “10”. In this case, a probability density distribution “e1” representing estimation errors depending on the worker 1 and a probability density distribution “x1” depending on the method which estimated man-hours “10” are calculated by applying the estimated man-hours “10” to parameters T in the above expressions (1) and (2).
A second calculation unit 504 calculates man-hours of an entire project having a series of tasks by using statistical methods to accumulate the probability density distribution representing estimation errors and the distribution representing modeling errors calculated by the first calculation unit 503. More specifically man-hours of an entire project having a plurality of tasks are calculated by using statistical methods to accumulate mean values and standard deviations for a probability density distribution “e” and a probability density distribution “x” calculated for each task by the first calculation unit 503.
More specifically, a mean value of man-hours of an entire project having a series of tasks is calculated by using statistical methods to accumulate mean values of probability density distributions “e” and “x” for each task. A standard deviation for estimated man-hours of an entire project having a series of tasks is calculated by using statistical methods to accumulate standard deviations of probability density distributions “e” and “x” for each task.
As a result, the man-hours of an entire project are estimated based on the calculated mean values and standard deviations for calculated man-hours estimation of an entire project having a series of tasks. Specific methods to statistically accumulate a probability density distribution representing estimation errors and a probability density distribution representing modeling errors are described later in Examples 1 to 3.
The acquisition unit 502 acquires a correlation coefficient representing a correlation between tasks in terms of estimation errors based on an attribute of a worker who performs each task. More specifically, the acquisition unit 502 acquires a correlation coefficient representing a correlation between tasks in terms of estimation errors based on attributes of a worker who performs each task, for example, by referring to a correlation table shown in
A correlation coefficient representing a correlation between tasks may be acquired according to a predefined rule. For example, assume that a focus is on a specific task among a series of tasks. A correlation coefficient of tasks before and after the task may be acquired by taking account of the correlation between the tasks before and after the task. A correlation coefficient between serially connected tasks may be acquired by taking account of a correlation between serially connected tasks.
More specifically, the acquisition unit 502 may acquire a correlation coefficient representing a correlation between tasks immediately before and/or after each task by referring to a sequence of a series of tasks. A correlation coefficient representing a correlation between tasks parallel connected may be acquired by referring to a sequence of a series of tasks.
Information that identifies a sequence of each task (e.g., diagrams 610 and 620 shown in
The second calculation unit 504 calculates man-hours of an entire project having a series of tasks based on the correlation coefficient acquired by the acquisition unit 502. More specifically, by taking account of correlations between tasks, a probability density distribution representing estimation errors and the distribution representing modeling errors for each task are accumulated by using statistical methods.
Specific methods to statistically accumulate a probability density distribution representing estimation errors and a probability density distribution representing modeling errors by taking account of correlations between tasks are explained later in Examples 2 and 3. When a correlation between attributes is not defined in the correlation table 400 etc., a predefined correlation coefficient (e.g., “0.5”) may be used to calculate man-hours of an entire project having a series of tasks.
The output unit 505 outputs the result calculated by the second calculation unit 504. The output form of the output unit 505 may be a screen display on the display 231, a printout by the printer 233, data output (i.e., storage) to a memory, or transmission to an external computer.
More specifically, the output unit 505 may display a probability density distribution representing man-hours of an entire project having a series of tasks and the distribution representing estimation errors included in the man-hours of the entire project on the display 231. A specific example of the output form of the output unit 505 is explained later in an Example 4 (
The update unit 506 updates parameter values in model functions retained by being linked to a worker's attribute of a relevant task based on estimated man-hours and actual man-hours spent for the work. More specifically, for example, the parameter value is updated by using an existing fitting method based on man-hours estimated in past and actual man-hours spent for the work.
When parameter values are updated by the update unit 506, the acquisition unit 502 may acquire the updated model functions retained by being linked to the attribute. A specific example of an update process by the update unit 506 is explained. As an example, an update process when a worker 1 performs a task “A” is explained here.
Then, based on the input information 710, a content of history information 720 to which man-hours estimated in past and actual man-hours spent regarding to the task “A” of the worker 1 are recorded is updated to history information 730. The history information 720 and 730 store man-hours of task “A” estimated in past and actual man-hours spent at that time by the worker 1 in time sequence (i.e., No.1 to No.2, and . . . ). The history information 720 and 730 is stored in the attribute information DB300 shown in
Next, according to the updated history information 730, parameter values in model functions (e.g., expressions (1) and (2)) linked to the worker 1 are updated. More specifically, model functions are assumed to be the expressions (7) and (8) shown below and parameters P1, P2, P3, and P4 are recalculated.
x=P
1
×T+P
2 (7)
e=P
3
×T×r1+P4 (8)
When recalculation of parameters P1, P2, P3 and P4 is completed, the parameter values in above expressions (1) and (2) are updated to the recalculated value.
An example of recalculation of parameters P1, P2, P3, and P4 is shown. Estimated man-hours and actual man-hours stored in the history information 730 are described in time sequence as follows:
Firstly using the expression (9) below, difference of estimated man-hours and actual man-hours are calculated.
Δi=(ti−t′i)/ti (9)
After that a normal distribution to approximate “Δi” is calculated, and a mean value “μ” and a standard deviation “σ” of the normal distribution are obtained. The mean value “μ” and the standard deviation “σ” obtained here are applied to values for above parameters P3 and P4 (P3=σ, P4=μ). Then when on the normal distribution “Δi” is located is calculated, and amount of estimation errors of estimated man-hours are subtracted from t′i by using an expression (10) shown below.
x
i
=t
i
−T×(P3×Δi+P4) (10)
Then, values for parameters P1 and P2 are calculated so that (ti, xi) are represented by an expression (11) shown below by using a least-squares method.
x
i
=P
1
×t
i
+P
2 (11)
Finally, recalculated parameters P1, P2, P3, and P4 are applied to above expressions (7) and (8). Then the model functions obtained by applying the recalculated parameters P1, P2, P3, and P4 to above expressions (7) and (8) shall be updated model functions linked to the worker 1.
Thus, model functions linked to attributes of a worker (e.g., above expressions (1) to (6)) may be changed depending on estimated man-hours of a task and actual man-hours spent by the worker. This enables model functions to be updated depending on change of, for example, proficiency of a worker, thereby allowing use of appropriate model functions depending on attributes of the relevant worker when calculating estimated man-hours.
Now, the apparatus 200 waits for input of estimated man-hours of each task (Operation S801: No). When the estimated man-hours are input (Operation S801: Yes), an acquisition unit 502 acquires model functions to extract an estimation error included in estimated man-hours of each task input by the input unit 501 based on attributes of a worker who performs each task (Operation S802).
Moreover the acquisition unit 502 acquires a correlation coefficient representing a correlation between tasks in terms of estimation errors based on attributes of a worker who performs each task (Operation S803). Then a first calculation unit 503 calculates, for each task, both a probability density distribution representing estimation errors depending on attributes and the distribution representing modeling errors depending on estimation methods for estimating man-hours (Operation S804).
Then a second calculation unit 504 calculates man-hours of an entire project having a series of tasks (S805) by statistically accumulating the probability density distribution representing estimation errors of each task and the distribution representing modeling errors calculated at Operation S804 based on the coefficient correlation acquired at Operation S803.
An output unit 505 outputs results calculated by the second calculation unit 504 (Operation S806), thereby completes a series of processes in this flow chart. Note that the execution order of Operations S802 and S803 may be reversed or executed in parallel.
As explained above, according to the embodiment of the present invention, man-hours of an entire project having series of tasks can be estimated by taking account of estimation errors depending on a worker's experience and skill. At this time, man-hours can be estimated by taking account of a correlation between tasks depending on a worker's experience and skill.
Model functions stored in the attribute information DB300 by being linked to attributes of a worker can be updated depending on actual man-hours spent for a task by the worker. As a result, the model functions are updated in response to change of the worker's skill level thereby enables estimation of man-hours using appropriate model functions depending on the worker's skill level.
Example 1 of the above embodiment is explained. In Example 1, man-hours of an entire project having a series of tasks are estimated using an example shown in a diagram 610 in
Specifically, the following is shown: estimated man-hours of “10 days” when a worker 1 performs a task “A”, that of “20”days when a worker 2 performs a task “B”, and that of “20”days when a worker 3 performs a task “C” respectively. These estimated man-hours are estimated by using a predetermined method.
The input information 900 is directly input by a user to a man-hours estimation apparatus 200. Then, an input unit 501 (refer to
Moreover, the acquisition unit 502 acquires a coefficient correlation representing a correlation between tasks in terms of estimation errors based on attributes of workers (workers 1 to 3) who perform tasks “A” to “C” respectively by referring to a correlation table 400 shown in
Now, the first calculation unit 503 applies the estimated man-hours of tasks “A” to “C” based on the input information 900 to above expressions (1) to (6). Then the unit 503 calculates, probability density distributions “e1” to “e3” representing estimation errors depending on workers 1 to 3 and the distributions “x1” to “x3” representing modeling errors depending on estimation methods for estimating man-hours of tasks “A” to “C”.
The task “A” here, for example, provides a probability density distribution “e1” representing estimation errors depending on the worker 1, (mean value, standard deviation)=(0.3, 0.7), and the distribution “x1” representing modeling errors depending on estimation methods for estimating man-hours of the task “A” (mean value, standard deviation)=(11.0, 0.0).
Then, according to the correlation information 1000 shown in
The mean values of the distributions “e1” to “e3” are described as mean (e1) to mean (e3), while standard deviations are described as σ(e1) to σ(e3) respectively. The mean values of the distribution “x1” to “x3” are described as mean(x1) to mean(x3), the standard deviations are described as σ(x1) to σ(x3) respectively. The correlation coefficient representing a correlation between a task “i” and task “j” is described as “ρij”.
Using these mean values and standard deviations of the probability density distributions “e1” to “e3”, those of “x1” to “x3”, and correlation coefficients between tasks, values shown below for an entire project having a series of tasks are calculated using following expressions. The expression (12) calculates a mean value of modeling errors: mean(x). The expression (13) calculates a standard deviation of modeling errors: σ(x). The expression (14) calculates a mean value of estimation errors: mean(e). The expression (15) calculates a standard deviation of estimation errors σ(e).
By applying the values calculated by above expressions (12) to (15) to expressions (16) and (17) shown below according to the equation “X=x+e”, a mean value: mean(x) and a standard deviation: σ(x) of an entire project having a series of tasks can be obtained as follows.
mean(X)=mean(x)+mean(e)=52.3 (16)
σ(X)=sqrt(σ(x)2+σ(e)2)=2.54 (17)
Finally, man-hours of the entire project having a series of tasks are estimated using the mean value: mean(X) and the standard deviation: σ(X) calculated by above (16) and (17). At this time, man-hours to complete a series of tasks can be estimated with any probability.
More specifically, for example, man-hours to complete a series of tasks can be estimated with a probability of 99.8% by adding the standard deviation (σ(X)) times 3 to the mean value (mean(X)) of the entire project having a series tasks as shown in an expression below.
“mean(X)+3σ(X)≅60 days”.
According to Example 1 explained above, man-hours of an entire project having a series of tasks can be estimated by taking account of estimation errors depending on experience and skill of workers 1 to 3. This reduces variations caused by differences of attributes such as skill level, thereby improves accuracy to estimate man-hours of a series of tasks.
Example 2 of the above embodiment is explained. In Example 2, man-hours of an entire project having a series of tasks shown in a diagram 610 in
In
Now, a correlation table in Example 2 is explained.
When man-hours of an entire project having a series of tasks are estimated, firstly, an input unit 501 accepts input of input information 1200. Then an acquisition unit 502 acquires model functions from the attribute information DB300 based on attributes of workers (the workers 1 and 2) who perform tasks “A” to “C” respectively. Specifically, the acquisition unit 502 acquires above expressions (1) to (4).
Moreover, the acquisition unit 502 acquires a coefficient correlation representing a correlation between tasks in terms of estimation errors based on attributes of workers (workers 1 and 2) who perform tasks “A” to “C” respectively by referring to a correlation table 1300. By referring to the diagram 610 here, the correlation coefficient representing a correlation between tasks immediately before and/or after each task is acquired.
Then the first calculation unit 503 applies the estimated man-hours of tasks “A” to “C” based on the input information 1200 to above expressions (1) to (4). Then the unit 503 calculates probability density distributions “e1” and “e2” representing estimation errors depending on workers 1 and 2 and the distributions “x1” and “x2” representing modeling errors depending on methods for estimating man-hours of tasks “A” to “C”.
In Example 2, a worker who performs the tasks “A” and “C” is the same worker 1. Therefore, estimated man-hours of the tasks “A” and “C” are applied to the probability density distributions “e1” representing estimation errors depending on the worker 1, and to the “x1” representing modeling errors depending on methods for estimating the tasks “A” and “C” respectively.
The task “C” here, for example, provides a probability density distribution “e1” representing estimation errors depending on the worker 1, (mean value, standard deviation)=(0.6, 1.4), and the distribution “x1” representing modeling errors depending on methods for estimating man-hours of task “A” (mean value, standard deviation)=(21.0, 0.0).
Then, according to the correlation information 1400 shown in
The following expressions calculate values shown below for an entire project having a series of tasks. The expression (18) calculates a mean value of modeling errors: mean(x). The expression (19) calculates a standard deviation of modeling errors: σ(x). The expression (20) calculates a mean value of estimation errors: mean(e). The expression (21) calculates a standard deviation of estimation errors σ(e).
By applying the values calculated by above expressions (18) to (21) to expressions (22) and (23) shown below according to the equation “X=x+e”, a mean value: mean (x) and a standard deviation: σ(x) of an entire project having a series of tasks can be obtained as follows.
mean(X)=mean(x)+mean(e)=48.9 (22)
σ(X)=sqrt(σ(x)2+σ(e)2)=3.26 (23)
Finally, man-hours of the entire project having a series of tasks are estimated using the mean value: mean(X) and the standard deviation: σ(X) calculated by above expressions (22) and (23). At this time, man-hours to complete a series of tasks can be estimated with any probability.
More specifically, for example, man-hours to complete a series of tasks can be estimated with a probability of 99.8% by adding the standard deviation (σ(X)) times 3 to the mean value (mean(X)) of the entire project having a series tasks as shown in the expression below.
“mean(X)+3×σ(X)≅59 days”
The estimated man-hours here are less than those man-hours estimated for tasks without any correlation.
According to Example 2 explained above, man-hours of an entire project having a series of tasks can be estimated by taking account of correlations between tasks in serial order depending on experience and skill of workers 1 and 2. This reduces variations caused by correlations of tasks in serial order, thereby improves accuracy to estimate man-hours of a series of tasks.
Example 3 of above embodiment is explained. In Example 3, man-hours of an entire project having a series of tasks shown in a diagram 620 in
In
Now, a correlation table in Example 3 is explained.
When man-hours of an entire project having a series of tasks are estimated, firstly, an input unit 501 accepts input of input information 1600. Then an acquisition unit 502 acquires model functions from the attribute information DB300 based on attributes of workers (the workers 1 to 3) of tasks “A” to “C” respectively. Specifically, the acquisition unit 502 acquires above expressions (1) to (6).
Moreover, the acquisition unit 502 acquires a coefficient correlation representing a correlation between tasks in terms of estimation errors based on attributes of workers (workers 1 to 3) who perform tasks “A” to “C” respectively by referring to a correlation table 1700. By referring to the diagram 620 here, a correlation coefficient representing a correlation between tasks immediately before and/or after each task is acquired.
Then the first calculation unit 503 applies the estimated man-hours of tasks “A” to “C” based on the input information 1600 to above expressions (1) to (6). Then the unit 503 calculates probability density distributions “e1” to “e3” representing estimation errors depending on workers 1 to 3 and the distributions “x1” to “x3” representing modeling errors depending on methods for estimating man-hours of tasks “A” to “C”.
The task “C” here, for example, provides a probability density distribution “e3” representing estimation errors depending on the worker 3, (mean value, standard deviation)=(0.0, 0.35), and the distribution “x3” representing modeling errors depending on methods for estimating man-hours of task “C” (mean value, standard deviation)=(7.0, 0.0).
Then, according to the correlation information 1800 shown in
The following expressions calculate values shown below for an entire project having a series of tasks. The expression (24) calculates a mean value of modeling errors: mean (x). The expression (25) calculates a standard deviation of modeling errors: σ(x). The expression (26) calculates a mean value of estimation errors: mean (e). The expression (27) calculates a standard deviation of estimation errors σ(e).
mean(x)=max(mean(x1), mean(x2))+mean(x3)=13 (24)
σ(x)=max(σ(x1), σ(x2))+σ(x3)=0 (25)
mean(e)=max(mean(e1), mean(e2))+mean(e3)=0.3 (26)
σ(e)=sqrt(max(σ(e1), σ(e2))2+σ(e3)2)=0.2825 (27)
The values calculated by above expressions (24) to (27) are applied to expressions (28) and (29) shown below to obtain a mean value: mean(X) and a standard deviation: σ(x) of an entire project having a series of tasks as follows.
mean(X)=mean(x)+mean(e)=13.3 (28)
σ(X)=sqrt(σ(x)2+σ(e)2)=0.2825 (29)
Finally, man-hours of the entire project having a series of tasks are estimated according to an equation “Xi=xi+ei” explained by using
“mean(x)+3×σ(X)≅14 days”
The cases when no correlation exists between the tasks 1 and 3 and tasks 2 and3 respectively have been explained by now. However, cases are not limited to these. For example, when correlation exists between tasks 1 and 3, and tasks 2 and 3, standard deviations of estimation error σ(e)shown in above expression (27) can be calculated by using an approximation such as shown in (30).
σ(e)≅sqrt(max(σ(e1), σ(e2))2+σ(e3)2)+2×max(ρ13×σ(e1)×σ(e3), ρ23×σ(e2)×σ(e3)) (30)
According to Example 3 explained above, man-hours of an entire project having a series of tasks can be estimated by taking account of correlations between tasks in parallel depending on experience and skill of workers 1 to 3. This reduces variations caused by correlations of tasks in parallel order, thereby improves accuracy to estimate man-hours of a series of tasks. Using an approximation such as the expression (30) and taking account of correlations between tasks in series and in parallel enable to realize estimation of man-hours with higher accuracy.
An example 4 of above embodiment is explained. In Example 4, embodiment of output by an output unit 505 is explained.
More specifically, estimated man-hours of tasks “A” to “E” (i.e., G1 to G5 in
The graphs G1 to G6 are divided into areas “P” and “Q” representing modeling errors depending on methods for estimating man-hours of tasks “A” to “E” respectively, and an area “R” representing estimation error depending on an attribute of each worker. The graph shows estimated man-hours to complete each of tasks “A” to “E” and a series of tasks with a probability of 50% and those with 99% as well.
According to Example 4 explained above, estimation errors depending on experience and skill of workers who perform tasks “A” to “E” in addition to estimated man-hours of an entire project having a series of tasks can be graphically shown. These visual representations of man-hours of tasks A to E and an entire project having a series of tasks by separating modeling errors and estimation errors allow easier understanding of estimation results by a user.
As explained above, according to the man-hours estimation program, storage medium which stored the program, the man-hours estimation apparatus, and the method, accuracy to estimate man-hours of an entire project having a series of tasks can be improved by taking account of estimation errors depending on an attribute of a worker included in estimated man-hours of each task.
The methods to estimate man-hours explained in this embodiment can be realized by causing a computer such as a personal computer and a workstation to execute a prepared program. Such program is stored in a computer-readable storage medium such as a hard disk, a flexible disk, compact disc ROM (CD-ROM), magneto-optical (MO) disk, and digital versatile disk (DVD), and executed by a computer. The program may be transmission medium distributable through a network such as Internet.
As explained above, the man-hours estimation program, the storage medium which stored the program, the man-hours estimation apparatus and the method are advantageous when estimating man-hours of development having a plurality of development processes.
Although a few preferred embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2007-211760 | Aug 2007 | JP | national |