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

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

Я изучаю некоторые способы измерения производительности команды разработчиков программного обеспечения. Полезно ли использовать инструмент построения? Мы используем Hudson как инструмент автоматической сборки. Интересно, могу ли я взять информацию из отчетов Гудзона и получить от нее прогресс каждого из программистов.

4b9b3361

Ответ 1

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

Ответ 2

Основная проблема с такими показателями производительности заключается в том, что люди ОЧЕНЬ хорошо разбираются в любой системе, которая измеряет собственную производительность, чтобы максимизировать эту точную метрику производительности - обычно за счет чего-то полезного.

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

  • Линии кода (разработчики просто изгоняют горы шаблона кода и другие ненужные перенастройки или просто просто строят каждый проклятый метод).
  • Unit test сбои (не пишите никаких модульных тестов, затем они не будут прерываться)
  • Unit test охват (напишите слабые тесты, которые выполняют код, но не проверяют его правильно)
  • Количество ошибок, найденных в их коде (не делайте никакого кодирования, тогда вы не получите ошибок)
  • Исправлено количество исправленных ошибок (выберите простые/тривиальные ошибки для работы)
  • Фактическое время для завершения задачи, основанной на их собственной оценке (оценка выше, чтобы дать больше места)

И это продолжается.

Дело в том, что независимо от того, что вы измеряете, люди (а не только программисты) очень хорошо подходят для оптимизации именно этой вещи.

Итак, как вы должны смотреть на производительность своих разработчиков? Ну, это тяжело. И это включает в себя людей-менеджеров, которые хорошо понимают людей (и BS они тянут), и могут смотреть на каждого человека субъективно в контексте того, кто/где/что они должны выяснить, если они делают хорошую работу или нет.

То, что вы делаете, когда вы выяснили, кто/не выполняет, - это совсем другой вопрос.

(Я не могу взять на себя ответственность за эту линию мышления. Первоначально это был Джоэл Спольский. Здесь и здесь)

Ответ 3

Нет.

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

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

Это трудно сделать правильно. Программное решение не будет работать.

Ответ 4

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

  • Комментарии к обзору кода. В каждом проекте мы можем решить, что количество обзоров кода должно проводиться в течение определенного периода времени. Основываясь на обзорах кода, люди получают замечания об улучшении стандартных стандартов кодирования. Необходимо обратить внимание на повторяющиеся вопросы пересмотра кода одного и того же кода. Вы можете использовать автоматические проверки кода или ручные обзоры кода.
  • Тестирование и полнота тестов. - Затраченное% необходимо решить заранее, и если определенный разработчик не пытается его часто делать, его необходимо позаботиться.
  • Готовность войти в сложные задачи и обеспечить их без особого труда.
  • Достижение того, что определено как "Готово" в истории пользователя.
  • Уровень мастерства каждой технической области.

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

Ответ 5

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

Ответ 6

Говоря о KPI в разработчиках программного обеспечения. www.smartKPIs.com может быть хорошим ресурсом для вас. Он содержит удобную для пользователя библиотеку хорошо документированных показателей производительности. На данный момент в нем перечислены более 3300 примеров KPI, сгруппированных в 73 функциональных областях, а также 83 отраслей и подкатегорий.

Примеры KPI для разработчиков программного обеспечения доступны на этой странице www.smartKPIs.com - разработка приложений Они включают, но не ограничиваются:

  • Эффективность удаления дефектов
  • Резервирование данных

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

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

Ответ 7

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

Ответ 8

Не сокращайте или не смотрите быстрые и легкие способы измерения производительности/прогресса разработчиков. На выходе разработчика есть много факторов. Я видел много людей, которые пробовали разные показатели...

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

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

Ответ 9

Проверьте, сколько строк записано в каждом коде.

Затем огонь внизу 70%. НЕТ 90%!... КАЖДЫЙ ДЕНЬ!

(для людей, которые не уверены, ДА, я шучу. Серьезный ответ здесь)

Ответ 10

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

Ответ 11

Мы получаем 360 отзывов от всех в команде. Если все члены вашей команды думают, что вы дерьмо, тогда вы, вероятно, находитесь.

Ответ 12

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

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

Возьмем, к примеру, набор инструментов для миграции force.com, так как этот инструмент оказался отличным в управлении. Инструмент управления выпуском должен обеспечивать оптимальную видимость и подотчетность в управлении.

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

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

Изменения, которые должны произойти с системой Salesforce, могут быть очень сложными, и поэтому регулярное общение между бизнесом и ИТ - это хорошо. Это поможет определить наилучшие изменения в системе, которые принесут пользу бизнесу. Рассматривая стоимость и ценность реализации функции, руководящий комитет должен решить наиболее важные изменения характеристик.  Здесь также хорошие исследования http://intersog.com/blog/tech-tips/how-to-manage-millennials-on-software-development-teams

Ответ 13

Это старый вопрос, но все же вы можете сделать что-то, что вы можете сделать: Velocity от Agile Software Development, где вы назначаете вес каждая задача, а затем вы вычисляете, сколько "веса" вы решаете в каждом спринте (или итерации или любом другом DLC, который вы используете). Разумеется, это связано с тем фактом, что, как упоминалось ранее комментатором, вам необходимо активно следить за тем, работают ли ваши разработчики или беседуют в Интернете.

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

В конечном счете, использование KPIs вместе со скоростью может дать вам информацию о производительности для разработчиков (или для каждой команды).

Ответ 14

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

Теперь вы можете использовать такие показатели, как% выполненных проектов вовремя,% отбраковки по мере завершения кода и т.д.... это широкое поле.

Вот пример:

60% критических ошибок были написаны Джо. Это простая, простая метрика. Огонь Джо, правильно?

Но подождите, там еще!

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

Показатели - плохое измерение разработчиков.

Ответ 15

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

В каждом проекте я хотел бы развлечь команду в обсуждении требований проекта и привлечь их, чтобы все знали, что делать. В том же обсуждении посредством совместной работы мы разбивали проекты на задачи и оценивали эти задачи. Теперь мы оценили бы завершение проекта как 100%, когда каждая задача имеет процентный вклад. Хорошо, что это работало некоторое время, но не было лучшим решением. Теперь мы поставили задачу по весу или точкам точнее и использовали относительные измерения для сравнения задачи и, например, дифференцировали веса. Существует требование разработать веб-форму для сбора пользовательских данных. Задача будет выглядеть как

 1. User Interface - 2 Points
 2. Database CRUD  - 5 Points
 3. Validation     - 4 Points
 4. Design (css)   - 3 Points

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

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

Помните, не отслеживайте KPI сами по себе, проследите за ним, чтобы понять.