Трудозатраты в SonarCube


#1

Кто может подсказать на основании каких данных Сонар выставляет трудозатраты по тех. долгу? У него есть какая то статистика или что?


#2

Формула простая

  • есть X правил - на каждое правило X(n) установлена норма времени на исправление в минутах
  • к проекту примняются правила и получается список замечаний, отсюда
ТехническийДолг = 0;

Для каждого Замечание из Проект.СписокЗамечаний Цикл
    ТехническийДолг = ТехническийДолг + Замечание.Правило.НормаВремени;
КонецЦикла

Сообщить("Вы должны своему проекту" + ТехническийДолг/60/24 + " человекодней");

Диграмма сгорания технического долга строится просто

Версия git (sha коммита) Технический долг
dasdasdasd 15 человекодней
rwerewrwrw 17 человекодней
fdsfsdfsfsf 0 человекодней

Статистика хранится за все время пока анализировался проект.


#3

Это значения является константами или же как то может изменяться организацией эксплуатирующей сервис сонара? Откуда вообще взялось первоначальное значение?


#4

Придумал автор правила и выставил. Соответственно все вопросы к автору правила, а правила у нас из любого плагина, а плагины имеют автора.

Норма времени задаётся внутри исходного кода, если ты не согласен - пиши автору или пиши другое правило со своими плагинами.

Пример из публичного - https://github.com/racodond/sonar-gherkin-plugin/blob/master/gherkin-checks/src/main/java/org/sonar/gherkin/checks/AllStepTypesInScenarioCheck.java#L39

То есть ГОСТа на норму времени исправления бага в общем случае нет. Применительно к 1С у нас на ИТС нет нормы времени, поэтому при разработке были применены наши эмпирические знания.

То есть это прописывается внутри исходника и наверх (пользователю) не выводится в общем случае.

В этом есть смысл - чтобы не хитрили и не меняли такие константы, а исправляли замечания или исключали правило.


#5

Спасибо! теперь все понятно.