Как вы можете оценить время для задач, которые в основном состоят из выяснения проблемы?

Хотя это довольно возможно для опытного разработчика, чтобы оценить, сколько времени потребуется, чтобы выполнить код, когда рисунок и проблема код решения хорошо понимал, как вы можете сделать хорошую оценку, когда, в то время как конечная цель это хорошо понимал, реализации составляет 95% от теоретической/решения проблем и имеет очень небольшие суммы реализации?

Моя работа часто состоит из задач для достижения четко определенных целей, однако я должен найти путь, чтобы достичь этой цели, и пока я не понимаю решение, это i6sn'т ясно, что дополнительные барьеры могут быть. Более конкретно, я'м часто работают на создание кода или автоматизированные инструменты для работы с кодом. Как только раствор полностью решена и инструмент усовершенствовали, он будет непосредственно делать 95% от фактического изменения очень быстро. Я Дон'т, однако, есть ли способ, чтобы оценить, сколько дополнительных вопросов может быть решен, чтобы сделать или инструмент анализа интернет-поколение с непредсказуемыми крайние случаи.

Для целей планирования, моя компания хочет лучше понять, как долго он будет принимать, но так как я Дон'т знаю, сколько дополнительные проблемы могут возникнуть во время работы путем решения на каждом шаге решения. Я'м не уверен, как я могу подход дает более точную оценку.

Комментарии к вопросу (8)

Прежде чем я получаю слишком далеко, позвольте мне сказать, что оценка программного обеспечения: прояснение черная магия является отличным ресурсом для людей смотришь и думаешь о оценок. Оба приведенные ниже картинки из этой книги, как и основных, если идеи, изложенные ниже.

Как вы'вэ отметил, оценок важную роль в будучи в состоянии точно прогнозировать и планировать работу. Не имея оценки делает бизнес слепого о том, как долго что-то возьмет. Это не редкость для бизнеса, имеют совершенно ошибочное представление о том, как долго вещи будут брать - они думают, что это легко уходит от шести до восьми недель и, как считается, трудно в пятницу вечером рубить.

В первую очередь нужно дать оценку. Оценка сама по себе является не одно число - это обязательство. "Как долго АВС примешь" --> "около 5 дней" не означает, что его около 5 дней. Однако, хорошая оценка-это диапазон, в котором вы на 90% уверены, что вы будете иметь его в этом диапазоне. Если вы имеете в виду, чтобы сказать: "Я на 90% уверен, что это займет betwene 1 и 5 дней" тогда говорят, что. Дон'т работать с "Я думаю, что это займет от 1 до 10 дней, так что 5 дней-это, наверное, про среднюю-то" - это не оценка, и вы'll быть неправильно 50% времени.

Ну, 50% или больше времени, программисты известны underestimators для раз задач.

Рассмотрим конус неопределенности:

<суп><суб>изображения с http://www.construx.com - Полная статья в http://www.construx.com/Thought_Leadership/Books/The_Cone_of_Uncertainty/ </суб></SUP и ГТ;

Понимаю, что первая оценка в этом диапазоне 16х. Это сродни: "Я думаю, что это займет от дня и две недели на" - но вы не'т еще не знаю. Как вы идете вперед с дизайном немного, диапазон сужается до 4х. Это **** не означает, что оно займет не одну неделю, это означает, что вы бы вместо того, чтобы быть сказать "и посмотрев на это немного, это займет от трех недель" и - да, смета выросла, но и диапазон оценки пошли вниз.

С каждой оценки вы даете, вы должны быть на 90% уверен, что оценка в этом диапазоне. Вы можете быть неправы - 10% времени он будет выпадать из этого диапазона.

Есть много способы оценки размера проектов. Сравнивая его с прошлыми проектами, используя прокси-сервер (я думаю, что это займет 1000 строчек кода займет столько времени, чтобы писать), используя функции точки (для преобразования в ЛОК...), получать оценки от количества людей и затем уточняя ее итеративно... некоторые работы по некоторым проектам, некоторые работы по другим проектам.

Очень важную главу в этой книге, которую я упомянул в топ #23, который занимается политика оценки и решения менеджеров и руководителей.

Ключ к оценке-это итерационный процесс ее переработки отработав на ней немного.

Давать слишком точные оценки слишком рано в процессе может быть очень подвержен ошибкам. Если вы еще'т забудьте об этом, дать оценку, а затем вернуться с другой оценить, через какой-то промежуток времени для более интроспекции в проблему и, возможно, набрасывать, как вы будете делать это, глядя на то, сколько кода ты написал за последние аналогичная проблема и другие факторы, которые повлияют на оценку.


Оценки требуют некоторые мысли - Дон'т дать с оценками манжеты. Они часто имеют огромный ошибки, связанные с ними по сравнению с тем что происходит, когда вы думаете об этом немного.

От https://softwareengineering.stackexchange.com/questions/648/how-to-respond-when-you-are-asked-for-an-estimate/716#716

что сказать, когда попросил оценить

вы говорите "Я'll получить обратно к вам.&и"

вы почти всегда получите лучшие результаты, если вы замедлить этот процесс и провести некоторое время за действия, которые мы описали в этом разделе. Оценки, приведенные в кофе-машину (например, кофе) вернуться к преследовать вас.

Из главы 4 оценки программного обеспечения:

Обратите внимание, что в этом смета после небольшой комментарий систематически менее дикие и подвержено ошибкам, чем от оценки манжеты. Дон'т делать с оценками манжеты. Сесть и подумать о задаче и оценить его после немного думал об этом.

Комментарии (2)

босс: дя, у нас есть 3 собаки, 2 кролика, катапульты, и монахиня. Мы должны найти способ, чтобы получить все 7 (да, катапульты тоже) за 20-метровую стену и в озеро на другую сторону без собаки едят кроликов, и без утопления монахиня. Сколько времени тебе потребуется, чтобы придумать решение?

Видишь ли, проблема оценки, сколько времени потребуется, чтобы решить проблему заключается в том, что он берет разных людей разное количество времени. Если у тебя есть опыт решения подобных проблем, вы можете оценить, основываясь на том, как долго он взял тебя в раз. Если вы Don'т, затем вы'повторно не оценивая, вы'повторно только гадать.

Кроме того, проблема может даже не иметь приемлемого решения. Или, возможно, решение будет требовать дополнительного разрешения, которые могли бы скинуть весь проект. Или, возможно, решение меняет весь воспринимаемый характер проблемы такой, что решение становится совершенно ненужной.

Мораль сей басни такова, если вы не'т иметь достаточно информации, чтобы сделать разумные оценки, то Дон'т. Пока нет. Получить более подробную информацию. Исследования более. Как правило, это'ы совершенно ОК, чтобы сказать: "Я'll получить обратно к вам в течение 2 дней с некоторыми более солидные цифры.&и"

При разработке решений для меня клиент, я выиграл'т подписать контракт, пока у меня не достаточно общего дизайна полным, что я знаю, какое решение будет выглядеть и сколько времени займет проект. Это означает, что я'м на риск сделав начальные проектные работы, что я Дон'т вам оплатили (если проект не'т пройти), но, что's лучше, чем быть в опасности, существенно под-выставление счетов за проделанную работу.

Комментарии (3)

Я хотел бы предложить вам попробовать что-то посередине между ответами tylerl и MichaelT со следующим:

  • разделить работу в 3 или 4 этапа. Фазы должны быть:
  1. Анализ проблемы
  2. Прототипирование решение
  3. Реальный мир решение
  4. Оценка результатов (тест)
  • дать оценку только для Фазы 1 (анализ) исходя из вашего опыта, или по этапам 1+2 (анализ + прототип) для управления. Затем, дать им оценку фазы 3+4, когда проблема этапы 1 и 2 проводятся (или, по крайней мере, достаточно продвинутый, так что вы можете быть уверены в своей оценке).

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

Это не может быть именно то, что руководство хочет, но я думаю, это's всегда лучше прийти с оценками, которые вы сможете встретить.

Комментарии (1)

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

Первый вопрос, который я задавала себе, эта проблема может быть решена? Это не интеллект или проблему питания мозга, но одно из практической реальности. Если вы находитесь в мире снимков Гугл Луны, где провал вполне ожидаемый результат, суровая действительность заключается в том, что меня будут ждать это, что это оказывается. Грубое эмпирическое правило, кажется, мы уже знаем, что 90% раствора должен быть?

Второй вопрос, который я хотел задать, Что еще было бы полезно знать на обдумывание решения? Это действительно способ двойной проверки на мы действительно знаем достаточно, чтобы придумать решение, которое будет приемлемым. Это может вызвать ряд фактов задачи, которые помогают лучше определить, какое решение должно быть, каждый из которых, как правило, довольно легко определить и оценить.

Третий вопрос: кто лучше всего подходит по команде для такого рода проблемы? Тот, кто получает эту задачу будет насыщать исход с собственным стилем. Давая такого рода проблема программиста, который имеет 10 миллионов вопросы в начале задачи, и потом уходит и подает что-то первый раз (хотя и медленно) может быть лучшим выбором, чем отдать его программисту, который строчит реализации быстро, но когда там's не проблема, его открыли только в конце процесса.

Затем, актуальная задача будет думать о возможных решениях, реализации и подходы, и имеют фиксированный масштаб времени, в котором они должны отчитаться.

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

Комментарии (0)

С researchy вопросы, где он'ы неясно, что есть ответ на все, пусть только четкое представление того, что должно быть сделано, я обычно предлагаю провести энное количество времени на это, как начать.

"Я понятия не имею, если это вообще возможно, но я мог бы потратить два дня его исследовании. Что, вероятно, выиграл'т дать нам решение, но, может быть, я'll быть в состоянии, чтобы исключить некоторые вещи и я'будете, вероятно, иметь представление, какие конкретные дальнейшие шаги могут быть и какие инвестиции они будут значить. Тогда мы сможем решить, есть ли смысл сделать еще один шаг.&и"

Так что ставьте неопределенность в другом направлении -- оценка красиво точной (Я'будете провести два дня), это's просто очень неконкретное, что должно быть достигнуто к тому времени.

Timeboxing, в основном.

Комментарии (0)