Чи варто стягувати з клієнтів години, витрачені на неправильний шлях? [зачинено]


17

Я взявся за невеликий CSS-вирішення, який потрібно вирішити для клієнта, і мені будуть платити щогодини. Я врешті-решт вирішив це, зайняло 5 годин, але я витратив приблизно 25% часу на неправильну доріжку, спробувавши рішення CSS3, яке працювало лише в останніх браузерах, і, нарешті, виявив, що неможливість відключення через JS (як я вважав спочатку). Чи варто стягувати з клієнта 25%?

Більш детально: я не надав оцінку, мені сподобалось завдання, як таке, тому я почав працювати над ним, перш ніж давати оцінку (але я працював з ним раніше, тому знаю, що він не з тих людей, які мають нереалістичні очікування ). У найгіршому випадку я витратив 5 неоплачених годин на інтригуюче завдання CSS. І я дам справедливу можливу оцінку для нас обох, оскільки я вже зробив роботу. :)

Редагувати: Дякую всім, я б хотів прийняти більше, ніж одну відповідь! Я в кінцевому підсумку не виставляв йому рахунки за додаткові години (я виставив йому рахунок за 3 з половиною), але згадав про них, так що він знає, що я над цим працював більше, ніж за нього. Можливо, тому він негайно прийняв "оцінку" (яка в такому випадку не була оцінкою, звідси і цитати).


Яку первинну оцінку ви дали своєму клієнту?
JK

2
Ви сподіваєтесь на більше роботи від клієнта? Які стосунки ви хочете встановити?
Стів Джексон

@Jonathan: Дивіться мою
редакцію


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

Відповіді:


24

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

Загалом, у цих випадках я різнююсь між трьома ситуаціями:

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

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

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


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

1
@Lea Verou: коли я кажу про "середніх розробників", це дуже суб'єктивно. Це також залежить від вашого рівня та того, що ваш клієнт думає про ваш рівень. Якщо ваш клієнт знає, що ви найкращий з найкращих, і платить вам тисячі доларів на день, суб'єктивне "середнє" буде набагато вище, ніж якщо ваш клієнт вважає, що ви мавпа з кодом.
Арсеній Муренко

Ну, я говорю на великих конференціях про CSS, і він це знає :) Але я точно не заробляю тисячі доларів на день: p (чи є якийсь веб-розробник, який це робить?)
Леа Веру

4
Я б також врахував, яка ваша ставка. Якщо ваш показник дуже високий, то, як очікується, ви будете краще середнього, тому очевидний може означати набагато більше речей. Якщо ваш показник дуже низький, ви НЕ очікуєте, що ви будете вище середнього, менше речей очевидно.
Мартін Йорк

скопіювати та вставити коментар, який я зробив в іншому місці: час, витрачений на роботу / розмірковування / дослідження / оптимізацію проблеми, - це час, відпрацьований над проблемою. АЛЕ що щодо того, хто витрачає час на що-небудь, про що слід знати (за завданням, найнятим для) та / або вже вирішене (і це те, що просять). Іншими словами, немає виправдання для браку знань або просто поганої професійної роботи. Зауважте , що справжній професіонал може (і повинен) справді скласти переконливу справу про те, скільки часу було витрачено і чому
Нікос М.

33

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

ІМХО, це не той шлях. Це регулярна розробка програмного забезпечення.

Якби я був ти, я би зарядив цілих 4 години.


1
Мені подобається, як ти думаєш: p :)
Lea Verou

2
Я погоджуюся, що за своєю природою дослідження / дизайн - це сфера, де важливі навіть неправильні повороти. Демонстрація того, що щось не працює (і залишає слід), полегшує технічне обслуговування, оскільки наступний хлопець не намагатиметься це випробувати.
Матьє М.

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

8

Більшість програм, які ми пишемо, ми пишемо, тому що рішення не відразу, легко доступне. Практично все, що ми робимо, полягає у вивченні чогось нового. Клієнт не платив вам за товар. Він платив вам за те, як навчитися будувати продукт і давати вам результати (і якщо він сам називав це "викликом", він очікував, що ви чогось навчитеся). Дивіться "Вальсинг з ведмедями" Тома де Марко та Тімоті Лістера - "Якщо проект не має ризиків, не робіть цього".

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

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


Він не називав це викликом сам, він не мав уявлення, що це один. (хоча йому, мабуть, було важко вирішити це на аутсорсинг)
Леа Веру

Чи могли б користувачі, котрі проголосили коментарі, прокоментували, чому це знищується?
Lunivore

5

Іноді вирішення проблеми передбачає усунення субоптимальних рішень із набору розумних варіантів. Процес усунення - один із ваших інструментів вирішення проблем; Клієнт платить вам за рішення, і повинен очікувати, що ви використовуєте будь-які інструменти у вашому розпорядженні.

Це був би нерозумний клієнт, який очікує, що ви вмить запропонуєте найкраще рішення - пройшовши прямо від інструктажу проекту до вашої клавіатури, де ви випромінюєте швидкий і оптимальний потік коду, який не має зворотної простору. Що не означає, що таких клієнтів немає. У мене був замовник, який зателефонував в середині проекту, щоб переконатися, що він насправді платить лише за "програмування, а не налагодження". І звичайно, є клієнти (або начальники), для яких програмування є фізичним актом набору тексту.

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


2
Ненавиджу натрапляти на цих хлопців, у яких такий спосіб «програмування, а не налагодження». Наче письменник може просто почати записувати історію, не перечитуючи її та не вносячи змін. Це, мабуть, стало бідною історією, якби писати так :-).
Htbaa

5

ці питання змушують мене гаїти ...

якщо механік або адвокат витратили час на роботу над вашою справою / проблемою, ви можете зробити ставку на ваш $ $, що вам стягуватиме плату, навіть якщо вони витратили час на неправильну дорогу

програмістам потрібно більше цінувати свій час


Я погодився б (значить, +1) час, витрачений на роботу / мислення / дослідження / оптимізацію проблеми - це час, відпрацьований над проблемою. АЛЕ що щодо того, хто витрачає час на що-небудь, про що слід знати (за завданням, найнятим для) та / або вже вирішене (і це те, що просять). Іншими словами, це не привід для нестачі знань або просто поганої професійної роботи. Зауважте, що справжній професіонал може (і повинен) справді скласти переконливу справу про те, скільки часу було витрачено і чому
Нікос М.

5

Те, що ви робили, було абсолютно нормальним. Фред Брукс обговорює це явище у розділі «Навчання кинути геть» у своїй навчальній книзі з інженерії програмного забезпечення «Міфічна людина-місяць».

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


4

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

На вирішення проблеми може знадобитися 10 хвилин, але навчитися вирішувати цю проблему знадобилося 10 років. Це заслуговує на увагу. У той же час деякі з нас вважають здатність вчитися «на роботі» компенсації. Я часто довідаюсь речі, які насправді знаходяться на рахунку клієнта. Я вважаю це грошовою компенсацією.

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

Також на ваше запитання, чи є розробники, які заробляють тисячі доларів на день, відповідь - так. Ви повинні бути одним із них, теж зі своїми навичками. Я практично там, і я ніде не перебуваю в одній лізі з вами в CSS.


1
+1, ця відповідь сильно недоцільна. В обох найбільш проголосованих відповідях повністю пропущено пункт "що варто рішення для клієнта". Чорт забираємо, іноді ми стягуємо з клієнта 3 рази більше зусиль, які ми насправді мали, тому що це може бути все-таки дешевше для нього, ніж будь-яке рішення, яке він може отримати від конкурента.
Doc Brown

2

Це залежить від первісної угоди.

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


2

Якщо ви наймаєте адвоката, який може заперечити справу за вас, і він переграє його і програє вам, ви все одно оплатите їх рахунок.

Так роблять усі інші професії. Немає причини, чому програмісти повинні робити інакше.

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


1

Якщо це проект, який я спеціально взяв, щоб хтось платив мені, тоді як я навчав себе новій новій технології, я схильний робити це менше, ніж зазвичай витрачаю час. З іншого боку, ви не можете ставити занадто низькі ставки, інакше вони будуть запитати речі з цим клієнтом назавжди після цього ("Ей, повертайтеся, коли ви зробили це дуже здорово, ви платили набагато менше, ніж це!") В іншому випадку я не став ' t рахунок за час, коли я накрутився, і він закінчився занадто довго.

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


1

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

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

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

введіть тут опис зображення

... намагаючись перемогти майже 40-річного алгоритму підрозділу Catmull-Clark, який закріпився у цій галузі та неодноразово вдосконалювався такими компаніями, як Microsoft та Pixar, намагаючись забезпечити більш інтуїтивні результати, залишаючись настільки ж конкурентоспроможними, як і ці величезні компанії швидкість.

95% часу в таких випадках я йду неправильним маршрутом, постійно повертаюся до дошки після відмови після відмови. Якби я не міг звинуватити за свої невдачі, я вже був би бездомним. Більше половини моєї роботи я бачу як дослідження, коли ніхто ще не намагався цього робити, і я не можу просто знайти ідеальний підхід для вирішення рішення з першої спроби (можливо, 20-ї спроби). Для мене мета ніколи не була досягти успіху з першої спроби, але провалитися якомога швидше, при цьому кожен провал після невдачі давав певні підказки щодо того, що може бути правильним рішенням, яке насправді може змінити світ.

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

Непередбачуваність

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

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

Він говорить про вивчення нових речей, не працює над неправильним рішенням.

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


0

Це дійсно залежить від того, як ви запропонували проект та як проект підлягає оплаті.

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

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

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

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

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

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


-1

Щоб обійти це, я вважаю, що я думаю, що це був би поганий випадок, і цитую на основі погодинної оцінки того, що, на мою думку, повинно взяти з максимумом цитати, встановленим "поганим" випадком. Таким чином ми обидва переможці.


Мені це не дуже подобається, тому що клієнт завжди програє, якщо це не "поганий" випадок.
Леа Веру

є різниця між "поганим" випадком і "найгіршим" випадком. Якщо це найгірше, я приймаю збитки.
Дейв

Хм, хороший момент. Але все-таки, що робити, якщо це "хороший" випадок?
Леа Веру

то це за годиною. Я стягую з вас х суму за годину до години.
Дейв
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.