?

Log in

No account? Create an account
Main

Темная сторона фриланса

На хабре народ все обсуждает, как фринлансеру не отвлекаться на окружающий мир, не читать хабра, жж и за счет этого не срывать сроки.

Ценности в этом обсуждении не много, только показывает, что проблема существует. Сколько не закрывай себе ЖЖ, мозг физиологически не может быть постоянно в концентрации. Будет искать как отдохнуть как-то еще. Например будет просто тупить.


Единственный инструмент, который я для себя нашел, чтобы хоть как-то смотреть за сроками и их оценкой, это банальный таймер. Задача-отведенное время-реальное время. Результаты депрессивны. реальное время сильно отличается от отведенного, даже больше чем классическое π порой.

Однако заказчик, видит (если видит) только предполагаемое отведенное время. То, что оно начинает уезжать его не волнует. И это проблема. Платить за неучтенное дополнительное время никто не хочет.

Как пишет Александр Орлов при работе заказчика напрямую с исполнителем, в отличие от корпоративной среды, где действующих лиц больше и добавляются интересы далекие от выполнения проекта, имеется простая и прямая война интересов. А именно Заказчик хочет дешево и быстро, а исполнитель... ну да, вы угадали, -- прямо противоположного -- дорого и медленно. Ну т.е. может он этого сознательно и не хочет, но по крайней мере это ему выгодно. Ну и собственно это и является высоким риском фриланс-проектов. Цена покрывает только предположительные трудозатраты, совершенное не покрывая риски, а остальное "кто-то должен заплатить, и этот кто-то -- не я".

Кроме риска с оценкой времени программиста, есть еще один риск -- незначительная задача, значительно съедающая ресурс. Незначительная она опять же с точки зрения заказчика, который "не понимает в чем трудность". Приведу два примера:

Сергей Чикуёнок, От простого к сложному

Новая функциональность не добавлена. Просто контрол стал удобным. Однако там в конце есть объем кода до и объем кода после. Естественное чувство заказчика (это не его вина, как человека, это естественный ход мысли для этой роли) это хотеть того, что "после", а платить за то, что "до".

Второй пример мой собственный. Имеется каталог яхт. Все дела, -- локации и прочие связи один-ко-многим, произвольное количество привязанных к объекту картинок, пагинация, форма поиска, все это на двух языках. Все здорово, но есть одно "незначительное пожелание".

Давайте сделаем, чтобы цены были не только в евро, но в произвольной валюте, курс будем брать с центробанка (там xml раздают), надо, чтобы при этом сортировка по цене работала корректно, в форме поиска можно было бы выбрать валюту, в поле поиска по цене диапазоны цен у каждой валюты свои, т.е. при изменении должны подгружаться правильные диапазоны. Тоже самое сделаем и для поиска по длине -- искать будем  в футах и метрах.

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

забавное от vovney :


Comments

> Такое, что стыдно сказать, засмеют коллеги -- это ты вот это делал целый день, -- пора "вон из профессии".

- Доктор, помогите мне, я не могу заниматься сексом больше двух раз в неделю.
- Батенька, да ведь вам семьдесят лет!
- Но вот мой сосед говорит, что делает это каждый день, а ему аж семдесят пять.
- Ну так и вы говорите!
> Цена покрывает только предположительные трудозатраты, совершенное не покрывая риски

Что говорит не столько о жадности заказчика, сколько о непонимании исполнителем базовых принципов управления рисками. В итоге выходит как в анекдоте: "теоретически у нас есть два миллиона, а практически - две б...ди и старый п...с".
я бы не поленился пошел посмотреть на того, кто на этом диком рынке вебразработки умеет во-первых правильно оценить, во-вторых это продать, и в третьих на этом заработать прибыль. Прямо бы вот был бы видео курс, купил бы и смотрел до посинения.

Если бы это была компутерная игра, то наверное было бы интересно играть параметрами и смотреть во во сколько раз надо закладываться на риски и в каких областях, какими инструментами эти риски оцениваются, то же со сроками и кто это сможет купить. Вот действительно идея для Software Development Tycoon
Вы этим живёте на протяжении более чем пяти лет? Значит можете посмотреть на себя. ;) Если, конечно, подразумевается не идеальная правильность, а разумно достаточная - раз не прогорели, значит ставки покрывают риски. Впрочем, окончательные бабки можно подбить (по Марксу) только после появления внуков, типа хватило на воспроизводство рабсилы или нет. :)
можно на ты? мы ровесники кажется.

5 лет и живу. Но это выживание какое-то. Стресс, упор и все дела. Хочется и на елку залезть и не уколоться. Ну т.е. мне нравится пока что такое писать. А вот жизни хотелось бы более спокойной.
Если речь именно о фрилансе, а не об удалённой работе на постоянных нанимателей, то спокойной жизни во фрилансе не будет. БОльшие деньги возможно будут. Спокойная жизнь - нет. Просто потому, что фрилансер в одном лице работает и разработчиком и предпринимателем, а работа предпринимателя подразумевает взятие рисков на себя. Разве что - безумный вариант - нанять сейлз/прожект-менеджера и забирать себе фиксированную ставку, а ему отдавать то, что после неё останется. :)

Да, на ты конечно можно, вне зависимости от возраста - правда я всё-равно буду иногда путаться, но не обращай внимание.
Мы, например. У нас достаточно хорошо получается оценивать сроки, но важная роль в этом у менеджера, который умеет правильно выстраивать ожидания клиента.
вы тогда сможете неплохо заработать выпустив мастеркласс :)
Уметь самому и уметь научить другого - это два очень сильно разных навыка, к сожалению.
Разделение труда - великая вещь. Хотя иногда выходит натуральная делёжка вершков и корешков, что сильно портит малину.
есть замечательная книжка - Вальсируя с медведями. именно про риски в IT. и там есть ссылка на такую програмульку - http://pmo.ru/riskology/ - vj;yj crfxfnm b gjbuhfnmcz
Это какие-то непонятные страхи.
С одной стороны - любую задачку можно обозвать "а че тут делать-то". Обычно так и делают, пока не всплывут нюансы либо по незнанию, али с юношеской удали.
С другой - от 6 до 12 часов можно работать либо на адреналине (когда от задачи прет так, что тяжело остановится), либо выполняя какую-то механическую работу, которую делал уже тысячу раз. А у нас в индустрии если выкинуть время на самообучение и эксперименты - за бортом можно остаться гораздо быстрее.
С третьей - подажа времени за деньги (ну или результата за деньги) - это не способ конкурентной борьбы "я сделаю эту задачу за три часа - а я за два", а оплата труда фрилансера. Выбор исполнителя очень часто лежит в нематериальной плоскости, потому как любитель подешевле все равно найдет еще дешевле. Поэтому если кому-то не нравится ставка, оценки по срокам и т.п. - совершенно не повод прогибаться, нормальная ситуация. Поблагодарили друг друга за потерянное время, развернулись и пошли своей дорогой. Чем раньше это понятно - тем лучше.
есть способ. нужно выдавать результат хорошего или отличного качества, а чтобы цена не жала нужно примерно подсчитать в уме стоимость, а потом умножить её на два
я, вот, пытаюсь пользовать фогбагз для учета времени, показывая его заказчику и мотивируясь через счетчик эстимейт/элапсед.
Получается не особо :(
А зачем это показывать заказчику, если конечно он покупает не time&materials? Заказчика либо удовлетворяет цена-качество, либо нет. Иначе выходит психотерапия, а не разработка софта. Другое дело - для себя, глазомер вырабатывать.
я продаю заказчикам почасовую работу, так мне проще считать стоимость.
Ну и мотивация лучше - больше сделал, больше получил.
И заказчик соглашается оплачивать все часы, которые на момент завершения проекта набежали? Хороший заказчик.
Я говорю про доработки, новые заказы на фикс чужого кода, работу с неизведанным, когда стоимость работы на глаз не определить.
Практикую в этом почасовку, за последние года два никто не жаловался
Вот тут соглашусь -- за это обычно платят и не спорят.

Но это не очень большие и очень четко сформулированные задачи. Где нет места для болотца.

А как только начинается разработка и доработка этой разработки, тут все вязнет ужасно. Вот тут добавить, тут подделать и разве это не входит в общую цену проекта, и разве это не то же самое, что вы уже делали?

Edited at 2010-07-16 10:53 am (UTC)
Напротив, тут слишком не сформулированные задачи, что б делать ставку.
Сколько взять в месяц за поддержку сайта на первом оскомерс, который я в гробу видал? Сколько будет стоить добавить 4 статические страницы на сайт, учитывая что админка умерла, сайт на РНР5 работает кое-как, данные хранятся в XML, и время которое я потрачу на разбор с CMS тоже должно быть оплачено?

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

беда придет потом, когда спринт пройдет и ты вроде и с цмс разобрался и первые задачи сделал. а дальше уже будут вопросы -- вот нужна фича. Что? Опять с цмс разбираться? Ты же уже разобрался... Проект-то надо поддерживать еще потом.
> Однако заказчик, видит (если видит) только предполагаемое отведенное время.

Значит нужно обсуждать с заказчиком не стоимость часа работы, а стоимость майлстоуна целиком. Каковую исчислять из собственно оценки времени, помноженной на оценку рисков. Если цена с учётом рисков для заказчика неприемлема - значит надо наступить себе на жабу и отказываться от работы, иначе работать на него придётся себе в убыток.

Конечно если традиции рынка требуют, нужно ещё оставлять резерв для торговли, который будет сброшен к удовольствию заказчика. :)
Стоимость майлстоуна целиком тоже капризная вещь. Т.е. ты ее рассматриваешь, пытаешься все учесть, подстраховаться, и выдаешь заказчику стоимость.

Дальше если ему по бизнесу решение за такие деньги принесет прибыль он пои идее должен согласиться. Т.е. тут есть только одна неприятность -- сам можешь недооценить себя. В этом случае конечно лучший инструмент это упомянутый таймер и ни в коем случае нельзя приукрашивать свои метрики.

Однако часть заказчиков потребует обосновать цену. Ты можешь сказать, ну раз тебе такое не годится. То и до свиданья. Если ему и правда решение за такие деньги для бизнеса не выгодно, то вы расстанетесь и это правильно. Однако часто бывает, что оно ему выгодно и нужно, а вот сроки и цена кажутся завышенными. И тут что количество часов, что цена один фиг -- получается какое-то отстаивание своей квалификации в плоть до того, что давайте сядем вместе и посмотрим как делается вот этот вот кусочек. Тут конечно надо бы во время остановиться и не брать заказ.

Буржуйские книги учат вообще от часов не отталкиваться. А говорить -- мое решение принесет вам вот столько денег. Сообразно этому и делитесь. Но вот такого у меня еще никогда не было. Так seo-шники кстати любят писать. Только там результат гарантировать не возможно.
> Стоимость майлстоуна целиком тоже капризная вещь.

Безусловно. Точно оценить можно только то, что уже несколько раз делал именно так и не иначе, но специфика разработки софта подразумевает, что такие задачи сводятся к продаже коробочных продуктов. Программист, который много раз подряд пишет один и тот же код выглядит довольно странно, имхо. :)

С другой стороны есть схожие классы задач, которые получив определённый опыт на нескольких из них, понятно как решать и как оценивать с приемлемой точностью. Здесь риск очевидно невелик. Назовём их продакшен, что-ли.

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

Соответственно, я встречал рекомендации тщательно выделять/разделять при оценке проекта продакшен и рисёрч, оценку на рисёрч умножать на существенно больший коэффициент риска.
> Однако часть заказчиков потребует обосновать цену.

Да. Это скорее психиатрия психология, чем трезвый рассчёт, но работа предпринимателя - в значительной степени психология. :) В том числе и решение, достаточно ли адекватен потенциальный заказчик и до какой степени стоит ему подыгрывать в его фобиях/привычках.

> Однако часто бывает, что оно ему выгодно и нужно, а вот сроки и цена кажутся завышенными.

По срокам скорее всего можно донести до заказчика мысль, что он у тебя не единственный, соответственно срок исполнения работы и затраченные на работу человеко-часы по определению не совпадают. Если хочет эксклюзива и срочности - это совсем другие расценки.

Если же человеку кажется слишком завышеной цена абстрактного человеко-часа - то либо он неадекватен, либо его культурный контекст подразумевает обязательную торговлю. Просто себя уважать не будет, если хоть немного не выторгует и партнёра таким же считает. :) Как отличать заказчика, привычного к торговле от принципиально неторгующегося и как окучивать любителей поторговаться - на этот счёт вроде есть пособия для сейлзов разной степени адекватности.
> Будет искать как отдохнуть как-то еще.

Кстати. Есть определённые виды работы, которые лучше идут не когда мозг "отдохнул", а когда "устал" и вследстии этого подавлена определённого рода активность. Ну то-есть приходится дожидаться не когда мозг отдохнёт, а когда он отупеет настолько, что перестанет возбуждаться и перескакивать на постороннюю активность. В этом случае, наверное, может помочь искусственное удлинение цикла сон-бодрствование. Или физические упражнения всякий раз, когда захотелось потупить на хабре или в жж.
мне потупить не хочется обычно. а вот вычитать так или иначе приходится. продуктивнее всего хабр читать раз в несколько дней. тогда самый флеймогон проматывается легко.

чтобы не хотелось никуда тупить можно себя в стресс загонять. однако через пару-тройку дней такого марафона надо делать перерыв. А обычно в этот момент как раз что-то срочно надо. Так, что лучше относительно стабильный ритм иметь.