пятница, 10 июня 2016 г.

Как я искала фриланс-разработчика

Когда я начала готовить курс «НЛО: Найти, локализовать и оформить ошибку», стало понятно, что нужен некий тестовый проект. На реальный пустить можно, но... Зачем? И что я смогу показать на реальном проекте? Все интересные баги быстро исправляются, а ведь студентам нужно дать их пощупать...

Результат мучений

Можно попробовать временно возвращать отдельные баги на тестовый стенд, но это сплошной геморрой:
— внедрили баги;
— подержали пару дней;
— убрали.

А если они будут мешать реальному тестированию? А если забудут убрать и это уедет в прод? Да и вообще неудобно, много работы разработчику, студентам тяжело, баги то есть, то нету. Лучше, чтобы они были всегда. Ну или чтобы я сама, по своему желанию, накатывала билд с исправлениями. Значит, нужна отдельная машина. Ок. А проект?

На курсе для начинающих студенты тестируют Дадату. Я решила взять ее, вернув самые интересные баги. За полтора года проведения курса я поняла, оформление каких задач вызывает адскую боль. Открыла джиру и пошла изучать задачи. Заодно нашла проблему пейджинга Smile :) Перелопатила около 2000 задач с нескольких проектов (идей то можно нахвататься везде), выписала себе 30 «интересных» ошибок.

Что дальше? С фрилансом связываться стремно. Это надо искать разработчика, а потом он может пропасть и ничего не делать. Да и к коду Дадаты его пускать нельзя... Знакомый программист тогда сказал:

— Да зачем тебе Дадата?Подумай, что ты хочешь, напиши требования. Я могу тебе сделать проект с нуля на java.

Но я же самая умная, у меня уже есть идея! Я уже потратила несколько часов на чтение багов дадаты. Нет-нет, какое «с нуля»? Мне нужна дадата! И точка!

Значит, разработчик нужен «из своих». Сначала я попробовала умаслить Диму, создателя Testbase (см «О команде»). Дима классный! Он делает сразу хорошо, а еще ему это интересно. Редкое сочетание =) Но увы, задача интересная, времени нет... Пошла к тому, кто писал Дадату.

1. Первый разработчик


Назовем его Вася. Сначала я уточнила, возьмется ли он за такой дополнительный фриланс. Потом показала список багов для внедрения:

— Сколько по времени займет?
— Так... Вроде недолго, за пару дней сделаю.
— А по деньгам?
— Х рублей в час.
— Ну ок, когда сможешь сделать?
— Давай в субботу начну.

Пришла суббота. И тишина... Нет вопросов ко мне? Ооооочень подозрительно. Значит, не начинал. Не трогаю, жду, когда сам напишет. Но проходит воскресенье, понедельник... Во вторник пишу сама:

— Ну как?
— Еще не начинал, работы много. Давай попробую в четверг.

Пришел четверг, вопросов нет, радостной новости "я сделаль" тоже. Опять пишу через день, опять получаю «времени нет, давай попробую в субботу». Ситуация повторилась. И еще, и еще. Самое забавное, что, если его не потыкать палочкой, он мог и на пару недель испариться. Но надо отдать Васе должное, на второй-третий раз он сказал:

—  У меня работы дофига. Помимо тебя есть куча проектов. Думаю, будет лучше, если ты найдешь другого разработчика.

Следовало прислушаться, но у меня началась паника — КАК другого? Этот может взять готовый код, только выкинуть лишнее. А остальное за пару дней. А новый мне месяц с нуля будет пилить, ужас! Нет нет, я лучше месяц подожду, зато потом за пару дней сделает. Ну да, конечно. Прошел месяц, два, три...

Наконец я поняла, что продолжать ждать глупо. Я боялась фриланса потому, что там скажут "сделаю за месяц", а будут делать три. Не хотела ждать. И что в итоге? Три месяца прошло, воз и ныне там. Значит, что у меня осталось 3 варианта:

— уговорить Диму;
— уговорить кого-то из коллег;
— написать требования и найти фрилансера на проект "с нуля".

Разумеется, сначала я пошла к Диме Smile :)

2. Второй разработчик


— Ну Диииииима, ну пожаааааааалуйста. (к сожалению, лайфхак с блинчиками тут не проканает, Дима живет в другом городе)
— ...
— Ну Дииииииим, (рыдающий смайлик), я три месяца жду Васю. Представляешь? (((( На любом языке напиши, хоть php, хоть java, на чем угодно!
— Покажи требования
— Вот )))
— Ну ок, могу сделать, но не быстро.
— Но и не до февраля?))
— Нет ))))
— Отлично! Давай =)

Началась разработка. Дима начал пилить, появились вопросы. Что оставляем от Дадаты? Что выкидываем? Ведь весь проект нам не нужен, тестировщикам не нужно копаться в узкой области, это просто нигде не пригодится. Так что стандартизацию — убрать!

 Я прикинула, что можно сделать проект в два этапа:
  1. Берем готовое, ставим заглушки на выкидываемое. И внедряем баги для базовой версии курса.
  2. Уходим от Дадаты вообще, добавляем новый функционал и новые баги — для расширенной версии.
Так и порешили. И даже успели сделать первую версию Багги. А потом Дима поменял работу, старая полноценная стала фрилансом. Времени стало резко меньше. Он как раз приезжал в Москву, успели поболтать. Решили, что на второй этап все равно нужно искать другого разработчика. 


3. Третий разработчик


Назовем ее Ася.

На биржу фриланса выходить все еще страшно...  Поэтому я набросала свои хочушки и запустила по социальным сетям и чатам выпускников. Выстрелил чат. Мне написали сразу две выпускницы: у одной муж разработчик, у второй знакомая. Обещали прислать оценку проекта. «Муж» отвалился сразу, не все готовы писать код с багами =) А «знакомая» согласилась.

Мы созвонились, обсудили перспективы. Ася взялась сделать первый этап за 2 недели. То есть переписать то, что сделал Дима. По общению приятная, адекватная, сама идея проекта ей интересна, это хорошо. Я переживала, что повторится ситуация с Васей и озабоченно спрашивала о том, когда будет первая версия:

— Так, две недели, хорошо. (Аааааа, у меня уже к маю будет проект, урааааа!!!). А когда покажется первую версию? Просто очень не хочется, чтобы было как с Васей, две недели жду, а в итоге ничего.
— Да, я понимаю. Думаю, к первой неделе что-то покажу.
— Фух, хорошо.
— Только хочу заранее предупредить, что на майские меня не будет, я уезжаю. Это нормально? Если очень надо, могу выйти поработать где-нибудь со 2 числа!
— Ой, нет нет, не переживай. К маю ты уже закончить должна. Так что, если я буду видеть результат, то подожду недельку. Что же я, изверг, чтоли)) Полгода уже жду, неделю как-нибудь тоже подожду)))
— Хорошо.
— Слушай, а когда второй этап будем делать? (а требований то по нему у меня еще нет) А то, может, пока ты начинаешь делать, мне требования написать?
— Да, так будет лучше. Я пока не работаю и есть время. Потом его может не быть.
— Ну ок, договорились. Когда сможешь начать?
— С понедельника.
— Ок.

Закрепили письменно договоренности — за 2-3 недели Ася делает проект, а я плачу ей Х рублей. Баги внедряем отдельно.

Ася начинала с понедельника, а я сразу после разговора стала думать над требованиями ко второму этапу. Это очень хорошо, что мы сразу подняли эту тему. Потому что не очень хотелось потом снова менять разработчика и снова начинать с нуля. Энтузиазм так и пер. Проект вышел из стадии заморозки, ура! Последние пару месяцев я уже ничего не делала. Лекции готовы, ДЗ придуманы, я просто жду. А тут появилась моя работа — думать над расширенной версией, новым функционалом, новыми багами. Это вдохновляло — скоро мы запустим курс!

И вот первая неделя заканчивается. В пятницу Ася пишет: «сегодня вечером или завтра днем залью и покажу». Ура, вот оно! Вот! Но наступило завтра, а Аси нет... Пишу сама «Ну как там?», молчание... Воскресенье, снова пишу. И снова молчание.

Тут я начала злиться. Повторения Васи мне очень не хотелось. Хотелось холодно высказать все, что я думаю по этому поводу. Но я понимаю, что это неконструктивный диалог. Когда на тебя нападают, первая реакция — защищаться. Но мне не это нужно. Мне не хочется искать нового разработчика. И я даже не сильно против, если Ася не уложится в заявленные сроки. Но я хочу видеть прогресс и знать, что сейчас происходит. Поэтому писать Асе ничего не стала. Сначала успокоиться надо, потом писать, без эмоций. Зато нажаловалась во флудилку выпускников, где была и ее знакомая. Вот, мол, разработчица пропала и даже не отвечает, хнык хнык хнык, «фрилансеров же за это и не любят. Испарится, а ты даже не знаешь, что, где, как...». Тут же мне пишет Ася «Сорри, что пропала. Да, показать пока нечего, дай еще пару дней, плиз». Не иначе, знакомая пропинала =) Пара дней так пара дней, сроки то исходные еще не вышли.

Прошла вторая неделя (когда все должно было быть готово), а я еще не видела даже первой версии... Перед выходными Ася снова пропала. Я помнила, что она уедет на майские, но также помнила и то, что «если очень надо, выйду поработать». Во мне теплилась надежда, что, раз Ася не успела ничего, она сама в выходные поработает и вернется после праздников с проектом! Угу...

Откликнулась через неделю и снова «сегодня вечером что-то выложу, ну максимум завтра утром». И снова пропадает. Доверия к таким обещаниям уже не было, пришлось искать дальше...

Биржа фриланса


Зарегистрировалась на https://freelance.ru. Мне очень не хотелось это делать. Страшно! Столько страшных баек ходит о фрилансерах! Я все еще лелеяла надежду на Асю. Написала ей сурово:

— Раз до сих пор ничего нет, я пойду на биржу фриланса.
— Дай мне время до завтра, пожалуйста!
— Хорошо.

Ну вы поняли =) "Завтра", разумеется, ничего не было. Я причесала требования к проекту и загрузила их на биржу. Спасибо Диме, он мне всячески помогал в требованиях и даже подкинул пару идей по возможным багам / реализации.

На бирже мне написало несколько человек. Один какой-то странный. Он написал мне пару вопросов в двух разных местах, на почту и в системе freelance.ru. Я ответила и там и там, а потом он задал вопрос «Расскажите, какая вообще цель у проекта?». Эм... Вот описание моего проекта:
Я веду курсы для тестировщиков и сейчас делаю курс по поиску, локализации и оформлению ошибок. Мне нужен сайт (точнее, два сайта, интегрированные друг с другом), в котором есть конкретные баги и конкретные возможности. 
Нужно:
1. Создать сайт по требованиям — намастрячить на скорую руку. Да, там будут баги. Я посмотрю и вместе решим, что будем фиксить, а что "пускай живет". Вылизывать код не надо.
2. Внедрить туда список конкретных ошибок, можно костылями, пускать в код студентов я не буду.
Так и ответила — сайт нужен для обучения тестировщиков. Чтобы пощупали, научились локализовывать и описывать. «Все, как на сайте написано =)». Видимо, ответ разработчика не устроил, потому что на следующий день я получила письмо «Сорри, я, наверное, откажусь. У меня очнь много работы, боюсь не успеть. Да и не хочется отвлекать вас своими вопросами». о_О

Ну ок.

4. Четвертый разработчик


На freelance.ru мне согласились сделать проект всего два разработчика. Первый предложил Х рублей, а второй сказал, что только первый этап сделает за 2Х денег и 2Х времени.

Так что более детально общалась уже первым —Артемом из Noi Studio. Созвонились, обсудили ситуацию. Я очень аккуратно выстраивала свою речь, чтобы не подписываться сразу. Ведь я только опубликовала проект, радостно ожидала кучи предложений. И я вся такая гордая, обсуждаю детали и потом выбираю, с кем мы будем работать дальше. Поэтому все вопросы обрамляла в "если":

— Когда сможете начать, если мы договоримся?
— В понедельник, 16 мая (была среди или четверг).
— Ок. За какой срок сделаете?
— За три недели оба этапа. (Прям уж оба? Ася вот первый не осилила... Скептик не верит)
— Ну ну... А когда я увижу первые результаты?
— Да прямо на следующей неделе, я думаю (ну ну)
— Хммм... Ок, тогда давай так — если к 25 мая ничего не будет готово (обещанная неделя + я накидываю еще половину), то мы сразу перестаем наше общение и я ищу дальше.
— Конечно, я только так и работаю! (Ага, ага, Ася тоже так говорила)
— Хорошо, тогда я напишу вам, когда определюсь.

Сделала последний заход к Асе:
— Разместила проект на https://freelance.ru. но у тебя пока есть время. Пока я не нашла нового разработчика. (Хотя от Артема предложение уже есть, но вдруг, вдруг...)
— Давай вечером что-то покажу, часов в 5!
— Я дома буду ближе к 11, у тебя даже больше времени.
— Ок, спасибо.

В тот день я вернулась в полночь, посмотреть уже ничего не успела. Так что времени у Аси было еще больше — вся ночь. Ну вдруг вспомнит сессию и щас быстренько хоть что-то налабает и покажет мне. Я была готова увидеть хоть что-то и сразу все простить и остаться с ней. Но нет. В 7 утра пришла на работе — в скайпе тишина. Хватит. Иначе повторим цикл с Васей.

Написала Артему:

— Ты еще готов начать в понедельник?
— Ну да.
— Ок, начинаем.

Написала Асе:

— Так как ничего нет, я отдала проект другому разработчику.

Больше мы с ней не общались.

Но ведь разработчик опять есть! Я снова начала потирать ручки, неужели к концу мая у меня будет все готово? Ничему меня жизнь не учит, правда? =) Ну а вдруг, а вдруг! Ну ладно, не уложится в 3 недели, но даже если 4, все равно прогресс!

Багги Артем запилил к среде о_О

К СРЕДЕ, понимаете? За три дня. Ну, это он так думал, что запилил =) Мы провели несколько итераций по фиксу багов. Требования я написала коротко, но ведь не забываем про пункт 2 этого рассказа — у меня уже был готовый проект с Багги. На первой фазе надо взять его или сделать свою копию. Мне кажется, это идеальное решение. Чтобы учесть все нюансы в требованиях, надо быть хорошим аналитиком. А так просто дал готовое решение и просишь сделать "так же".

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

Попрепирались на тему дизайна. Артем предупреждал, что не делает дизайн, меня это вполне устроило. Мы выбрали на https://wrapbootstrap.com/themes тему для сайта, а красивости мне не нужны. Но от первой версии предварительного просмотра файла у меня глаза вытекли — заголовок, таблица и нижняя фраза «это будет стоить Х рублей» сливались в одно полотно. А в таблице отрисовывались пустые ячейки.
— Поправь.
— Я не дизайнер!
— Ничего страшного, поставь H2 заголовку и сумму обработку чуть ниже подвинь. Все.

На третий заход внесения правок Артем сказал «Ладно, дай мне логин-пароль для Багги своего (шаблон который), неохота регаться». Ха, то есть он не видел Багги под авторизованным пользователем? Тогда понятно, откуда эти итерации =) Но зато все доделали в один день, меня вполне устроило. Правда, Артем потом сказал, что я «часто меняла исходные требования», но я их не меняла, просто они были в шаблонном проекте, а не расписаны на 50 листов А4.

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

В четверг я укатила в Питер на SQA Days, заранее предупредив Артема, что:
  • в чт меня 5 часов не будет онлайн
  • в пт-сб днем я буду редко.
Думаю, если бы не конференция, мы бы к выходным все доделали. Потому что Users Артем дал мне в четверг часов в шесть. Но смотрела я уже ближе к полуночи, после заселения в гостиницу и душа. Итерации моментального фикса провести не успели. Да и на выходных я была редко онлайн. Тем не менее к понедельнику все было готово и я проверяла уже комплексно:
  • системы есть и работают;
  • основные баги тоже есть.
Все 30 штук не проверяла, так как половина была уже под расширенную версию. А Артем говорил «Я никуда не пропаду, баги буду исправлять». Не соврал. Через неделю просмотрела внимательнее, составила список из 20 пунктов, где были доработки мелкие или вопросы (как дропнуть базу, как поднять бекап...). Созвонились, час общались, вносили правки онлайн. Все сделали Smile :)

Баги Артем вставлял костылями, иногда очень ржачными =) Админка у меня, например, веселая:


Ну где еще вы такую найдете? =)

Итого:
— Договорились на 3 недели. Я не верила в эти цифры, но они меня устраивали.
— Артем все сделал за неделю. За НЕДЕЛЮ, Карл!
— За пару часов я купила сервер, а Артем там все развернул.
— Баги фиксятся в день обращения.

Багги в открытом доступе не будет, а вот Users я разрешила оставить, можно посмотреть, потыкать Smile :)


Честно говоря, я после завершения проекта еще неделю в шоке ходила. Все так быстро, что просто в голове не укладывается. Я то думала, что еще месяц будет делать, потом неделю исправлять мои замечания... А тут вжик-вжик, и готово о_О 

Значит, надо срочно допилить и выложить лендинг. И можно ставить курс в расписание. О боги, через неделю уже можно запускаться! Я ждала этого полгода, а тут неделя и все! 

Курс уже начался и идет неделю (upd — этот курс уже закрыт), полет нормальный. Первая тема про локализацию, в чате ребята пишут:
— Вообще когда дз делала, чувствовала себя Шерлоком Холмсом немножечко)
— Понравилось? )
— Ага)

Так что я потихоньку начинаю задумываться о развитии Users. Какие еще интересные баги добавить, какой функционал. Оформлю требования и снова пойду к Артему, скорость работы мне нравится Smile :)

Комментариев нет:

Отправить комментарий