19.01.2010, 10:08
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Оплата труда программиста
Навеяло темой.
А кто знает нормальные схемы оплаты труда программистов? Нормальные как для программиста, так и для работодателя.
Допустим, вы хотите нанять фрилансера, или ввести в своей фирме оплату за результат, по какой схеме вы будете работать?
1. Оплата за количество выполненных задач (для наёмного). Тут у программиста будет стимул как можно быстрее закрывать задачи, а не делать их качественно. В конце концов если обнаружится баг, это будет отдельной задачей. Правку багов не оплачивать тоже нельзя, т.к. их иначе никто не будет править, а они неизбежно будут при любом качестве.
2. Оплата за потраченное на задачу время (для фрилансера). Тут есть один затык: производительность труда программистов отличается иногда в 10 раз. Получается, если Вася пишет программы быстро и качественно, а Петя медленно и херово, то Вася получит значительно меньше. Не говоря ещё о затягивании сроков.
3. За количество написанных строк кода. По слухам индусская система оплаты Если опустить возможность написания кода, вида
if (x > 0) {
// ...
} else if (x <= 0) {
// ...
} else {
// Тут пишем, что душе угодно, чтобы на пиво хватило.
}
то получается, что программисты в данном случае мотивированы писать неоптимальный код, и никакого рефакторинга.
Больше схем оплаты за результат мне на ум не приходит. Собственно, я пришел к выводу, что для наёмного программиста по всем пунктам оптимален оклад, если он его устраивает, конечно. В этом случае он может просто программировать и не думать о деньгах, т.к. мысли о деньгах на программистов плохо влияют
Так какая у вас схема оплаты, как вы с ней живёте, и какая, на ваш взгляд, идеальная?
|
|
19.01.2010, 10:34
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
время от времени беру заказы на биржах фри-ланса
Беру деньги за готовый продукт.
В течении обычно семи дней после приема проекта, и получения денег, я предоставляю гарантийный срок, когда исправляю и модифицирую(если модификации незначительно отклоняются от ТЗ) скрипт, без дополнительных денежных вливаний
После этого срока, я оставляю за собой право брать деньги за правку багов и модификации скрипта, хотя обычно баги я правлю бесплатно(дело чести по отношению к своему продукту).
Оплата же обычно происходит по схеме:
Заказчик переводит всю сумму переводом по протекции с паролем, сроком до момента сдачи проекта + 7 дней
Таким образом я имею возможность спокойно работать, зная что получу эти деньги
Но и по другому получить оплату также возможно
|
|
19.01.2010, 10:40
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Не, в данном случае интересно, как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику (если он требует).
|
|
19.01.2010, 15:12
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
2. Оплата за потраченное на задачу время (для фрилансера).
|
Я бы еще добавил 4 пункт:
4. Оплата за сложность выполнения задачи vs срок (определяется программистом: сюда включается необходимое время и знания для выполнения, ведь каждую задачу можно выполнить лиж бы как и через левое ухо правой рукой)
Еще можно добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх срок (для справедливости)
Таким образом у программиста есть стимул сделать пораньше все и получить деньги + премию
Сообщение от Kolyaj
|
как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику
|
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.
Последний раз редактировалось PeaceCoder, 19.01.2010 в 15:14.
|
|
19.01.2010, 15:23
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от PeaceCoder
|
4. Оплата за сложность выполнения задачи vs срок (определяется программистом: сюда включается необходимое время и знания для выполнения, ведь каждую задачу можно выполнить лиж бы как и через левое ухо правой рукой)
|
А как вычисляется сложность? Возьмём некую гипотетическую задачу. Мне её выполнить сложно (я ни разу такого не делал), тебе легко, т.е. для меня эта задача сложная, для тебя простая, т.е. я получу за неё больше денег, чем ты, хотя сделаешь её лучше, очевидно, ты.
Сообщение от PeaceCoder
|
Еще можно добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх срок (для справедливости)
|
Тут тоже есть очень тонкий момент: сроки всегда должен назначать исполнитель, только он может знать, сколько он потратит времени на задачу. А если сроки будет назначать исполнитель, то премия теряет смысл -- он всегда будет называть слишком большие сроки.
Сообщение от PeaceCoder
|
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.
|
Правильно сказал-то, но топик о том, как он выясняет, сколько денег взять. Точнее даже будет сказать "Я беру деньги не за время, которое потратил на вашу задачу, а за время, которое потратил на предыдущие задачи."
|
|
19.01.2010, 15:32
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от Kolyaj
|
сроки всегда должен назначать исполнитель
|
тут ты ошибаешься. сроки и цену назначает заказчик. А исполнитель подстраивается под них и от сроков + сложность выполнения соглашается или назначает другую цену или продлевает сроки для такой цены. Естественно чаще бывает второе.
Если бы исполнитель назначал сроки, то и цену исполнения должен был бы назначать исполнитель, а заказчик подстраиваться под него. А такое бывает оочень редко.
Сообщение от Kolyaj
|
Мне её выполнить сложно (я ни разу такого не делал), тебе легко, т.е. для меня эта задача сложная, для тебя простая, т.е. я получу за неё больше денег, чем ты, хотя сделаешь её лучше, очевидно, ты.
|
А теперь разберем по полочкам. Для тебя сложная, а для меня легкая. Сроки в большенстве случаев остаются такими как требует заказчик.
Все задачи выполняются ~ одинаковыми способами, просто некоторые сразу прибегают к оптимизации другие это оставляют на второй план.
В моем случае я сделаю эту работу быстро и получу оплату + премию, в твоем случае ты получишь просто оплату. В итоге выигрываю все равно я.
П.С. Сравнение шло, если бы мы оба делали одну задачу в одни и те же сроки.
Сообщение от Kolyaj
|
Правильно сказал-то, но топик о том, как он выясняет, сколько денег взять.
|
Цена понятие растяжимое. Скажешь много - работы не будет. Скажешь мало - работать будешь вечно за копейки. Тут надо самому себе выяснить сколько стоит 1 час твоего потраченного времени и умножить это на коэффициент сложности. Сложность в свою очередь определяется частотой выполнения таких задач и от того как много людей знают как это сделать (для этого надо следить за рынком программирования)
Последний раз редактировалось PeaceCoder, 19.01.2010 в 15:45.
|
|
19.01.2010, 15:47
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Kolyaj
|
Не, в данном случае интересно, как вычисляется конкретная сумма, и как, в случае фриланса, она объясняется заказчику
|
Сообщение от PeaceCoder
|
Как один мне сказал - я беру деньги не за работу, а за свои знания. Я знаю как это сделать и сделать качественно.
|
90% моих заказов является написание парсеров и граберов(моралисты, если такие есть, идут лесом)
Соответственно у меня образовалась уже схема ценообразования.
так у меня есть минимальная цена, ниже которой я стороннему человеку не напишу даже выдирание title-ов, без многопоточности, и обхода защиты
многопоточность, использование прокси, авторизация, и другие стандартные фичи ведут к повышению цены.
в данном случае я беру не за работу, а за знания, так как этот функционал у меня частично реализован в заготовке и допиливается под каждую конкретную ситуацию
также повышение суммы может быть связано с видом ресурса, который грабится(грубо говоря при какой цене скрипта заказчику, он все еще окупится), и финансовым состоянием конкретного заказчика.
Если заказчик интересуется откуда ноги растут у цены, то я разбиваю суммарную сумму на основные фичи функциональности, и расписываю, сколько что из его пожеланий стоит.
Есть ситуации, когда я беру все-таки не за знания, а за работу. Когда знаний еще нету.
То есть если меня просят что-то что я делал мало, или вообще никогда не делал, то тут борятся два аспекта.
Из-за того что я этим не занимался, и мне придется выучить что-то новое(потратить время), и наступить на половину, а то и все грабли с которыми сталкивались остальные в этой области. и сделать это вместе с конечной программой надо в срок. Из-за этого я повышаю цену.
С другой же стороны, из-за того что я имею возможность освоить что-то новое, и применить сразу на практике(как результат у меня остаются знания и опыт), я готов снизить цену. Как правило это происходит, если это мне интересно.
Вот на балансе этих двух пунктов, и стою цену в новых для меня областях.
Сообщение от PeaceCoder
|
добавить оплату за высвободившееся время (если работа выполнена раньше сроков) или вычет за сверх сро
|
обычно не прошу. но если сделал раньше, и заказчик благодарен, намекаю ему, что спасибо в кружку не нальешь.
далеко не все готовы за сверхсроки платить дополнительно, просто потому что их вполне устраивают обговоренные сроки
но, один раз
|
|
19.01.2010, 16:01
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от PeaceCoder
|
тут ты ошибаешься. сроки и цену назначает заказчик. А исполнитель подстраивается под них и от сроков + сложность выполнения соглашается или назначает другую цену или продлевает сроки для такой цены. Естественно чаще бывает второе.
|
Ну вот видишь, ты сам говоришь, что заказчик лишь предлагает сроки, а назначает таки исполнитель. По другому просто быть не может. Заказчик не знает, сколько делается задача, он знает, сколько он готов подождать.
Сообщение от PeaceCoder
|
А теперь разберем по полочкам.
|
Так, а где на этих полочках зависимость от сложности? От скорости есть, от сложности нет.
Сообщение от PeaceCoder
|
Все задачи выполняются ~ одинаковыми способами
|
Задачи низкого уровня (написать функцию, модуль) выполняются одинаковыми способами, задачи высокого уровня (написать интернет-магазин) выполняются разными способами.
Сообщение от PeaceCoder
|
Цена понятие растяжимое.
|
Да нет, есть простое правило: "Товар стоит ровно столько, сколько за него готовы заплатить". Хотя я бы добавил "заплатить продавцу", т.к. один сможет продать товар за штуку баксов, а другой и за бакс не продаст.
Сообщение от Gvozd
|
90% моих заказов является написание парсеров и граберов
|
На nodejs получился бы отличный асинхронный многопоточный парсер
|
|
19.01.2010, 16:16
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от Kolyaj
|
На nodejs получился бы отличный асинхронный многопоточный парсер
|
возможно что и так, но я пишу их на PHP, и в ближайшее время эта ситуация не изменится потому что:
большинство хостингов заказчиков PHP-шные. также есть denwer
поставить же nodejs у себя на сервер(учитывая что у большинства все-таки нету возможности ставить свой софт), либо домашнем компе, для большинства заказчиков нетривиальная задача,и им проще найти исполнителя на PHP
более того в большинстве заказов изначально определяется язык разработки(PHP. Реже-Perl)
к тому же в Nodejs уже есть встроенный в язык полный DOM+XPath?
Если нет, то и речи нету о том чтобы переходить на него
В любом случае для PHP я уже выработал свой инструментарий для ассинхронности, который потихоньку дорабатываю
|
|
|
|