Rating. Calculate and meet

Predictability of deadlines plays an important role in the development of IT projects. And due to the high complexity of the processes, the assessment of tasks is a difficult problem, which does not have an explicit algorithm or simple plan. This is compounded by the fact that in the process of communication about evaluations, business, project management and development can speak different languages, do not understand and do not want to understand each other's problems and values. The result is "unsubscribing" on which efforts are expended, but they do not bring the necessary effect. 

The article will be useful to developers who want to improve and make the evaluation process more comfortable for themselves. In it, I will share the developed approach, which allows us to increase mutual understanding with other units, as well as reduce the level of our own efforts for evaluation. We will analyze why we need estimates, how to evaluate large tasks and decomposed subtasks. And, most importantly, what to do to get into these assessments.

The video version of the presentation is available here .

Well, now to the point.

Why give grades


image

In the life of each developer, that unpleasant moment comes when “they” come to us and demand: “when will it be ready?”. “They” are managers, products, team leaders, bosses ... The question is, why is this “them”? What will “they” do with this? If we understand this, we can give them exactly what they need and save their time. There are several options, and here are the main ones.

  • The manager needs to evaluate the scope of work (delivery, release, sprint): the calendar schedule and their total volume. In this case, it is important to get into the overall assessment, getting into each specific task does not matter (somewhere spent more, somewhere less - generally agreed). In the future, the work of other departments is planned on this, and the indicators that the business manages depend on it. And business needs predictability: to reduce risks and improve manageability.
  • . , . /. , , (, , ) . : , - . , . .
  • ( ). , . , : , . , /, , ( ), . (, , ), .

Well, why did this "them" dismantled. But do we need this? Imagine that your manager went on vacation. Forever. And so you sit, work quietly, a day, two, a week. No one needs ratings, life is good. Will you evaluate yourself?

Giving them or not is a personal matter, but here are the arguments for it.

  • The assessment shows how to complete the task. The human brain is a costly thing, and a person does not like to think - it is difficult. Therefore, the natural desire to think as little as possible. But how to do it? You can divide the activity into a narrower one. We share planning and execution: first we think about the method (during evaluation), then we switch to execution and think about execution (in the process). 
  • , «» . , — . , () ( ) , . , - . 
  • — . — . , , . . , . 2 . 2 , -  , . . , , — . , , — . ( /), . , , : « , !!». , , . ? . «», , . , , — - .
  • The psychological effect. If the task is complex, it changes during the development process or our knowledge about it changes. If we did not give an initial assessment, the task in the process was overgrown with new details, and as a result we did not get there - we do not remember why. After several such iterations, the effect of an impostor knocks on the head. And if they had given an initial assessment, the reason would have been fixed: they thought that 5 parrots were needed, but it turned out 10. Why it turned out to be the second question, they remember it well. And the reason is not always (“Developers always do nothing” / “These products can’t think for nothing forever, and then it pops up”).

So, we decided: assessments are needed by both “us” and “them”. It makes sense to continue reading the article further.

Assessment purpose


It is useless to guess how long the task will take. You can’t guess exactly, and if you can, you won’t be able to reliably say this until you do it: so I guessed or didn’t guess it. And at this stage, no one is interested in the assessment.

So, an assessment is not an attempt to guess how long a task will take. Evaluation is an agreement between the customer and the contractor about the framework and (possibly) the way the task is performed .

Usually, an adequate business does not have a task to crush in a specific time frame; a business needs predictability and risk limitation. Time is characterized not by the programmer’s speed of work, but by the amount of work that he puts into the task. And you can also say hello to a colleague: if I get a task with an inadequate assessment, this is an occasion for me to think, are our methods exactly the same? Maybe he saw an easier way to solve? Or maybe on the contrary, didn’t notice something big? In any case, a reason to check the watch.

Assessment process


image

The basis of the assessment process is to see the value of the business task, as well as the main risks of the task and the volume of the routine. And then evaluate them, enclosing the framework: it is not known exactly what it is, but it is definitely greater than X and less than Y. And of course, we evaluate it with the accuracy with which it is necessary (because the exact estimate is expensive, and the brain is lazy). 

Task Composition:

  • - ( ). , . smoke-test . , , , « ». , ! — . , : « - , ».
  • , - , . «» -. , , ( , , , , ), — . 
  • . - , , - . , ( ). : , , , (, . — - . : ( , , : , , , , ), , , , ( ) , , zero-tolerance , , , -, . , (//), (//). 
  • Everything else .

The procedure for evaluating the epic


The scheme is born from the fact that any task can be done in any amount of time . The statement is exaggerated, of course, but as a whole reflects the essence. For example, a customer comes to me and says: “I want facebook. When will it be ready? ” The minimum time for solving such a problem that I managed to come up with is 15 minutes. I go to facebook, take a screenshot, make up a page with a screenshot picture, put it on my server. Satisfies the conditions of the problem. You can even improve the implementation: take not a picture, but make an iframe with facebook (although, as I expected, facebook already took care of this) Since the time evaluation determines the way to complete the task, you can reduce the time to complete any task by 2-3 times (it happens that by 5 times). It is funny that this empirical law constantly turns out to be checked in practice.

  1. We decompose the task into subtasks. The result is approximately the following picture (we call it the “Christmas tree"): horizontal assessment of tasks in time, vertical - priority.
    image
  2. We sort the subtasks by priority (first business value + “load”, then risky, then the rest in order of importance).

    image
  3. If the estimate needs to be reduced, we trim the problem from below. Why can we reduce: some of the risks worked and the swelling or business value was not quite the same as they were supposed to be - these are important things, and without them the task cannot be passed. It is necessary to fix it. Then we will be able to get into the assessment by doing the main parts of the task (depending on the failure, a larger or smaller part of the task will be done).

    image

Task Evaluation Process


Ok, the epic was decomposed. And how to evaluate the size of a specific task?

  • If we have already done exactly this task . We have statistics somewhere, how much time was spent on a similar task. If we didn’t do it, but a colleague, then we can take its result and multiply it by the coefficient of difference between it then and now (developer level, knowledge of the system, knowledge of risks). We climb into statistics, multiply - we get. 
  • . , . , 60%. , 60% , . , — , 1.5-2 .
  • . R&D. — , . — . (1, 2, 4 ), — . , , . , R&D, 1-2 , R&D . — R&D. - — , , . — N — - ( ). , — , . , , — .

:
  • , ( ) , , . , , .
  • Planning poker. , . : -, , , , -, , ,
  • (/ ), . . , . , , 70% .
  • PERT. , (-) 5 . .
    minrealmax
    <>28209

    — , , — , ( ), — , , ( ).
    :
    image

Coefficients 4 and 6 are taken, as I understand it, from the assumption that in the general case the probability of risk is distributed normally, and the tails (min / max) are equally probable.

The process of getting into grades


image

To give an assessment is half the battle. The most valuable thing is to get into this assessment. And the process of completing a task is an active process, on the participation in which the final result depends more than on a successfully guessed estimate at the very beginning. And adhere to a similar look in completely different areas. I saw a lot of cases when, after giving an assessment, the developer takes a passive position “well, where to go now - whatever happens”, folds his legs and goes with the flow. And now is the time to act.

Useful techniques on hit:

  • 6. : . — , - , . /, . ( «» - ). , , - . — . . ? N.
  • «».
  • , (- + ) — , . 30%.
  • .
  • , ( ) . ( ) — , . — , . — , . .
  • ( ). . , , , . , , . « » — 20-30%, 50. . ( ) , , , .


And for starters, there is the effect of straightening deadlines associated with task assessments. It is described in more detail, for example, here , and therefore I will not repeat it. As applied to evaluations, it has the consequence that it is necessary to evaluate tasks and monitor the hit, if it is important for us to complete by some time. Even if the task is small, and there is a lot of time before its delivery (as with the previously mentioned developer, overwhelmed with work, who did not like to give ratings). And if we do not represent exactly what the stock is (and we are guided by the fact that it is large and “the state will not become poor”), we get an uncontrolled excess of terms. And it doesn’t matter which buffer is laid: 2x, 5x, 100x - if you do not manage it, it will be eaten all the same.

Conclusion


Using this approach, developers can streamline and simplify the assessment process. And the forces will be spent less, and the stress will decrease, and the final result will be better. And also we can present less unpleasant surprises to “them”, and then we will find out that “they” began to speak the same language with “us”.

image

All Articles