Чи доцільно в описі завдань розробника мати "ключові вихідні дані" без помилок? [зачинено]


10

У рамках огляду всіх посадових інструкцій моя компанія вирішила включити наступне як ключовий результат:

Розробка веб-сайтів завершена вчасно, в межах специфікації та без помилок

Зважаючи на те, що технічні характеристики регулярно змінюються, офіційного процесу контролю за змінами не існує, і оточення є, скажімо так, трохи непередбачуваними, наскільки реалістичним і розумним є цей КПІ?


20
Зовсім нереально. Це, ймовірно, написав хтось, хто працював із занадто великою кількістю поганих розробників. Але це також може бути виною поганого управління. Недостатньо наданої інформації.
Марк Канлас

11
Розробник, який приходить із "записом коду без помилок" у своє резюме, буде досить смішним, щоб відповідати позиції.
P.Brian.Mackey

12
Єдиний код, для якого можна довести, що немає помилок і досягти своєї мети - це порожня база коду, яка вимагає нічого не робити.
unholysampler

8
pfft ... схоже на застереження козлів відпущення, щоб люди могли легко. "Вибачте, ви не дотрималися вашої трудової угоди ... ми звільнимо вас без попередження чи додаткової причини. Tootles."
Стівен Еверс

5
Звичайно, це без помилок. Компілятор говорить: 0 помилок, 0 попереджень. Це повністю відповідає вимогам роботи :-)
Ферруччо

Відповіді:


21

"Помилка без помилок" є занадто суб'єктивною . "Неповнений запит на функцію" одного чоловіка - це "Помилка" іншого чоловіка. Щось на кшталт "Має суттєво відповідати дизайнерським специфікаціям" було б більш доречним. Я ніколи не бачив того, що ви описуєте в описі вакансії. Я бачив це за контрактною роботою , але не для працівників.


9

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

Чи буде завершена вся розробка вчасно? Звичайно, не завжди, не завжди.

Чи буде завершена вся розробка в рамках специфікації? Ви б хотіли сподіватися на це, але іноді це буде просто неможливо, і вам доведеться позначити відхилення від неможливої ​​або суперечливої ​​специфікації.

І чи буде вся розробка помилкою? Ніколи .

Але саме для цього є KPI. Це те, що можна виміряти і за допомогою чого можна відстежувати ефективність та прогрес.

Якщо технічні характеристики регулярно змінюються, немає офіційного процесу контролю за змінами, а оточення є непередбачуваним, тоді це завдання буде тримати цю цифру близькою до "без помилок". Але це завдання - це ваша робота , і це робота, яку, сподіваємось, ви зробите непогано - а ще краще в наступному році, оскільки ви отримаєте більше практики в управлінні власним особливим ароматом хаосу.

Противідповідальне запитання: які KPI ви б запропонували програмісту? Це важкий. Багато того, що ми робимо, важко виміряти.


4
Базу коду будь-якого значного розміру практично неможливо гарантувати як "без помилок", оскільки може статися помилка, яку ви просто не знайшли. Також, що таке помилка? Жук? Як це вимірюється?
philosodad

1
@philosodad - це якось моя думка. Це не буде помилкою . Але якщо в цьому році x помилок знайдені в написаному вами коді, а наступного року x-4 , ви покращили свій KPI. Що стосується помилки, це справді питання вашої організації, і, без сумніву, той, який викличе деякі аргументи повторно "помилка" проти "недокументована вимога" проти "змінена вимога" проти "різниця думок".
Carson63000

3
@ Carson63000: але це моя суть! КПІ, який гарантовано викликає кілька аргументів, призводить до неминучих розбіжностей між сторонами, і невизначено визначає ключовий показник, принаймні, проблематичний. Для прикладу, якщо "помилка" є суб'єктивним заходом, передбачувано, що менеджери визначатимуть помилки, щоб вони виглядали краще, тому для всіх буде знижена частота помилок для точно такої ж продуктивності. Але новий менеджер може визначити його вгору, а потім вниз, щоб показати, як вони «покращували» той самий точний вихід.
philosodad

3
Бажано мати ціль без критичних помилок (визначити критичну). Або покращити показник помилок. А ще краще, що цей матеріал повинен бути орієнтованим на щорічну оцінку ефективності, а не частиною посадової інструкції.
quick_now

3
КПІ передбачає ціль, яка не тільки не може бути досягнута, але також може бути перевищена. Ви використовуєте це для вимірювання того, що ви робите гірше чи краще, ніж ціль KPI. Я не бачу, як можна перевищити "без помилок". Тому, навіть якщо він задуманий як КПІ, він є недоліком. Кращим КПІ було б виміряти кількість несправностей, тестові звіти, подані проти написаного вами коду, що призвели до фактичних змін коду тощо.
Мар'ян Венема

4

Якщо це посадова інструкція, то я б не переживав про це, оскільки робота над кодом без помилок є частиною типової роботи програміста (навіть якщо ми її ніколи не зможемо досягти).

Однак як KPI це занадто далеко, але не звинувачуйте того, хто запропонував це, якщо вони не програмісти. Просто поясніть, що це твердження ставить мету, яка може бути небажаною для організації. Тобто, "без помилок" - це надзвичайно високий стандарт для програмного забезпечення, яке фактично коштувало б цілого статку. Поясніть, що добре запущений програмний проект вимагає прийняття рішень про те, чи варто на кожен дефект витрачати цінний час розробника.

Ось приклад, який гарно говорить.
Програміст виявляє, що наше програмне забезпечення має помилку "3000 років" і воно перестане функціонувати після 31,2999 року. На вирішення проблеми піде 6-8 місяців. На основі КПІ рекомендується брати участь у цьому проекті, не маючи реальної цінності для компанії.

Гаразд, такий приклад є трохи крайнім, але в будь-якому програмному проекті буде виявлено буквально десятки маленьких дефектів, які аналогічно не генерують рентабельність інвестицій, необхідну для їх виправлення. Якщо KPI замість цього мав на увазі, що програміст ніколи не вводить дефект в першу чергу, чи здається розумним, щоб будь-який працівник дотримувався норми ніколи не помилявся у виконанні своєї роботи?


Навряд чи у вас буде KPI, який охоплював "виправлення дефектів, які, як вважає керівництво, не є проблемою, і не потребують їх виправлення".
Carson63000

@Carson - не в деяких великих компаніях, яких я знаю. Нерозумні цілі є частиною їхнього способу ведення бізнесу.
quick_now

3

Ні

Це не тільки не підходить, це смішно

Тестування може лише довести наявність помилок, а не їх відсутність, тому кожна програма, написана в рамках цього завдання, повинна містити суворий доказ коректності ... та 100% покриття тесту

"Остерігайтеся помилок у наведеному вище коді. Я лише довів це правильно, а не пробував." - Д. Кнут

КПІ - це показник успіху та прогресу до досягнення мети. Вони не є двійковим перемикачем "код без помилок = успіх, одна єдина помилка = помилка, вас звільняють!"
Carson63000

@Carson: "без помилок" - це не KPI, це фантазія.
Стівен А. Лоу

1
Звучить мені, як зшивання. Покладіть щось нерозумне в СД, тоді, коли потрібне виправдання, людину можуть звільнити, бо вони не виконують так, як цього вимагає СД.
quick_now

3

Звичайно, це завдання кожного програміста і відповідальність - писати код, який не містить помилок. Це цілком розумні очікування. Як ви можете бути професійним програмістом, якщо випускаєте код, який не працює? Як ви можете вважати себе професійним програмістом, якщо випускаєте код, який ви не знаєте, працює?

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

Програмісти люблять звинувачувати всіх інших у своїх помилках. "У моїй програмі є помилки через вимоги, або через графік, або через те, що Місяць знаходиться у 8-му будинку", але насправді ніхто більше не винен. Якщо у вашій програмі є помилки, ви ставите їх там.

Наша професія ніколи не буде професією, поки програмісти не зрозуміють, що долар зупиняється на них. Що вони відповідають за якість своїх програм.

Чи знаєте ви, чому компанії створили відділи програмного забезпечення QA? Тому що програмісти не робили своєї роботи! Програмісти випускали стільки лайна, що компаніям довелося формувати цілі нові відділи, щоб перевірити їх.

Скільки часу існує список помилок? Це професійно мати тисячі помилок у базі даних про помилки? Досить чітко це не так. Це відображення поганої поведінки, поганої дисципліни і, чесно кажучи, безчестя.

Ми ніколи не будемо професією, поки не зрозуміємо, що це наша робота - переконатися, що QA нічого не знаходить.


+1, але я хотів би вважати вільну помилку як особисту мету, а не реальність. Всі ми повинні зробити це, але якщо не буде надано нескінченних ресурсів, ми не потрапимо туди, принаймні, не зважаючи на те, як зараз розробляємо програмне забезпечення.
rjnilsson

Я не міг сильніше погодитися з настроями дядька Боба. Це дуже питання професіоналізму.
Johnsyweb

1
Ця позиція дещо ускладнюється тим, що моєму керівництву абсолютно зрозуміло, що вони вважають за краще, щоб я зараз їм передав помилкове програмне забезпечення, а не правильне програмне забезпечення. Я не думаю, що я самотній, опинившись у цій ситуації.
Том Андерсон

3

На жаль, це просто звучить як спосіб для них "охопити всі основи", і явно не рекомендується і, ймовірно, просто породжує розчарування у розробників.

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


З огляду на моє поточне робоче середовище, я б дуже підозріло ставився до того, як вони застосовуватимуть це формулювання
Phil.Wheeler

2

"Без помилок", як у "ідеально?" Як у "написаному Богом та ангелами, а не людьми?" (ми говоримо тут про програмно-логічну та, можливо, помилки апаратно-логічної)

Я не можу правдиво сказати навіть про один єдиний рядок коду, що це без помилок. Це тому, що ми, люди, ну, ми не можемо довести жодних негативних гіпотез!

Найкраще, що я можу сказати, - це те, що ймовірність помилки - це число від 0 до 1. Я досягаю цього числа за допомогою чітко визначених та неправильно визначених та добре зрозумілих або погано зрозумілих принципів розробки та тестування програмного забезпечення; за підрахунком відповідних ліній програмного забезпечення; розуміючи, наскільки добре чи погано я кандидат, поганий мут, застосовує ці принципи при створенні цих рядків коду; і більше.

І я можу висловити це розуміння лише як вірогідність. Отже, термін "логіка без помилок" означає майже нічого.

Якщо я побачив рекламу інженера-програміста, який створив код "без помилок", я б або подав заявку відразу, або біг би відразу: компанія не дуже замислювалася над тим, як вона розробляє, тестує та постачає своє програмне забезпечення . Тож це буде або чудова можливість, або нескінченний кошмар.

З будь-якого програмного забезпечення, проте, я можу легко - і мушу - сказати, що я очікую коду, який не має помилок, які не виходять за межі цього похмурого, мутного, логічного вигляду: код, що компілює та посилається без помилок чи попереджень; що є "дійсним html" або "дійсним css"; JavaScript (скажімо), який не генерує незрозумілих повідомлень про помилки чи помилок браузера. Цю частину я можу виміряти прямо і позначити чорно-білим кольором на графіку.

Ця частина проста як пиріг. Будь людина може зробити що .

Привіт, удачі у вашому пошуку :-)


1

Я дурний, чи "помилка" не означає "фатальне повідомлення компілятора, що становить некомпільований код"?

За цим визначенням, це дуже розумна вимога ...


1
Правда. Неправильне вирівнювання тексту у нижньому колонтитулі сторінки може бути помилкою, але це, звичайно, не в тому ж класі помилок, як те, що запобігає завантаженню сторінки та виправляє помилки виконання часу користувачеві.
FrustratedWithFormsDesigner

У веб-розробці "помилка" може означати багато речей. Відображення неправильних цін на всі ваші товари може вважатися головною помилкою, але це не обов'язково заважатиме запускати щось, і воно може не повідомляти про будь-які проблеми в журналах сервера.
Саймон Б

За чотири роки з часу написання цього коментаря я зробив пекло набагато більше веб-розробок і повністю згоден - хоча незвично, я збираюся стояти за свою відповідь 4 роки тому і кажу, що я намагався зробити те , що визначення «помилка» є довільним, і (дуже) вибери визначення є розумним вимогою.
Кріс Браун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.