Подтвердить что ты не робот

Каковы наиболее полезные показатели разработки программного обеспечения?

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

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

4b9b3361

Ответ 2

Покрытие обратного кода

Получите процент кода, который не был выполнен во время теста. Это похоже на то, что сказал Шафа, но использование отличается. Если во время тестирования запускается строка кода, мы знаем, что она может быть протестирована. Но если строка кода не была запущена, мы точно знаем, что она не была проверена. Ориентация на эти области для модульного тестирования повысит качество и займет меньше времени, чем проверка кода, который был покрыт. В идеале вы можете сделать то и другое, но это никогда не произойдет.

Ответ 3

ROI.

Общая сумма дохода, приносимого программным обеспечением, за вычетом общей суммы затрат на производство программного обеспечения. Распределите затраты на проценты от общей стоимости и изолируйте свою самую бедную и самую дорогую область с точки зрения возврата инвестиций. Улучшите, автоматизируйте или устраните эту проблемную область, если это возможно. И наоборот, найдите свою самую высокую область возврата инвестиций и найдите способы еще более усилить ее последствия. Если 80% вашей рентабельности прибывает от 20% ваших затрат или усилий, расширьте эту конкретную область и минимизируйте остальное путем сравнения.

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

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

Ответ 4

"улучшите процесс разработки моих команд": "Поиск и исправление ошибок"

Это относится к числу дефектов или ошибок, возникших против количества исправлений, которые были зафиксированы или проверены.

Я бы сказал, что это одна из действительно важных показателей, потому что это дает вам две вещи:

1. Сбой кода. Сколько кода изменяется ежедневно/еженедельно (что важно, когда вы пытаетесь стабилизировать выпуск), и, 2. Показывает, есть ли дефекты перед исправлениями или наоборот. Это показывает, насколько хорошо команда разработчиков реагирует на дефекты, поднятые QA/тестерами.

Низкая фиксированная ставка указывает, что команда занята работой над другими вещами (возможно, функции). Если количество ошибок велико, вам может потребоваться, чтобы разработчики обратились к некоторым дефектам.
Низкая скорость поиска указывает на то, что ваше решение блестяще и почти без ошибок, или команда QA заблокирована или имеет другой фокус.

Ответ 5

Отслеживайте, сколько времени требуется для выполнения задачи с оценкой. Если они были в порядке, спросите, почему. Если они все кончены, спросите, почему.

Не делайте это негативной вещью, это прекрасно, если задачи выдуваются или были под оценкой. Ваша цель - постоянно совершенствовать процесс оценки.

Ответ 6

Скорость: количество функций за единицу времени.

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

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

Ответ 7

Отслеживать источник и тип найденных ошибок.

Источник ошибки представляет собой этап разработки, в котором была введена ошибка. (например, спецификация, дизайн, реализация и т.д.)

Тип ошибки - это широкий стиль ошибки. например. выделение памяти, неправильное условное.

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

Ответ 8

Отслеживать количество копий (похожих фрагментов кода) в исходном коде.

Избавьтесь от клонов путем рефакторинга кода, как только вы заметите клоны.

Ответ 9

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

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

Ответ 10

количество неудачных тестов или сломанных сборок за фиксацию.

Ответ 11

взаимозависимость между классами. насколько тесно связан ваш код.

Ответ 12

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

Это позволит вам определить, насколько эффективны процессы (процессы) проверки кода в терминах найденных ошибок.

Ответ 13

Если вы используете Scrum, отставание. Насколько велика она после каждого спринта? Сжимается ли она с постоянной скоростью? Или это то, что заталкивается в отставание из-за (а) материала, о котором не подумали начать ( "Нам нужен другой вариант использования для отчета аудита, о котором никто не думает, я просто добавлю его в отставание." ) или (б) не получать вещи и вставлять их в отставание, чтобы встретить дату, а не обещанные функции.

Ответ 14

http://cccc.sourceforge.net/

Вентиляторы и вентиляторы - мои любимые.

Вентилятор в: Сколько других модулей/классов использует/знает этот модуль

Отключен: Сколько других модулей использует этот модуль/know

Ответ 15

улучшить оценки времени

В то время как Джоэл Спольский, основанный на фактических данных, не является метрикой, это похоже на то, что вы хотите. См. http://www.joelonsoftware.com/items/2007/10/26.html

Ответ 16

количество похожих строк. (копировать/вставлять код)

Ответ 17

улучшить процесс разработки программ для моих команд

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

Иными словами, скорее всего, вы бы имели 100% -ное покрытие кода и паршивые модульные тесты или фантастические модульные тесты, 80% покрытия?

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

Ответ 18

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

Вот несколько показателей: Оценки/vs/действительны на уровне проекта и личном уровне (см. предыдущую ссылку на метод Joel Evidence),% дефектов, удаленных при выпуске (см. мой блог: http://redrockresearch.org/?p=58), ползучесть/месяц области и общий рейтинг производительности (индекс производительности Putnam). Кроме того, пропускная способность разработчиков хороша для измерения.

Ответ 19

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

Рассматривайте это как упражнение по вечному самосовершенствованию.

Ответ 20

Мне особенно нравится и использую систему, что Mary Poppendieck рекомендует. Эта система основана на трех целостных измерениях, которые должны приниматься как пакет (так что нет, я не собираюсь давать 3 ответа):

  • Время цикла
    • От концепции продукта до первого выпуска или
    • От запроса функции до развертывания функции или
    • От обнаружения ошибок до разрешения
  • Реализация бизнес-процесса (без этого все остальное не имеет значения)
    • P & L или
    • ROI или
    • Цель инвестиций
  • Удовлетворенность клиентов

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

Ответ 21

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

Ответ 22

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

Существуют и другие показатели, которые могут принести большую пользу бизнес-аспектам программного обеспечения, что очень важно при просмотре общего представления о качестве программного обеспечения. Они могут быть широко классифицированы на:

  • Потребности бета-пользователей, захваченных бизнес-аналитиками, специалистами по маркетингу и продажам
  • Требования конечного пользователя, определенные командой управления продуктом.
  • Обеспечение доступности программного обеспечения при максимальных нагрузках и способность программного обеспечения интегрироваться с корпоративными ИТ-системами.
  • Поддержка транзакций с большими объемами.
  • Аспекты безопасности в зависимости от отрасли, в которой работает программное обеспечение.
  • Наличие обязательных и приятных функций по сравнению с конкурентами
  • И еще несколько...

Ответ 23

Процент покрытия кода

Ответ 24

Если вы используете Scrum, вы хотите знать, как каждый день Scrum пошел. Люди делают то, что они сказали, что они сделают?

Лично я плохо себя чувствую. Я хронически пробегаю по своим ежедневным газетам.

Ответ 25

Возможно, вы можете протестировать CodeHealer

CodeHealer выполняет углубленный анализ исходного кода, ищет проблемы в следующих областях:

  • Аудит. Правила контроля качества, такие как неиспользуемый или недоступный код, использование имен директив и ключевые слова как идентификаторы, идентификаторы скрыть других с тем же именем на более высокий объем и т.д.
  • Проверки Потенциальные ошибки, такие как неинициализированные или неопубликованные идентификаторы, литье опасных типов, автоматическое преобразование типов, undefined возвращаемые значения функции, неиспользованные назначенные значения и т.д.
  • Показатели Количественная оценка свойств кода, таких как циклические сложность, связь между объектами (Объединение абстракции данных), комментарий отношение, количество классов, строки кода и т.д.

Ответ 26

Записывается размер и частота контроля источника.