Как часть обзора всех должностных инструкций, моя компания решила включить следующее в качестве ключевого результата:
Разработка сайта завершена в срок, в пределах спецификации и без ошибок
Учитывая, что спецификации меняются регулярно, формального процесса контроля изменений не существует, и среды, скажем так, немного непредсказуемы, насколько реалистичным и разумным является этот KPI?
terminology
Phil.Wheeler
источник
источник
Ответы:
«Ошибка без ошибок» слишком субъективна . «Незаполненный запрос функции» одного человека - это «Ошибка» другого человека. Что-то вроде «Должно существенно соответствовать спецификациям дизайна» было бы более уместным. Я никогда не видел то, что вы описываете в описании работы. Я видел это для контрактной работы , но не для сотрудников.
источник
Я возьму противоположную позицию для большинства ответов и скажу, что это абсолютно разумно и реалистично.
Все ли разработки будут завершены вовремя? Конечно, не всегда.
Все ли разработки будут завершены в рамках спецификации? Вы хотели бы на это надеяться, но иногда это просто невозможно, и вам придется пометить отклонение от невозможной или противоречивой спецификации.
И все ли разработки будут безошибочными? Никогда .
Но для этого и нужен KPI. Это то, что можно измерить и с помощью которого вы можете отслеживать производительность и прогресс.
Если спецификации регулярно меняются, формальный процесс управления изменениями отсутствует, а среды непредсказуемы, тогда будет сложно сохранить этот показатель близким к «безошибочному». Но эта задача - ваша работа , и это работа, которую, надеюсь, вы сделаете весьма неплохо - и даже лучше в следующем году, поскольку у вас будет больше практики в управлении собственным хаосом вашей компании.
Встречный вопрос: какие KPI вы бы предложили программисту? Это сложный вопрос. Многое из того, что мы делаем, сложно измерить.
источник
Если это описание работы, то я бы не стал сильно беспокоиться об этом, поскольку работа над кодом без ошибок является частью типичной работы программиста (даже если мы никогда не сможем этого достичь).
Тем не менее, как KPI это слишком далеко, но не вините человека, который предложил это, если они не программисты. Просто объясните, что это утверждение ставит цель, которая может быть нежелательной для организации. То есть «безошибочное» является чрезвычайно высоким стандартом для программного обеспечения, которое фактически стоило бы целого состояния. Объясните, что для хорошо работающего программного проекта необходимо принять решение о том, стоит ли тратить время на разработку каждого дефекта.
Вот пример, который делает это замечательно.
Программист обнаруживает, что наше программное обеспечение имеет ошибку «год 3000» и перестает функционировать после 31 декабря 1999 года. Решение проблемы займет 6-8 месяцев. На основании KPI рекомендуется взяться за этот проект, несмотря на то, что он не имеет реальной ценности для компании.
Итак, этот пример немного экстремален, но в любом программном проекте будут обнаружены буквально десятки небольших дефектов, которые также не генерируют ROI, требуемый для их исправления. Если вместо этого KPI предполагал, что программист никогда не вводит дефект в первую очередь, то представляется ли разумным, чтобы ЛЮБОЙ сотрудник придерживался стандарта, не допускающего ошибок при выполнении своей работы?
источник
нет
Мало того, что это не уместно, это смешно
Тестирование может только доказать наличие ошибок, но не их отсутствие, поэтому каждая программа, написанная в рамках этого задания, должна включать строгое доказательство правильности ... и 100% тестовое покрытие
источник
Конечно, работа и ответственность каждого программиста заключается в написании кода, который не содержит ошибок. Это вполне разумное ожидание. Как вы можете быть профессиональным программистом, если выпускаете код, который не работает? Как вы можете считать себя профессиональным программистом, если выпускаете код, который вы не знаете, работает?
Если вы нанимаете художника, вы ожидаете, что он хорошо выполнит свою работу. Вы ожидаете, что результат его работы будет безошибочным. Если есть ошибки, вы ожидаете, что он возьмет на себя ответственность за эти ошибки и исправит их бесплатно. Более того, если ошибки стоят вам денег, вы ожидаете, что он возместит вам. Почему у вас такие ожидания? Потому что художник профессионал.
Программисты любят обвинять всех остальных в своих ошибках. «В моей программе есть ошибки из-за требований, или из-за графика, или из-за того, что Луна находится в 8-м доме» Но на самом деле больше некого винить. Если в вашей программе есть ошибки, вы их помещаете туда.
Наша профессия никогда не будет профессией, пока программисты не поймут, что доллар с ними останавливается. Именно они несут ответственность за качество своих программ.
Знаете ли вы, почему компании создали отделы Software QA? Потому что программисты не делали свою работу! Программисты выпускали столько дерьма, что компаниям приходилось создавать целые новые отделы, чтобы проверять их.
Как долго это список ошибок? Профессионально иметь тысячи ошибок в базе данных ошибок? Совершенно ясно, что это не так. Это отражение плохого поведения, плохой дисциплины и, честно говоря, бесчестия.
Мы никогда не будем профессией, пока не поймем, что наша работа - убедиться, что QA ничего не находит.
источник
К сожалению, для них это звучит как способ «охватить все основы», и это явно не рекомендуется и, скорее всего, вызовет разочарование у разработчиков.
Однако, сказав это, это действительно имеет значение, только когда вы увидите, что они делают с этим текстом в течение периода обзора. Так что не слишком быстро реагируйте - в конце туннеля все еще может быть здравомыслие.
источник
«Безошибочно» как в «безупречном?» Как в «написано Богом и ангелами, а не людьми?» (мы говорим здесь о программно-логических и, возможно, аппаратно-логических ошибках)
Я не могу честно сказать даже о одной единственной строке кода, что она без ошибок. Это потому что мы, люди, ну, мы не можем доказать никаких негативных гипотез!
Лучшее, что я могу сказать, это то, что вероятность ошибки - это число от 0 до 1. Я достигаю этого числа с помощью хорошо или плохо определенных и хорошо или плохо понятых принципов разработки и тестирования программного обеспечения; по количеству рассматриваемых строк исходного программного обеспечения; понимая, насколько хорошо или плохо я кандидат, бедняга, применяет эти принципы при создании этих строк кода; и более.
И я могу выразить это понимание только как вероятность. Таким образом, термин «логика без ошибок» означает почти ничего.
Если бы я увидел объявление для инженера-программиста, который произвел «безошибочный» код, я бы либо сразу применил, либо сразу бы запустил: компания не особо задумывалась о том, как она разрабатывает, тестирует и поставляет свое программное обеспечение. , Так что это будет либо отличная возможность, либо бесконечный кошмар.
Из любого программного обеспечения, хотя, я могу легко - и нужно - сказать , что я ожидаю код , который не имеет никаких ошибок , которые попадают за пределы , что Sucky, мутной, логико-еу вещи: код , который компилирует и ссылки без ошибок и предупреждений; это «действительный HTML» или «действительный CSS»; JavaScript (скажем), который не генерирует необъяснимых сообщений об ошибках или ошибках браузера. Эту часть я могу измерить прямо и отметить черным по белому на графике.
Эта часть проста, как пирог. Любой может сделать это .
Привет, удачи в поиске :-)
источник
Я глуп, или «ошибка» не означает «фатальное сообщение компилятора, равное некомпилируемому коду»?
По этому определению это очень разумное требование ...
источник