What is the best way to make estimates without spending a lot of time?

Background

My current team is currently in the “bug fixing and polishing” phase of sending the main rewrite. We still have a large stack of bugs to fix, planned for a couple of steps. We were asked to come up with estimates of how much engineering effort is required to correct errors for each milestone.

For the previous steps, we performed the following process:

  • Assign errors to those people who know the most about this area of ​​the code and are likely to correct the error.
  • Ask each person to go through the errors that are assigned to them and evaluate how long they think they will need to fix the errors, with granularity at the hour level. If the error looks like it may take more than a day or two to fix, they break the error into probable subtasks and evaluate them.
  • The total amount of work assigned to each person for each milestone, and try to balance the situation if people have radically different amounts of work.
  • Multiply each person by each milestone using the "fill factor" to account for overly optimistic estimates (we used 1.5).
  • Take the largest amount among the team members for this version and make the team manage to close existing errors.
  • , , , , , , , . . , , .

( ), .

, , . , , , (.. 1 , ).

( ). , , " " , , , . , , , .

, , ?

, :

  • - , :)
  • , - , , .
  • . JIRA, , , FogBugz (BTW, - JIRA, ).
+5
10

: .

, , . , , !

. , , , , .

, , , ... , .

+7
  • .

1. , .

2. - , , .

...

, .

, , , , , .

, , , , , .

, , , .

, , , , 1,2,4,8,16 32 .

(, ) , , , , , . , , , .

+5

:

estimate=(bugs/devs)xdays (xK)

. 1 . , , , "K" , .

.

+3

, . - . , . , , , , . , , 1,5-2 , , , , 2-14 , , . , , . , . , , , . .

, , , .

+2

" ", .

+2

:

* 3 =

, . . - , . -, .

, - ( , ), Google Function Point Analysis, " " " ".

, PDF , . , , .

, !

+2
public static class Time
    {
        /// <summary>
        /// Estimates the hours.
        /// </summary>
        /// <param name="NumberPulledFromAss">The number pulled from ass.</param>
        /// <param name="Priority">The priority.</param>
        /// <param name="Complexity">The complexity.</param>
        /// <returns>
        ///  a number in hours to estimate the time to complete a task.
        /// Hey,  you will be wrong anyway why waste more time than you need?
        /// </returns>
        public static int EstimateHours(int NumberPulledFromAss, int Priority, int Complexity)
        {
            var rand = new Random(NumberPulledFromAss);
            var baseGuess = rand.Next(1, NumberPulledFromAss);
            return (baseGuess + (Priority * Complexity)) * 2;
        }
    }
+1

, , . , , . , / .

  • .
  • .
  • - .

, .

+1
+1

, .

0

All Articles