«Excel в браузере, который никому не нужен» — откровения бывшего разработчика Uber

«Excel в браузере, который никому не нужен» — откровения бывшего разработчика Uber

Иногда всего один случай может полностью изменить всё, но отчаиваться не стоит.

image

Разработчик программного обеспечения по имени Мэтт Баста недавно опубликовал занимательный подробный рассказ о своём опыте работы в Uber, где ему поручили создать альтернативу таблицам Excel для работы с большими данными.

В 2016 году Баста присоединился в подразделение Uber под названием «Crystal Ball», где его основной задачей стала автоматизация процесса создания моделей для анализа данных. Компания в то время активно работала над завоеванием китайского рынка и для этого нужны были надёжные и удобные инструменты по работе с большими данными.

«Вся моя работа и работа команды, в конечном итоге, заключалась в поддержке Uber China. R-Crusher был инструментом, который помог нам получить данные, необходимые для конкуренции с Didi», — вспоминает разработчик.

Некоторое время после трудоустройства Баста получил своё первое задание: создать удобный веб-интерфейс для работы с данными из R-Crusher, который внешне и функционально должен был быть похож на Microsoft Excel.

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

Первая версия графической оболочки для R-Crusher, которую окрестили «Weasley», была готова в течение нескольких недель после старта проекта, однако следующие полгода она лихорадочно допиливалась и дорабатывалась, чтобы корректно выполнять возложенные на неё задачи. В разработке принимало участие с десяток различных специалистов.

Итоговый инструмент, разработанный командой «Crystal Ball», представлял из себя клон Excel, написанный на JavaScript и работающий в браузере. В целом, он удовлетворял всем выдвинутым к нему требованиям. Однако позже, в ходе дополнительного тестирования, выяснилось, что Weasley и оригинальный Excel выдавали немного разные результаты при работе с одними и теми же данными.

После долгих копаний в коде, формулах и обсуждений с коллегами, Баста обнаружил, что при создании циклической ссылки в формулах оригинальный Excel останавливал расчёт, если разница между последними значениями ячейки падала ниже некоторого порогового значения. В результате исполнения этого алгоритма могли возникать ошибки, в результате чего Excel выводил не совсем верное значение, но всех это, как ни странно, устраивало.

Таким образом, у «Crystal Ball» по итогу получился улучшенный аналог Excel, лишённый его технических недостатков и от этого более точный. Тем не менее, расчёты должны были полностью совпадать с Excel, в связи с чем Басте пришлось «подкрутить» работу своего алгоритма, чтобы он точно совпадал с выводом из продукта Microsoft.

Тем не менее, главное — результат, и в июле 2016 года вдохновлённая команда внедрила готовый «Excel в браузере» в эксплуатацию, и он даже успел показать некоторые позитивные результаты.

Однако руководство Uber сыграло с разработчиками Weasley злую шутку — компания DiDi, с которой Uber так рьяно хотел конкурировать в Китае, внезапно объявила о приобретении подразделения Uber China. В связи с этим, инструмент, работа над которым велась больше полугода, был просто удалён с платформы, чтобы не раскрывать китайским инвесторам внутренние алгоритмы работы американской компании.

Чтобы не терять плодов своей кропотливой работы, Баста почти сразу же опубликовал исходный код своего проекта на GitHub в надежде, что он ещё пригодится другим разработчикам.

Сам Баста считает свой опыт работы в Uber ценным уроком и не жалеет потерянного времени на написание и отладку кода. «Наше отношение к тому, что мы производим, является хорошим показателем зрелости. Для нас естественно хотеть, чтобы наша работа была прочной и долговечной. Но с другой стороны, отказ от вашей работы даёт возможность понять, что в ней можно было бы сделать лучше», — отметил Баста.

«У вас не будет возможности извлечь уроки из проекта, если вы расцените его закрытие как провал: зачастую нужно многое узнать о том, какие нетехнические аспекты проекта вышли из строя. Возможно, их нет, и руководство компании — просто группа дураков. Но зачастую это не так, а ваш искусно отфрезерованный винтик был вырван из цельного механизма не потому, что его неправильно поняли, а потому, что он не работал так же отлаженно как часть более крупной системы, в которую был установлен», — подытожил автор.

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!