Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2010, 10:08
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Оплата труда программиста
Навеяло темой.

А кто знает нормальные схемы оплаты труда программистов? Нормальные как для программиста, так и для работодателя.

Допустим, вы хотите нанять фрилансера, или ввести в своей фирме оплату за результат, по какой схеме вы будете работать?

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

2. Оплата за потраченное на задачу время (для фрилансера). Тут есть один затык: производительность труда программистов отличается иногда в 10 раз. Получается, если Вася пишет программы быстро и качественно, а Петя медленно и херово, то Вася получит значительно меньше. Не говоря ещё о затягивании сроков.

3. За количество написанных строк кода. По слухам индусская система оплаты Если опустить возможность написания кода, вида
if (x > 0) {
    // ...
} else if (x <= 0) {
    // ...
} else {
    // Тут пишем, что душе угодно, чтобы на пиво хватило.
}
то получается, что программисты в данном случае мотивированы писать неоптимальный код, и никакого рефакторинга.

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

Так какая у вас схема оплаты, как вы с ней живёте, и какая, на ваш взгляд, идеальная?
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2010, 10:34
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

время от времени беру заказы на биржах фри-ланса
Беру деньги за готовый продукт.
В течении обычно семи дней после приема проекта, и получения денег, я предоставляю гарантийный срок, когда исправляю и модифицирую(если модификации незначительно отклоняются от ТЗ) скрипт, без дополнительных денежных вливаний
После этого срока, я оставляю за собой право брать деньги за правку багов и модификации скрипта, хотя обычно баги я правлю бесплатно(дело чести по отношению к своему продукту).
Оплата же обычно происходит по схеме:
Заказчик переводит всю сумму переводом по протекции с паролем, сроком до момента сдачи проекта + 7 дней
Таким образом я имею возможность спокойно работать, зная что получу эти деньги
Но и по другому получить оплату также возможно
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2010, 10:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Не, в данном случае интересно, как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику (если он требует).
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2010, 15:12
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Kolyaj
2. Оплата за потраченное на задачу время (для фрилансера).
Я бы еще добавил 4 пункт:
4. Оплата за сложность выполнения задачи vs срок (определяется программистом: сюда включается необходимое время и знания для выполнения, ведь каждую задачу можно выполнить лиж бы как и через левое ухо правой рукой)
Еще можно добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх срок (для справедливости)

Таким образом у программиста есть стимул сделать пораньше все и получить деньги + премию

Сообщение от Kolyaj
как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.

Последний раз редактировалось PeaceCoder, 19.01.2010 в 15:14.
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2010, 15:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от PeaceCoder
4. Оплата за сложность выполнения задачи vs срок (определяется программистом: сюда включается необходимое время и знания для выполнения, ведь каждую задачу можно выполнить лиж бы как и через левое ухо правой рукой)
А как вычисляется сложность? Возьмём некую гипотетическую задачу. Мне её выполнить сложно (я ни разу такого не делал), тебе легко, т.е. для меня эта задача сложная, для тебя простая, т.е. я получу за неё больше денег, чем ты, хотя сделаешь её лучше, очевидно, ты.

Сообщение от PeaceCoder
Еще можно добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх срок (для справедливости)
Тут тоже есть очень тонкий момент: сроки всегда должен назначать исполнитель, только он может знать, сколько он потратит времени на задачу. А если сроки будет назначать исполнитель, то премия теряет смысл -- он всегда будет называть слишком большие сроки.

Сообщение от PeaceCoder
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.
Правильно сказал-то, но топик о том, как он выясняет, сколько денег взять. Точнее даже будет сказать "Я беру деньги не за время, которое потратил на вашу задачу, а за время, которое потратил на предыдущие задачи."
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2010, 15:32
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

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

Сообщение от Kolyaj
Мне её выполнить сложно (я ни разу такого не делал), тебе легко, т.е. для меня эта задача сложная, для тебя простая, т.е. я получу за неё больше денег, чем ты, хотя сделаешь её лучше, очевидно, ты.
А теперь разберем по полочкам. Для тебя сложная, а для меня легкая. Сроки в большенстве случаев остаются такими как требует заказчик.
Все задачи выполняются ~ одинаковыми способами, просто некоторые сразу прибегают к оптимизации другие это оставляют на второй план.
В моем случае я сделаю эту работу быстро и получу оплату + премию, в твоем случае ты получишь просто оплату. В итоге выигрываю все равно я.


П.С. Сравнение шло, если бы мы оба делали одну задачу в одни и те же сроки.

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

Последний раз редактировалось PeaceCoder, 19.01.2010 в 15:45.
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2010, 15:47
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Kolyaj
Не, в данном случае интересно, как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику
Сообщение от PeaceCoder
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.
90% моих заказов является написание парсеров и граберов(моралисты, если такие есть, идут лесом)
Соответственно у меня образовалась уже схема ценообразования.
так у меня есть минимальная цена, ниже которой я стороннему человеку не напишу даже выдирание title-ов, без многопоточности, и обхода защиты
многопоточность, использование прокси, авторизация, и другие стандартные фичи ведут к повышению цены.
в данном случае я беру не за работу, а за знания, так как этот функционал у меня частично реализован в заготовке и допиливается под каждую конкретную ситуацию
также повышение суммы может быть связано с видом ресурса, который грабится(грубо говоря при какой цене скрипта заказчику, он все еще окупится), и финансовым состоянием конкретного заказчика.
Если заказчик интересуется откуда ноги растут у цены, то я разбиваю суммарную сумму на основные фичи функциональности, и расписываю, сколько что из его пожеланий стоит.

Есть ситуации, когда я беру все-таки не за знания, а за работу. Когда знаний еще нету.
То есть если меня просят что-то что я делал мало, или вообще никогда не делал, то тут борятся два аспекта.
Из-за того что я этим не занимался, и мне придется выучить что-то новое(потратить время), и наступить на половину, а то и все грабли с которыми сталкивались остальные в этой области. и сделать это вместе с конечной программой надо в срок. Из-за этого я повышаю цену.
С другой же стороны, из-за того что я имею возможность освоить что-то новое, и применить сразу на практике(как результат у меня остаются знания и опыт), я готов снизить цену. Как правило это происходит, если это мне интересно.
Вот на балансе этих двух пунктов, и стою цену в новых для меня областях.
Сообщение от PeaceCoder
добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх сро
обычно не прошу. но если сделал раньше, и заказчик благодарен, намекаю ему, что спасибо в кружку не нальешь.
далеко не все готовы за сверхсроки платить дополнительно, просто потому что их вполне устраивают обговоренные сроки
но, один раз
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2010, 16:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от PeaceCoder
тут ты ошибаешься. сроки и цену назначает заказчик. А исполнитель подстраивается под них и от сроков + сложность выполнения соглашается или назначает другую цену или продлевает сроки для такой цены. Естественно чаще бывает второе.
Ну вот видишь, ты сам говоришь, что заказчик лишь предлагает сроки, а назначает таки исполнитель. По другому просто быть не может. Заказчик не знает, сколько делается задача, он знает, сколько он готов подождать.

Сообщение от PeaceCoder
А теперь разберем по полочкам.
Так, а где на этих полочках зависимость от сложности? От скорости есть, от сложности нет.

Сообщение от PeaceCoder
Все задачи выполняются ~ одинаковыми способами
Задачи низкого уровня (написать функцию, модуль) выполняются одинаковыми способами, задачи высокого уровня (написать интернет-магазин) выполняются разными способами.

Сообщение от PeaceCoder
Цена понятие растяжимое.
Да нет, есть простое правило: "Товар стоит ровно столько, сколько за него готовы заплатить". Хотя я бы добавил "заплатить продавцу", т.к. один сможет продать товар за штуку баксов, а другой и за бакс не продаст.

Сообщение от Gvozd
90% моих заказов является написание парсеров и граберов
На nodejs получился бы отличный асинхронный многопоточный парсер
Ответить с цитированием
  #9 (permalink)  
Старый 19.01.2010, 16:16
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Kolyaj
На nodejs получился бы отличный асинхронный многопоточный парсер
возможно что и так, но я пишу их на PHP, и в ближайшее время эта ситуация не изменится потому что:
большинство хостингов заказчиков PHP-шные. также есть denwer
поставить же nodejs у себя на сервер(учитывая что у большинства все-таки нету возможности ставить свой софт), либо домашнем компе, для большинства заказчиков нетривиальная задача,и им проще найти исполнителя на PHP
более того в большинстве заказов изначально определяется язык разработки(PHP. Реже-Perl)
к тому же в Nodejs уже есть встроенный в язык полный DOM+XPath?
Если нет, то и речи нету о том чтобы переходить на него

В любом случае для PHP я уже выработал свой инструментарий для ассинхронности, который потихоньку дорабатываю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Завтра - День программиста! Tony177 Оффтопик 1 13.09.2009 03:57
Работа Web программиста rocket Работа 6 17.10.2008 13:49