Автор этой статьи – Майк Лемовитз, который живет в центральном Массачусетсе с женой и двумя дочерьми. Он работает в сфере маркетинга в крупной организации здравоохранения, а также занимается фотографией, режиссурой, и является предпринимателем. Больше вы можете узнать здесь.
Теперь, когда приложение SantaDispatch доступно в AppStore, я подумал, что моим коллегам было бы интересно, каково это иметь iPhone приложение, разработанное через Elance.
В прошлом месяце у меня возникла идея создания iPhone приложения к сезону Рождественских праздников. Эта задумка казалась достаточно простой: я хотел, чтобы дети могли отправлять послания Санте, а их родители – отслеживать совершенные детьми хорошие поступки. Ничего особенного.
Чтобы найти разработчика, я разместил на Reddit дизайн, над которым сам импровизировал в PhotoShop`е. У меня был фактически нулевой бюджет, а время-то тикало, ведь это был уже конец сентября. Я получил несколько откликов от квалифицированных разработчиков, но был просто не в состоянии позволить себе их услуги. Таким образом, я зарегистрировался на Elance и опубликовал проект.
После размещения проекта на Elance
Через несколько минут мой почтовый ящик был переполнены письмами от iOS разработчиков со всего мира. Некоторые из них были новичками на Elance, другие же имели хорошее портфолио, отзывы от предыдущих клиентов на Elance и шестизначные доходы. Предложения варьировались от нескольких сотен баксов до нескольких тысяч. Потратив немного времени на просмотр всех предложений, я связался с несколькими разработчиками.
Прошло менее двух часов после первоначального размещения проекта, и я уже общался в Skype с разработчиком из Китая. У него были отличные отзывы, и цена, которую он упомянул в предложении, казалась адекватной. Также, несмотря на небольшой языковой барьер, мы хорошо понимали друг друга.
На своих макетах я показал ему, что и как пользователь должен делать в приложении. Мы обсудили спецификацию, и я задал несколько вопросов о том, как будет проходить процесс работы. Позднее, в ходе обсуждения мы договорились о конечной цене.
Итак, я нанял разработчика. Что дальше?
Во-первых, я убедился, что мои файлы Photoshop с дизайнами различных частей приложения были корректны, понятны и приведены к общему виду. Я отправил .psd файлы разработчику, и он приступил к работе.
Нашим главным средством связи был чат в Skype. Также, для надёжности, любой важный файл я вносил в подраздел «Files» раздела «Workroom» на Elance. Здесь вы можете управлять договорами, платежами, этапами и файлами вашего проекта, а также общаться с исполнителем.
Через два дня (!) разработчик написал, чтобы я загрузил TestFlight, и прислал мне рабочую версию приложения для тестирования. Должен признаться, это было захватывающе! Глядя, как с момента возникновения идеи до её воплощения не прошло и недели, мягко говоря, я был впечатлён. Я уверен, когда ты сам ведешь разработку, испытываешь ещё больший восторг. И само собой, я пребывал в лёгком шоке, что получил от разработчика первую работающую версию так быстро.
Отладка и изменения. Здесь начинается самое интересное…
Итак, дела шли отлично. Я прошёлся по приложению от начала до конца, записал все ошибки для каждого компонента, которые нашёл. Также внес парочку небольших изменений в графическую составляющую и отправил всё разработчику.
Вот таким вышел наш разговор (без изменений):
Разработчик: извините…но из-за изменений в спецификации, мне придётся переделывать приложение.
Я: Я полагал, что некоторые графические изменения подразумевались сами собой. В принципе, обновленная графика отличается совсем немного. Функциональность та же.
Разработчик: Хорошо… Но в дальнейшем не меняйте графику…Мне придется постоянно переделывать приложение, если вы будете изменять графику снова…Это потребует дополнительной оплаты… Я надеюсь, вы меня понимаете…
Я: Да, конечно. Я даже не мог подумать, что это потребует много дополнительной работы.
Разработчик: Хорошо, я сейчас это исправлю.
Отлично, теперь я чувствую себя, будто потратил его время и он делает мне одолжение. Очень странно, что «стандартные», как мне казалось, изменения в ходе процесса были рассмотрены как изменения в первоначальной спецификации. Но посмотрим, как пойдут дела дальше.
Тема без конца и края: заплатите мне быстрее!
На протяжении всего проекта у разработчика было одно требование, которое упоминалось снова и снова: «Если вы хотите, чтобы я продолжил работу, вам придется заплатить мне XXX долларов сейчас». Несмотря на наличие очень чётких границ этапов оплаты (четыре этапа по $200 каждый), на меня постоянно оказывалось давление, чтобы я платил за то, что ещё не было готово.
Каждый разговор был будто сражение. Приведу несколько примеров.
С самого начала я подчеркнул, что разработчику необходимо будет подписать договор, в котором излагаются права собственности на код после завершения проекта и прочее. В первом пункте сказано, что как только я получу подписанный документ, я должен произвести первую оплату, и тогда начнётся работа. Всё предельно ясно, как мне кажется.
Я: Скажите, когда вы подпишете договор, и тогда я произведу первый платёж в $200.
Разработчик: Привет! Сначала оплатите, пожалуйста, $200. Я сейчас работаю.
Я: Я нахожусь в пути домой. Для начала вы должны подписать прикрепленное мной соглашение. Сразу после этого я выплачу $200.
Разработчик: Хорошо.
Второй этап оплаты был произведен сразу после получения первой рабочей демо-версии приложения. Когда он выслал мне вторую версию приложения с исправлениями ошибок, у нас состоялся следующий разговор:
Разработчик: Мне нужно, чтобы вы внесли $400 на Escrow для оплаты исправления багов.
Я: Я положу на счёт следующие $200 на этих выходных. Естественно, они будут перечислены, только когда будет окончательный релиз-кандидат.
Разработчик: Исправление ошибок стоит $400, правильно?
Я: Я не уверен, что понимаю вас (в этот момент я отправил скриншот обозначенных этапов оплаты).
Я: Это расписание выплат из Elance.
Для уточнения, третья выплата $200 должна производиться, когда я получу окончательный релиз-кандидат. Выплата последних $200 должна совершиться через 10 дней после утверждения в AppStore. Это делается для гарантии того, что: а) приложение действительно принято; б) у пользователей будет около недели, чтобы сообщить о любых ошибках.
Разработчик: Я не уверен насчет последнего срока оплаты. Извините. Мне кажется, между нами возникло недоразумение. Давайте определим, когда будет последняя выплата. Я разработчик. Я могу разработать приложение. Вы же постоянно можете его тестировать. Если Вас устраивает моё приложение, вы даёте добро на перечисление последней оплаты. И потом я отправлю вам полный исходный код. Размещение приложения в AppStore – это ваша задача…
Я: Ну хорошо. Но последний этап был оговорен таким образом (и вы согласились на это), чтобы убедиться, что вы будете исправлять, если:
a) приложение не будет утверждено по какой-то причине;
b) пользователи найдут ошибку(-и), которую(-ые) мы с вами упустили.
Разработчик: Извините, но я согласился на первоначальные требования. На самом деле, вы немного изменили спецификацию. Я же пошёл вам на встречу… и исправил всё бесплатно. Но я не могу исправлять другие обновления спецификации.
Я: Какие другие обновления?
Разработчик: Хорошо, я смогу загрузить приложение в AppStore. После этого вы подтвердите последний перевод денег?
Я: Мне не сложно загрузить приложение (у меня есть аккаунт разработчика). Я только хочу убедиться, что оно будет утверждено и нормально работать, прежде чем подтвердить перевод денег, вот и всё. Не вижу в этом никакой проблемы.
Разработчик: Apple будет проводить рассмотрение много дней… я не могу ждать столько, потому что я закончил свою работу…Конечно же, если Apple отклонит ваше приложение из-за моего кода, я исправлю всё бесплатно.
Разработчик: Но вы должны произвести последнюю оплату сразу, как я отправлю весь исходный код…это правило работы на Elance. Я надеюсь, вы понимаете меня. Я честный разработчик.
Я: А я честный заказчик. И не понимаю, в чем проблема. До этого мы только рассматривали список ошибок.
Разработчик: Я хочу знать, когда вы подтвердите последнюю выплату. Думаю, что когда я исправлю последние ошибки, я смогу получить $400 за раз.
Я: Общая стоимость проекта была $800. Контрольными этапами выплат являются: $200 на начало, $200 по факту получения первой работающей версии, $200 при получении финального релиза и $200 по факту утверждения AppStore. Я произвел первые два платежа по $200 надлежащим образом, и планирую заплатить следующие $200, когда финальная версия приложения будет готова, и ещё $200, когда AppStore утвердит приложение и пройдет 10 дней для приёма сообщений об ошибках от реальных пользователей.
Разработчик: “$200 по факту утверждения AppStore” – это не для меня. Мне необходимо, чтобы вы оплатили последние $200, когда я загружу приложение в AppStore. Затем Apple будет производить рассмотрение около 7-10 дней…после этого ваше приложение будет утверждено для продажи. Поэтому вы должны подтвердить выплату $200 сразу, как я загружу бинарный файл в AppStore. Я так работаю над всеми проектами. Я надеюсь, вы понимаете меня.
Разработчик: Вы можете изменить условия последней выплаты? «Загрузка бинарного и отправка исходного кода» — $200. И я надеюсь, вы внесёте деньги на Escrow. Таким образом, я смогу работать дальше…
В конечном счете я согласился заплатить последние $200, как только он загрузит приложение в AppStore. Но при условии пиьменного подтверждения, что он обязуется бесплатно устранять все проблемы, которые возникнут на протяжении первых 10 дней. Я был разочарован этим разговором. Моё приложение уже почти было в AppStore, но в итоге я сдался из-за напряжения, инициатором которого выступал я же.
Попытка удержать мой исходный код за отличный отзыв
Вплоть до сих пор игра стоила свеч. Прошло чуть больше недели после найма разработчика, как моё приложение было загружено в AppStore на утверждение. У него не хватало некоторых фич, но оно нормально работало и было готово, чтобы совершить первый шаг в этот мир. Однако последующие события заставили меня переосмыслить, стоит ли Elance того риска и головной боли.
После того, как разработчик загрузил приложение в AppStore, он сообщил мне, что проект уже архивируется и готовится к отправке. Далее следовал разговор:
Разработчик: Как только вы оплатите последние $200, я вышлю проект.
Я: Хорошо. Дайте мне 5-10 минут, я заплачу.
Разработчик: Хорошо, и затем оцените меня в 5 звезд и оставьте отличный отзыв, пожалуйста. И я сразу отдам вам весь исходный код проекта.
Я: (Пять минут спустя) Последние $200 выплачены!
Разработчик: Хорошо. Поставьте мне 5 звёзд, я уже запаковываю исходный код.
Я: Я планирую написать развернутый отзыв.
Разработчик: Вы поставили 5 звёзд?
Я: Пока нет. Я собираюсь написать развернутый отзыв немного позже. И я не собираюсь играть в игру «придержу файлы, пока не получу отзыв».
Разработчик: Как только вы поставите 5 звёзд, я отдам весь исходный код.
Я: Так не пойдет. Ваша работа была полностью оплачена.
Разработчик: Отзыв также очень важен для меня. Я считаю, что несложно поставить 5 звёзд.
Я: Я понимаю. И вы можете рассчитывать на положительный отзыв. Но так с клиентами дела не делают.
Разработчик: Извините. Я думал, что мы уже выполнили нашу задачу. Я ведь загрузил приложение в AppStore. И теперь мы можем оставить отзывы друг о друге. Разумеется, я тоже оставлю хороший отзыв. Надеюсь, вы понимаете меня.
Я: Мы ещё не всё закончили. Я не получил исходный код, хотя, уже оплатил его.
Тогда он понял, что я не собираюсь оставлять отзыв, пока всё не получу, и отправил мне исходный код. Он до сих пор говорит мне, что сделал эту работу ради отзыва, а не денег и т.д и т.п. Оказывает на меня серьёзное давление, чтобы я написал положительный отзыв.
В большинстве своём, он заслуживает (и получит) положительный отзыв. Но подобного рода ситуация заставила меня задаться вопросом, насколько честно мы можем оставлять отзыв на Elance? Это напомнило то время, когда eBay столкнулись с проблемой ответных отрицательных отзывов.
Подведение итогов…
В целом, я заплатил программисту за разработку спроектированного мной приложения, что он и сделал. Это заняло менее двух недель, и сейчас приложение находится в AppStore (после отказа и успешной апелляции).
Во многих отношениях можно сказать, что я выполнил свою миссию. Однако всё это время меня сопровождало разочарование от сотрудничества с человеком совершенно других принципов. А постоянная борьба за мелочи, хоть и важные, оставило меня с чувством, что я должен научиться разрабатывать приложения самостоятельно. И это именно то, что я сейчас делаю. В следующий раз я буду в состоянии воплотить мою идею в жизнь, не так сильно беспокоиться об увеличении расходов, «задержанном» коде и возникновении проблем. Таким образом, я избегаю необходимости кого-то нанимать для воплощения собственных идей.
(via)