Роман П.
1599 сообщений
#14 лет назад
Не, ну понятно, что опытные программеры цены называют, оценивая время, которое они затратят и установив себе примерную оплату в час (соответственно своему опыту и знаниям) + учитывают кучу факторов - от текущей ситуации (если бочонок икры заканчиваеца, то тут уж не до задирания носа) и до примерных цен на рынке.

Но на самом деле, совершенно непонятно, как устанавливать цены на продукт умственного труда. Это вопрос пока что, на мой взгляд, неразрешимый) когда грузчик таскает ящики - тут все понятно, три ящика - столько денег, 6 ящиков - в два раза больше. А с умственной работой такое не пройдет.. ну вот сидишь ты и думаешь час-два над алгоритмом с бумажкой, и надо ли за это платить - ведь если обратиться к гуру, он за минуту этот алгоритм может выдать ) но все равно ты ж вроде пахал в поте мозга)

Имхо - величайшая проблема современной жизни)
Сергей К.
2345 сообщений
#14 лет назад
Цитата ("shapod"):
Цитата (5ergunka):я не программер
но мнение про кодинг имею
Был опыт, C++ входил в обязательную программу обучения тех.универа - потому и имею мнение о кодинге. Асемблером лет 7 назад для себя интересовался - потому тоже имею мнение.
И знаю, что Цитата ("alibek"):
Обычно я специалист в тех задачах, которые хочу кому-нибудь заказать.
это просто невозможно физически, а вырождается в "а вот мне один специалист сказал, что..., а вы вот мне говорите что...", а потом выясняется, что спросили художника, что он думает о гималайских медведях, и он сказал, что химическая формула хлеба мешает андрогенному коллайдеру уничтожить орков, а вы (программист ) говорите, что две строчки кода поменять занимает больше двух часов.
Оффтопик
"В старые времена мужчины были мужчинами и сами писали драйвера для своих устройств" (cit)
Денис Ш.
7132 сообщения
#14 лет назад
Цитата ("Crist"):
ну вот сидишь ты и думаешь час-два над алгоритмом с бумажкой


Чистый кодинг (а вопрос о нем) не подразумевает продумывание алгоритма

Цитата ("alibek"):
Даже не знаю, что тут может быть непонятного.


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

Цитата ("5ergunka"):
был опыт, C++ входил в обязательную программу обучения тех.универа - потому и имею мнение о кодинге


Ага. А я тоже в школе на уроки ИЗО ходил - я теперь художник?
А еще мы все химики, физики, географы - в школе тоже проходили

alibek, если вы знаете предмет вопроса, то зачем задавать вопрос? Вы же знаете, сколько времени нужно потратить? Или вы даже знаете, как эту работу сделать?


Оффтопик
Я никогда не отвечаю на проекты, где заказчик начинает заранее оценивать проект в стиле "знающему человеку на пару часов". Это говорит, что человек реально ситуацией не владеет, но мозг вынесет полностью

Вы если обращаетесь к автослесарю, тоже рассказываете сколько там мало работы?
Болатов А.
1090 сообщений
#14 лет назад
Цитата ("shapod"):
То вы говорите, что вас не устроит исполнитель, который затянет срок из-за своей низкой квалификации, потом говорите, что вам все-равно сколько времени будет потрачено - 2 часа или 3 дня.

Затянет срок — это как раз тот случай, когда при рейте $20/час он потратит на решение ранее описанной абстрактной задачи 40 часов.
У задачи есть срок ее решения, например 3 дня. Если исполнитель укладывается в этот срок, то не важно, сколько именно он времени потратит, 3 дня или 2 часа. Но если неделя, то это уже нарушает другие мои планы, связанные с этой задачей.

Цитата ("shapod"):
alibek, если вы знаете предмет вопроса, то зачем задавать вопрос?

Меня интересует не чье-то конкретное мнение, меня интересует спектр мнений.
К примеру, для сабжевой задачи у меня есть оценка, $100. Есть люфт, плюс-минус $30. Люфт довольно большой, поскольку специфику Си я представляю слабо, поэтому я бы хотел его уточнить.

Цитата ("shapod"):
Вы если обращаетесь к автослесарю, тоже рассказываете сколько там мало работы?

Если к автослесарю обращается другой автослесарь, он может иметь ориентировочное представление об объеме работы.
Владимир А.
246 сообщений
#14 лет назад
Честно говоря, в сотню строк перла можно включить столько гадости, что за 100$ на Си браться будет самоубийством ))

Как тут оценивать - вообще хз. Давайте исходник, можно говорить. Либо четкое ТЗ.
Андрей Халецкий
3562 сообщения
#14 лет назад
Цитата ("alibek"):
Если предлагаемые исполнителем сроки значительно превышают те, которые по моему мнению соответствуют сложности задачи, значит либо исполнитель недостаточно умелый, либо обманывает и завышает сроки. Ни в первом случае, ни во втором он мне не нужен.
Понравилось что заказчик не допускает того что он ошибся =)
Болатов А.
1090 сообщений
#14 лет назад
Цитата ("SmartDesign"):
Понравилось что заказчик не допускает того что он ошибся =)

Ошибиться можно в чем-то сложном или незнакомом. Тогда перед заказом следует провести анализ и составить спецификации.
А в данном случае ошибка слишком маловероятна, чтобы на нее закладываться.
Вадим Т.
3240 сообщений
#14 лет назад
Цитата ("alibek"):
Как лучше считать стоимость работы кодера, который будет переписывать скрипт?
По часовому рейту, как мне кажется, неправильно.

Почему же неправильно...

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

Если заказчик не может оценить объем работ, то пусть оценит кто-то другой (эксперт/ы).
Вадим Т.
3240 сообщений
#14 лет назад
Цитата ("alibek"):
Есть некая абстрактная задача.
Некий средне-абстрактный программист с рейтом $20/час может выполнить ее за 10 часов, т.е. стоимость решения задачи — абстрактные $200.
Если исполнитель называет рейт $100/час и сроки 2 часа — это нормально.

Это совсем уж абстрактно. На практике этот пример выглядит так:

1. Общеизвестно, в том числе и по оффлайну, что в рунете за $20/час можно получить очень опытного спеца, который качественно делает работу.

2. Общеизвестно, что $100/час в рунете хоть и встречается, но это явный перебор, так как хорошего опытного спеца (см. выше) обычно устраивает средняя цифра $20/час.

3. Размышление первое. В программистов-гениев на фрилансе вряд ли есть смысл верить, вернее, гении сами по себе существуют, но их не будут интересовать такие проекты типа портирования чужой проги с Perl на Си, соответственну, для данного проекта нужен просто обычный хороший опытный спец. То есть за значительно более высокий рейт $100/час мы получим не гения, а аналогичного же спеца, что и за $20, но который более круто себя оценил.

4. Размышление второе. Если кто-то предлагает сделать работу за 2 часа по $100/час, то, если он может обосновать, что это действительно реально, это значит, что работы тут действительно примерно на 2 часа для хорошего спеца, разбирающегося в вопросе, не более чем.

5. Вывод. Значит, нужно продолжать поиски исполнителя, и искать того, кто сделает проект за 2 часа, но уже по обычному в рунете профессиональному рейту $20/час.

В общем, как-то то так, сценарий может быть и другим.
Владимир М.
327 сообщений
#14 лет назад
Цитата ("tvv"):
5. Вывод. Значит, нужно продолжать поиски исполнителя, и искать того, кто сделает проект за 2 часа, но уже по обычному в рунете профессиональному рейту $20/час.
Оно, конечно, логично, но многие ли профессиональные программисты станут вникать в новую задачу ради 20-40$?
Когда речь о небольшой разовой работе на мой взгляд логично добавить к стоимости "подход к снаряду, отход от снаряда", т.е. время затрачиваемое не на непосредственное решение задачи, а на знакомство с её условием, общение с клиентом, документирование и т.п.
Сергей Д.
326 сообщений
#14 лет назад
Цитата ("tvv"):
5. Вывод. Значит, нужно продолжать поиски исполнителя, и искать того, кто сделает проект за 2 часа, но уже по обычному в рунете профессиональному рейту $20/час.

Тут ещё не учтён фактор времени: насколько быстро нужен заказчику результат, и сколько стоит время самого заказчика. Если его время "ничего не стоит", то да, можно хоть 3 месяца искать человека, который сделает качественно и по разумной ставке. А если результат нужен через 6 часов, и уже есть человек, который сделает за 2 часа по ставке $50/час, при "норме" $20/час?
Это совсем другая ситуация
Артём К.
1157 сообщений
#14 лет назад
Цитата ("alibek"):
А если он называет рейт $20/час и 40 часов или $100/час и 10 часов — это завышенные сроки. Либо этот программист собирается сачковать за счет заказчика, либо переоценивает себя и не стоит $100/час.


Выбор программиста только по двум формальным параметрам - цене и срокам - это популярная и грубая ошибка заказчиков, близких к торговле и перекупке, но далёких от программирования))).
Действительно, есть такие сферы где эти 2 параметры решающие, например, если нужно заказать 100 штук типовых деталей.
Поскольку любой станочник делает одинаковые детали и их качество ничем не отличается, то и заказчик выбирает только по цене и срокам поставки.

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

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

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

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

Один человек может и будет работать дольше, но зато конечный продукт получится качественно спроектированный,
а другой сделает быстро, но и наспех.
Болатов А.
1090 сообщений
#14 лет назад
superkoder, предлагаю внимательно перечитать пилотный пост, или хотя бы его заголовок.
Мне не нужен программист, мне нужен кодер.
Решение задачи я разработал и реализовал (на Perl).
Однако скрипт на Perl потребляет много ресурсов, поэтому нужно переписать его на другом языке.
Сергей К.
2345 сообщений
#14 лет назад
superkoder, вы прям методику мелкомягких описали
Болатов А.
1090 сообщений
#14 лет назад
Цитата ("superkoder"):
Выбор программиста только по двум формальным параметрам - цене и срокам - это популярная и грубая ошибка заказчиков, близких к торговле и перекупке, но далёких от программирования))).

По этим параметрам удобно отсекать мусор. Адекватный рейт уже с некоторой вероятностью подтверждает профессионализм исполнителя. Но окончательный выбор может осуществляться и по другим параметрам.
Сергей Д.
326 сообщений
#14 лет назад
Цитата ("alibek"):
Однако скрипт на Perl потребляет много ресурсов, поэтому нужно переписать его на другом языке.

Так Вам оптимизация нужна?! Опираясь на свой опыт, скажу, что если алгоритм просто переписать на другом языке, производительность и потребление ресурсов изменятся сравнительно на немного. Существенный выигрыш даёт изменение алгоритма. Повторюсь, я это говорю исходя из своего опыта, у Вас он может быть другой )
Изменение подхода часто даёт огромный выигрыш. И частенько человек, написавший ресурсоёмкий (или медленный) алгоритм говорил: "ну а как тут быстрее сделать? Смотри сколько тут операций выполняется!" А я делал быстрее. Иногда в тысячи раз! Просто применяя совсем другой подход, про который первый человек вообще не думал. Оптимизация - мой "конёк". И вот как раз в оптимизации подход с определением сроков - никак не годится.
Болатов А.
1090 сообщений
#14 лет назад
Цитата ("oren"):
Так Вам оптимизация нужна?! Опираясь на свой опыт, скажу, что если алгоритм просто переписать на другом языке, производительность и потребление ресурсов изменятся сравнительно на немного. Существенный выигрыш даёт изменение алгоритма.

Опыт разный бывает.
Perl достаточно эффективно и быстро работает со строками (именно работа со строками требуется для решения задачи). Написание этой обработки на C особо производительности не изменит.
Однако для запуска каждого скрипта запускается отдельный инстанс Perl. Каждый инстанс потребляет довольно большой объем ресурсов (прежде всего памяти). Запуск 20 инстансов съест значительный объем памяти.
Если вместо скрипта будет автономный бинарник, такой проблемы не будет.
Оптимизировать алгоритм не нужно, он и так достаточно эффективен для задачи.
Олег Казакевич
702 сообщения
#14 лет назад
Цитата ("alibek"):
Есть скрипт на Perl, небольшого размера (около 4 Кб, чуть больше сотни строк).
Скрипт принимает данные со стандартного ввода, обрабатывает (при обработке используются
запросы к MySQL) и выводит результаты на стандартный вывод.
Нужно переписать его на платформонезависимом C (конечной платформой будут *nix-ы).
Сам я Си не знаю, но как мне кажется, там работы на пару часов, не больше.
Как лучше считать стоимость работы кодера, который будет переписывать скрипт?
По часовому рейту, как мне кажется, неправильно.


Если суть задачи в оптимизации, то я бы переформулировал ее примерно таким образом:
Есть скрипт на Perl, взаимодействующий с MySQL посредством стандартного ввода-вывода, нужно
написать его оптимизированный по скорости вариант на C для *nix-ов. Заодно показал бы сам код и
попросил бы оценить примерный выигрыш, который можно с помощью этой оптимизации получить.
Если небольшого, но ощутимого ускорения работы скрипта будет вполне достаточно, это также стоит обозначить.

Работы, конечно, не на пару часов - тут нужно посидеть с профайлером (инструмент анализа производительности),
найти узкие места. Допустим, код написан толково, тогда портирование его на C может ничего не дать.
Возможно, задача "в лоб" вообще не решается и потребуется написать дополнительный компонент, например,
какой-то особый кэш запросов к БД или строковой пул. Perl известен своими "регулярками" и не факт, что С-шный
аналог будет быстрее - прикрывая одни узкие места, есть риск обнажить другие.

Точную оценку может дать только спец и только имея код исходного скрипта.
Сергей Д.
326 сообщений
#14 лет назад
okman, человек-же уже написал, что дело не в оптимизации производительности, Цитата ("alibek"):
Оптимизировать алгоритм не нужно, он и так достаточно эффективен для задачи.

Проблема - во множестве инстансов Perl-а, каждый из которых жрёт память.
Фрилансер У.
248 сообщений
#14 лет назад
Pthreads - библиотека многопоточности для *nix
Для mysql есть API.
Цитата ("alibek"):
именно работа со строками требуется для решения задачи

Регулярные выражения?

Не думаю что там на пару часов совсем. Будь я заказчиком начальный бюджет поставил 50$. Дальше пусть программист сам прикинет сколько времени ему потребуется и назначит стоимость.