Я делаю в 4-5 раз больше историй, чем в среднем, но делаю ошибки с половиной скорости. Графики говорят, что это в 2 раза больше ошибок, как с этим бороться?


43

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

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

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

  • Обратите внимание, что оба вышеприведенных утверждения взяты из Code Complete Стивом Макконнеллом - так что это не вопрос разных точек зрения.

Так что я начал видеть это недавно в моем коде. Я могу выработать примерно в 4-5 раз больше кода, чем многие мои коллеги (измеряются по баллам, оцененным командой), с более высоким качеством (на основе показателей производительности и количества изменений, внесенных после регистрации). Но я все еще делаю ошибки. Между улучшением модульных тестов, лучшим пониманием того, что делает код, и лучшими взглядами на проблемы при проверке кода, я не выдаю в 4-5 раз больше ошибок.

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

Я пытался указать, что я создаю ошибки вдвое меньше, чем мои коллеги (и исправляю в два раза больше), но это трудно продать, когда есть графики, говорящие, что я создаю вдвое больше ошибок.

Итак, как бороться с тем, что увеличение производительности приведет к увеличению количества ошибок?


27
Или просто помедленнее, чтобы вы могли сделать это правильно.
Брэндон

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

14
Я не совсем понимаю, почему наше сообщество празднует «скорость» больше, чем корректность. И я пишу «скорость» в кавычках, потому что если вам нужно вернуться, чтобы исправить вещи, то, возможно, это не настоящая «скорость». В конце концов, вам платят за доставку рабочего программного обеспечения. Если при написании кода быстрее, чем в среднем, вы создаете ошибки, будь то пропуски тестов или неправильное понимание требований, тогда вы уделяете некоторое время «свободному» и используете его для улучшения понимания тестов / требований (например, вы TDD?). Как говорит дядя Боб, «если хочешь идти быстро, иди хорошо».
Мишель Генрих

9
Способ исправить это, исправив метрики.
Роберт Харви

24
@MichelHenrich: Если он производит ошибки на половину скорости своих коллег, тогда скорость не проблема; Управление это проблема. Вы читаете эти глупые метрики так же, как его боссы.
Роберт Харви

Ответы:


41

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

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

Количество ошибок связано не с производительностью, а с размером проекта. Например, у вас могут быть Nошибки на Yстроки кода. В этой метрике нет ничего, что говорит (или волнует!), Как быстро пишутся эти строки кода.

Чтобы связать это вместе, если у вас более высокая производительность, да, вы «увидите», что ошибки пишутся быстрее. Но у вас все равно будет такое количество ошибок, поскольку оно связано с размером проекта.

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


Для решения более личных аспектов вашего вопроса.

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

Чтобы довести этот пример до крайности, скажите своему боссу, что я хочу удвоить вашу зарплату. Зачем? Я не создал абсолютно никаких ошибок в вашем проекте, и поэтому я намного превосходящий вас программист. Какая? У него будет проблема в том, что я не написал ни одной строки кода для вашего проекта? Ах. Теперь у нас есть понимание того, почему скорость важна.

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


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

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

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

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

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


43
«Измерение прогресса в программировании с помощью строк кода похоже на измерение прогресса в самолетостроении по весу». Билл Гейтс
Нейл

40
Хорошие программы могут на самом деле генерировать больше ошибок, чем средний программист - потому что хорошие программы, как правило, работают над более сложными проблемами.
hlovdal

4
Bugs / K линии или Bugs / Story Point будет справедливой скоростью. Я бы бегал так быстро, как мог, если бы босс хотел использовать количество ошибок в час в качестве ставки.
Барт ван Инген Шенау

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

4
«Во всяком случае, более высокая производительность означает, что у вас будет больше времени в конце проекта для поиска этих ошибок, или разработчик будет быстрее находить ошибки, которые они создали». - Я думаю, что это ложно и требует более тщательного анализа. Скажем так: если бы он тратил больше времени на каждую функцию, да, у него было бы меньше времени на устранение ошибок. Но было бы меньше ошибок, чтобы раздавить.
occulus

21

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

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

Но я не совсем копаю ваши утверждения, ведущие к вашему вопросу. И, возможно, ваш босс тоже нет.

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

В конце концов, если босс хочет более чистый код, дайте ему более чистый код.


4
+1. Я не знаю, почему у другого ответа столько голосов. Похоже, вы уже дали веские аргументы своему боссу, а он не слушает. Поэтому тратьте больше времени на тестирование и меньше на «освобождение» строк кода. Если это не хорошо, поменяй работу.
durron597

21

Я выйду на конечности и буду защитником дьявола. Это не значит, что я не сочувствую вашему положению, но моя симпатия вам не поможет. Итак, позвольте мне добавить к перспективе Филиппа :

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

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

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

Это для перспективы. Теперь, как вы решаете исправить эту разочаровывающую ситуацию, в которой вы находитесь?

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

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

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


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

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

1
@ nomen Да, но я согласен: люди должны это учитывать. Но они?
JvR

20

Предполагая, что вы будете производить то же «количество» кода, что и ваши коллеги, за 20% своего времени, вы могли бы потратить в 4 раза больше на настоящую отладку кода и его совершенствование, что снизило бы уровень ошибок. Тогда ты можешь назвать себя хорошим программистом.

Самый большой вопрос, почему вы кодируете в 5 раз больше, чем другие, вместо того, чтобы стремиться к качеству. Это то, что вам диктует ваше эго, или ваш босс заставляет вас?

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

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

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


11
OP поставляет 500% очков истории других членов команды с на 60% меньше дефектов на очко истории, и вы хотите изменить способ его работы?
Джастин

6
« Самый главный вопрос - почему вы кодируете в 5 раз больше, чем другие, вместо того, чтобы стремиться к качеству, [...] сосредотачиваете внимание на качестве, а не на скорости », - вы сделали мой день, чувак. Кто бы ни проголосовал за это: Пожалуйста, сделайте ваши основные математические домашние задания. Скажу прямо: я бы сразу нанял ОП и отказался бы вас нанять.
JensG

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

1
Я бы предпочел нанять кого-то, кто делает то, что просит его начальник, вместо того, чтобы жаловаться на это в Интернете. Иногда босс знает лучше.
Дауд говорит восстановить Монику

8

Разработчики могут быть умными, даже гениальными, со способностью понимать и кодировать соло, не будучи ХОРОШИМИ разработчиками. Хороший разработчик создает качественную работу и делает весь проект лучше.

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

Я хотел, чтобы он замедлил и провел больше времени: 1) Улучшение качества кодовой базы 2) Общение с командой 3) Работа над вещами, которые помогли другим, а также помогли ему закончить функции / истории 4) Исправление ошибки

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


1
Хороший вопрос. Я не согласен с добавлением комментариев (поскольку чем яснее, тем лучше читаемый код), и мы измеряем по сюжету не полные строки кода. Мне кажется, что я хорошо справляюсь с этим (обзоры кода помогают людям помочь мне разобраться), но +1, потому что, конечно, не все это делают.
Теластин

1
Я не хочу добавлять пух / шаблонные комментарии. Я только предположил, что вы похожи на большинство из нас, и не комментируете достаточно. Да, держитесь подальше от бесполезных комментариев, особенно модных ascii art, если только у них нет хорошего юмора :)
codenheim

4
По моему опыту, комментарии часто содержат ошибки.
Дауд говорит восстановить Монику

Не функциональный, измеримый вид ...
codenheim

6
@DavidWallace, в моем опыте код часто содержит ошибки. Это не значит, что ты перестаешь это писать.
Чарльз И. Грант

4

Попытка просвещения менеджмента не является началом. Есть старое клише: «Ты будешь верить мне или твоим лживым глазам?» Что касается ваших боссов, так это количество ошибок. Никакое количество рационализации не скажет им, что это приемлемо. Это более чем в два раза рискованно. Кроме того, вы не единственный, на кого повлияло количество ошибок. QA удваивает работу, пытаясь идентифицировать ваши ошибки, поэтому руководство будет хотеть, чтобы вы делали их меньше.

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

Как вы заявили, «… на число ошибок, допущенных в коде… обычно влияют процессы, используемые при написании кода и после его написания». Если вы хотите изменить частоту появления ошибок, вам придется изменить процессы, которые вы используете для написания кода.

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

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

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

  2. Выберите самую большую категорию ошибок. Так как ваш объем настолько высок, вы должны сначала нацелиться на эту категорию. Другие категории включают в себя те, которые легче найти, и те, которые легче всего сделать.

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

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

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


3

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

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

Помогите своим коллегам

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

1

Итак, как бороться с тем, что увеличение производительности приведет к увеличению количества ошибок?

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

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

Вам также необходимо учитывать следующие моменты:

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

0

Ситуация такова, что вы работаете в четыре раза быстрее, чем средний программист, но вы делаете в два раза больше ошибок за данный промежуток времени. Относительно объема работы, которую вы выполняете, вы фактически делаете ПОЛОВИНУ столько же ошибок, сколько и «в среднем».

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

Есть несколько боссов, которые не будут, потому что они работают с «допустимым» типом ошибок за раз. Тогда вы можете замедлить свой темп работы, выполняя ДВАЖДЫЙ объем работы в среднем за данное время, и делать те же (или меньше) ошибок, потому что у вас больше времени для проверки своей работы.


0

Если ваш начальник хочет, чтобы вы улучшили качество своей работы, то улучшите качество своей работы.

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


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

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

4
Я только сказал, что вы должны стремиться к нулевым ошибкам, а не к достижению этого. Подумай о стрельбе из лука. Я плохо разбираюсь в стрельбе из лука - я никогда не попадал в «10» в центре мишени. Должен ли я прицелиться в кольцо «7», потому что «10» будет слишком сложно?
Дауд говорит восстановить Монику

6
Да, но твой босс говорит, что твоя работа НЕ "достаточно хороша". Другими словами, вы должны сделать лучше. Вы не дали ни одной веской причины, почему вы не можете добиться большего успеха. Вся эта дискуссия звучит для меня, как будто кто-то пытается оправдаться за создание кода с ошибками. «Я в команде очень медленных разработчиков, и поэтому мне приходится делать в два раза больше ошибок, чем всем остальным». Пожалуйста!
Дауд говорит восстановить Монику

3
Каждый цикл выпуска, вы производите вдвое больше ошибок, чем ваши сверстники. Ошибки дорогие, чтобы их найти и исправить. Таким образом, ваш босс должен выделить ресурсы, чтобы устранить ваши ошибки; и это вдвое больше для ваших ошибок, чем для ошибок следующего парня. Поэтому ваш босс хочет, чтобы вы производили меньше ошибок, независимо от того, что делает остальная часть вашей команды. Возможно, он знает, что у вас больше опыта, чем у остальной команды, и поэтому вы должны быть в состоянии производить меньше ошибок. В любом случае, я не понимаю, почему вы будете жаловаться на наличие босса, который хочет, чтобы вы производили меньше ошибок.
Дауд говорит восстановить Монику

0

Вы должны сказать своему боссу, что метрики, которые он использует, довольно ошибочны. Если вы посмотрите на обороты охранников в НБА, вы обнаружите, что у них, как правило, больше чисел, чем у форвардов. Но это потому, что они больше обращаются с мячом. Если не стартующий защитник играет на 1/5 больше, чем стартовый, и переворачивает мяч в среднем 3 раза. стартовый защитник, который переворачивает мяч более 7 раз за игру - на первый взгляд может показаться, что стартовый защитник хуже. Но если вы поделите количество оборотов на количество сыгранных минут, то очевидно, что стартовый защитник имеет гораздо лучшие показатели в зависимости от сыгранных минут.

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

То, что я не думаю, что вы должны делать, это замедляться.


0

Мера добавленной стоимости

Утверждают, что на самом деле важна добавленная вами ценность. Затем перейдите к приблизительному (ручному) измерению этого:

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

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

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


-1

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

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


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

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

ИМХО, величие определяется многолетним послужным списком, и 90% живых разработчиков программного обеспечения никогда не имели возможности встретить великих. Я попытался обобщить свои впечатления от двух великих программистов, с которыми мне довелось работать. «Обычный» код означает: (а) одни и те же действия выполняются одинаковым образом во всем произведенном коде, (б) легко интерпретировать модификацию, и (в) это определенно противоположно «легко понять другим работающие программисты ... ».
zzz777
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.