Кто-нибудь использует методы оценки программного обеспечения в своих исследованиях вычислительной науки?

11

На работе я по сути функционирую как независимый консультант. Для руководства и клиентов мне нужно оценить, сколько времени потребуется на разработку программного обеспечения в рамках моих исследований в области вычислительной техники. Тем не менее, мои оценки времени, как правило, выключены. Я знаю, что существуют методы, позволяющие оценить время, необходимое для разработки программного обеспечения. Дадут ли эти методы точные оценки для исследовательских задач? Они даже полезны в исследовательской среде? Если это не так, есть ли лучший способ, чем «вести учет и соответственно пересматривать оценки»?

Джефф Оксберри
источник
1
Принимая во внимание разницу порядка самых ярких и не очень ярких программистов, повторное использование существующих наборов данных не приведет к тому, что ваши оценки будут волшебным образом соответствовать реальности. Однако вы можете пройтись по вашим предыдущим проектам и собрать данные о сложности, а также выполнить пару простых регрессий. Исследования отличаются от других видов деятельности тем, что существует значительный риск попадания в кирпичную стену несколько раз ... Постройте поля, относящиеся к относительной новизне вашего проекта, и используйте закон Мерфи, чтобы скорректировать свой собственный оптимизм.
Охотник на оленей
4
В предыдущей карьере в качестве разработчика программного обеспечения я регулярно делал подобные оценки для четко определенных проектов. Если проект был достаточно завершен и не было значительных технических рисков, это работало достаточно хорошо. Однако тот вид разработки программного обеспечения, который я делаю сейчас, - это действительно больше исследований, чем разработка программного обеспечения - возникают серьезные вопросы о том, сработает ли идея, и все время возникают неожиданные проблемы.
Брайан Борчерс

Ответы:

1

В большинстве случаев исследования у вас нет доступа к профессиональным программистам с относительно одинаковым уровнем квалификации, время которого вы можете диктовать. Скорее, у вас есть опытные программисты (возможно, постдоки, возможно, преподаватели) и аспиранты с небольшим опытом программирования и совсем без опыта в отношении крупных проектов. Кроме того, у всех этих действующих лиц есть множество других обязанностей (преподавание, обучение, рецензирование документов, заседание в комитетах), которые сильно меняются во времени. Как следствие, я думаю, что будет очень трудно иметь точные оценки. Конечно, по моему опыту, «это займет больше времени, чем я думал».

Вольфганг Бангерт
источник
Вы правы по всем этим вопросам в общем случае. Мне было любопытно, потому что в моем случае я часто являюсь единственным, кто работает над кодированием (самое большее, один или два других человека также делают кодирование в том же проекте, но обычно над не связанными или независимыми задачами). Кроме того, из-за того, что моя работа похожа на работу консультанта, я с большой уверенностью знаю, сколько времени я могу уделять тому или иному проекту в неделю, что значительно снижает неопределенность.
Джефф Оксберри