Пишу пост как и обещал в комментарии
Для начала расскажу ситуацию, в которой я проникся ситуацией заказчика и решил ему помочь. Заплатил я за это временем и нервами.
Дело было на заре моей карьеры фриланс-разработчика. Пока у меня не было клиентской базы я был бесхарактерным исполнителем, который боялся сказать что-то вопреки. Боялся поставить под сомнение мнение заказчика или отказать ему в каких-то доп. услугах.
Если мы договаривались на одну работу а по факту нужно было выполнить еще что-то. Я делал это либо бесплатно, либо просто говорил "вот, там нужно было еще сделать ЭТО и ЭТО. Я это все сделал и теперь все ок". В надежде было получить одобрение заказчика чтобы он понял как ему со мной повезло.
Если были какие-то просьбы я их выполнял и не выставлял счет. Опять же из-за страхов "а что если я сейчас выставлю счет, ему не понравится и он уйдет? Тогда я потеряю заказ, лучше просто сделаю".
В этот раз было также. Появился заказчик с запросом написать смарт-контракт на языке FunC. Сам заказчик был "разработчиком". Это особая категория заказчиков, которые посмотрели пару роликов на тему разработки и поверхностно (зачастую неверно) понимают, что и как работает.
Запрос был простой, максимально удешевить разработку - нужен только код контракта и не более. Обычно заказывают сам смарт-контракт + интерфейс для взаимодействия с ним. Даже если это digital-агентство с собственным штатом разработчиков - просят хотя бы описать классы и функции под интеграцию.
Окей. Предоплату тогда я конечно же не брал, это отпугивает заказчиков а я тогда больше боялся потерять клиента чем время и деньги. Договорились на 750 USDT и неделю разработки.
Договоренность была такая:
1) Я пишу контракт, разворачиваю ее в тестовой сети и демонстрирую работоспособность.
2) На созвоне я включаю демонстрацию экрана и показываю процесс деплоя контракта и функционал (звоночек)
3) Если все ок - заказчик переводит половину средств
4) Я передаю заказчику все исходники, он пробует развернуть самостоятельно и если все сработает - переводит оставшуюся часть (звоночек 2)
Разумеется, сейчас я на такие условия никогда бы не согласился. Работа выполнена была за 2 дня (разработка сильно ускоряется если работать круглосуточно, прерываясь только на сон). Все работает и клиент в этом убедился по записям в блокчейне.
Я предполагал, что созвон продлится минут 15-20 максимум. Ведь я ожидал, что заказчик просто хочет убедиться что развертывание работает. Оказалось я попал на лекцию где лектором был я. А лекция на тему "как работает мой контракт и еще 1001 вопрос от заказчика".
В течение 6 часов я очень подробно объяснял как работает контракт и его функционал, как работает блокчейн. Пришлось объяснять самые базовые и элементарные вещи. Я был выжат как лимон и в течение созвона несколько раз хотел все бросить и отключиться.
С сомнениями и прочим мы завершили беседу. Он сказал что часть денег скоро и ждет исходники. На мой кошелек поступило 50 USDT, ведь у него больше не было
Я срочно вызвал его на разговор в google meet. Оказалось что мой заказчик вовсе не является конечным потребителем моего труда. Он лишь разработчик, который взялся за заказ контракта (не умея писать на FunC) и теперь хотел точно разобраться как сдать работу. Другими словами я должен был сдать работу заказчику через него, чтобы он получил свою оплату и мог рассчитаться со мной.
Он ожидал, что ему дадут предоплату и он рассчитается со мной на 50% как и договаривались, затем получит у меня исходники и сдаст работу полностью, а там и рассчитается со мной полностью.
Я был в шоке. Я сразу вышел из разговора и пошел спать ибо за последние трое суток спал, наверное, часов 5. Поел и обдумал ситуацию. Выхода не было, либо я помогаю ему сдать работу и получаю хотя бы часть оплаты, либо ничего не получаю. Выбор без выбора. Послать его нахер я не подумал.
Я предлагал ему "давай я сдам работу и все" - наотрез отказывался.
Пришлось провести еще 4-5 созвонов, суммарно потратив на это около 6-7 часов времени. Все подробно разжевывая. Какие данные куда подставлять, как и где затем тыкать чтобы контракт оказался в сети, какие могут возникнуть ошибки в процессе и т.д. и т.п. Это все происходило в реальном времени с демонстрацией. Помимо этого пришлось еще потратить время чтобы подробнейшим образом описать работу всего контракта, тестов к нему и функционала деплоя (все это пришлось в итоге писать). В исходниках буквально было больше комментариев чем самого кода. Чел так сильно тупил что приходилось даже переменные типа owner_address комментировать и писать, что это адрес владельца
Затем мы провели еще один созвон, где лектором уже был он. Демонстрация того, что он все понял и сможет самостоятельно всё сделать. В общем, попрощались и я стал ждать.
День. Два. Три. 0 вестей, написал ему. Договорился сдать на конец недели (еще 3 дня). Ок. В итоге опять пропал, на мои вопросы "что там и как".
- Тут не работает ЭТО, там не работает ТО. Я сейчас пытаюсь разобраться и понять как тут делать...чинить надо...
В общем меня опрокинули и включили дурачка. В итоге я потратил огромную кучу времени и нервов в обмен на 50 USDT. К счастью эта ситуация научила меня одной важной вещи:
Не внесли оплату вовремя - либо вносите и продолжим диалог (скидка на забыл\не вспомнил\форс-мажоры), либо пройдите нахуй. Какие у вас там проблемы - ваши проблемы. Не мои