Рождение Upwork: украинский разработчик рассказал, как oDesk и Elance «соединяли» в единую фриланс-платформу

4554
2

5 мая 2015 года oDesk официально стал Upwork. Этот день ознаменован не только сменой названия компании, но и запуском новой платформы, соединяющей проекты с талантливыми профессионалами еще быстрее и проще, чем когда-либо. О том, как пошагово перенести действующую платформу на новый домен и видоизменить ее без проблем и накладок, AIN.UA рассказал Ярослав Заремба, один из лучших разработчиков на платформе, который стоял у истоков oDesk и сейчас успешно руководит отделом разработчиков на Upwork.

Выбор программного обеспечения

Я был одним из разработчиков платформы оDesk, когда компания только выходила на рынок. С тех пор успешно завершил множество фриланс-проектов и задач связанных с работой самой платформы. Но запуск Upwork, стал своего рода вызовом и для меня.

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

В сущности, усилиями всех команд Upwork мы построили новую платформу, используя сервисы на основе Java для предметной области, и Symfony, AngularJS и Bootstrap для интерфейсной части.

  • Мы переместили предметную область из монолитного PERL-приложения в коллекцию сервисов, используя несколько компонентов из стека Netflix Open Source Software (OSS), который мы интегрировали с контейнером сервисов Dropwizard.
  • Среда разработки Symfony PHP предоставляет нашему активному сообществу разработчиков необходимый баланс производительности и оперативности.
  • AngularJS и Bootstrap позволили нам оперативно создать насыщенный, интерактивный и адаптивный опыт, а также заложить основу, которую в перспективе легко можно расширить и настроить.

Команда, задачи и дедлайны

При создании новой платформы можно легко поддаться соблазну создать такую, которая решила бы все текущие и будущие проблемы. Этот соблазн также усиливался тем, что над проектом работали команды из двух разных компаний (Elance и oDesk), которые были объединены в одну и, тем не менее, имели разные исторические приоритеты. Такой огромный объем работы может быстро выйти из-под контроля.

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

Upwork_VIS_brandstory_rd3C-19 (3)

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

Для нового дизайна и новой платформы мы переформатировали все компоненты, по сути все создавалось с нуля, просто учитывался предыдущий опыт.

Оценка рисков

Безусловно, переход на новый домен с новым именем и новым наполнением как платформы, так и бренда компании, не является быстрым и простым процессом для любой организации. Вопрос нового домена был архиважным, так как он мог оказать существенное влияние на бизнес в целом и трафик сайта в частности — это то, на чем постоянно делало акценты руководство. Поэтому мне и всей команде пришлось вникать и в другие аспекты работы платформы, синхронизировать свои действия с другими отделами. К запуску каждый разработчик знал все о маркетинговой и PR-стратегии Upwork.

Мы годами выстраивали репутацию oDesk в поисковых системах, поэтому нужно было обеспечить должным образом переадресацию с oDesk.com на Upwork.com. Кроме того, изменение домена потенциально могло негативно повлиять на все наши системы. Вскоре после завершения перехода, отдел связей с общественностью должен был проводить кампанию по приглашению пользователей на Upwork.com. И все должно было быть готово к приему огромного трафика, увеличенного числа звонков в отдел обслуживания клиентов и переиндексации поисковой системой во время запуска.

Чтобы максимально увеличить шансы поддержания прежнего уровня SEO, мы разместили домен Upwork.com онлайн задолго до запуска. За несколько недель до перехода мы начали публиковать контент на своем новом микросайте Hiring Hub, чтобы «разогреть» домен.

Семь раз отмерь

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

За несколько недель до лонча был заморожен выпуск новых функций, чтобы позволить кодовой базе стабилизироваться. Мы стремились тщательно все протестировать по нескольку раз, чтобы запуск был простым и «безболезненным». После запуска понадобилось около недели ожидания, чтобы подтвердить стабильную работу сайта.

К старту готов

Наряду с изменением названия, домена и дизайна, возник вопрос координирования даты и времени запуска с пресс-релизом, что не является нашей рутинной работой. Большинство проектных команд способны заменять колеса в движущемся поезде. В нашем случае, казалось, будто мы меняли крылья самолета во время полета. Чтобы обезопасить себя от форс-мажоров, мы тщательно прописали каждую процедуру. Мы также держали всю глобальную команду разработчиков начеку. Пресс-релиз должен был выйти в 6:30 утра по тихоокеанскому времени.

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

Ярослав с вице-президентом по развитию Upwork Четилем Олсеном отвечают на вопрос журналиста на пресс-конференции по случаю официального запуска компании в Украине в июне 2015 года

Ярослав с вице-президентом по развитию Upwork Четилем Олсеном отвечают на вопрос журналиста на пресс-конференции по случаю официального запуска компании в Украине в июне 2015 года

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

В заключение

Запуск Upwork послужил новым ценным опытом для меня. Из всей нашей масштабной миграции я извлек следующее:

  • Планирование, релиз и тестирование – ключевые элементы успеха.
  • Необходимо прогнозировать все возможные риски, с которыми можно столкнуться при запуске, даже, когда кажется, что такого случиться не может.
  • Следует выпускать как можно больше функций и тестировать их до запуска, чтобы минимизировать объем необходимых изменений во время такого выпуска.
  • Нужно делать пробный прогон запуска, чтобы обнаружить недостающие элементы.
  • Необходимо выделять больше времени в день запуска, оно может вам понадобиться.

Автор: Ярослав Заремба, руководитель отдела разработки Upwork

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

Комментарии | 2

  • >> После запуска понадобилось около недели ожидания, чтобы подтвердить стабильную работу сайта.

    Помню времена, когда полная регрешн сюита от автомейшен команды проходила в течении 3-4 дней. Добавить сюда работу ручной тестировки для проверки непокрытого тестами функционала и… о боже, вот и неделя) Или как-то неправильно в статье написано, или кто-то за столько лет так и не в курсе как работает QA команда)

Поиск