Есть проект, написанный на borland builder c++ 6.
Требуется переделать код под msvc 2015, т.е. по сути сделать рефакторинг.
Объем кода известен. Скажем, суммарно 3 Мб (это без ресурсов: иконок, картинок и т.п. - чисто код).
Подскажите, какие есть best practices для определения нижней границы стоимости рефакторинга (в любых единицах: человеко-часы, денежные единицы - что угодно).
Ответ
Эвристический алгоритм для одного разработчика
Пометка: допустим, что 3Mb это примерно 80т строк кода.
Начинаем делать рефакторинг и делаем его в течение, скажем, 4х часов.
Подсчитываем количество строк кода, которые удалось обработать за это время.
Делим это число на 4ч, получаем грубую оценку X строк за час.
Вычисляем общее количество часов, выполняя деление 80000/X, получив Y часов.
Полученное значение необходимо умножить на "коэффициент разработчика" примерно от 0.5 до 4, для того чтобы зарезервировать время на непредвиденные сложности. Т.е. допустим разработчик-оптимист оценил задачу на 10ч, а по факту вышло 25ч из которых 15ч ушло на непредвиденные сложности в процессе работы, то коэффициент был бы равен 2.5 для данной задачи.
Ну и к полученным в ходе данных вычислений часам, необходимо добавить ещё какой-то процент "на всякий пожарный", скажем 15% от полученного числа.
На примере
За 4ч скажем получилось обработать 250 строк.
250/4 ~~ 62стр/ч.
80000/62 ~~ 1290ч.
Пусть коэффициент будет 3. 1290ч * 3 = 3870ч.
И с 15% будет 4450.5ч.
4450.5ч - это примерно 111 человеко/недель, т.е. около 2-х человеко/лет.
Ну, а зная человеко-часы, вычислить денежные единицы - задача тривиальная.
Комментариев нет:
Отправить комментарий