Меня зовут Артем и я iOS-разработчик в команде Speed. Задача моей команды — помогать продуктовым разработчикам быстрее доставлять фичи пользователям. Процесс разработки фичи включает в себя этапы, время выполнения которых не всегда напрямую зависит от скорости написания кода. На общее время разработки фичи влияют, например, скорость компиляции проекта и время прохождения автоматических проверок изменений при влитии изменений в master.
Недавно я общался с бывшим коллегой, он много лет проработал в Avito, а теперь работает в Facebook. Он с воодушевлением рассказывал про подход, используемый в Facebook для ускорения компиляции iOS-проектов. Это внутренний инструмент компании с кодовым названием Focus.
Его суть заключается в том, что разработчики работают с исходным кодом только тех частей проекта, в которые вносят изменения, а остальной код поставляется уже в виде скомпилированных бинарных файлов. Таким образом, тачка разработчика компилирует только исходный код, с которым он работает, а все остальное просто линкуется в готовом виде. Такой подход позволяет снизить время компиляции проекта в разы. В масштабах команды из десятков разработчиков экономия времени на компиляции проекта может составлять несколько человеко-дней за неделю.
Меня воодушевил успешный опыт с подходом Focus и мне захотелось попробовать внедрить его у нас. По моим оценкам профит от внедрения выглядел значительно более перспективным, чем текущее решение по ускорению разработки на базе демо проектов модулей, которым я занимался последний квартал.
Особенность нашей команды в том, что у нас нет менеджеров продукта, которые приносят нам задачи, мы сами являемся продактами и можем брать в работу задачи, которые считаем наиболее перспективными. Если осознаешь, что идешь неверным путем, можешь в любой момент изменить курс в нужном направлении, штурвал у тебя в руках.
Перед планированием очередного квартала я набросал TDR (Tech Design Review) по ускорению разработки, где описал идею с Focus, а затем обсудил ее с командой. Ребятам идея тоже зашла, и мы договорились исследовать внедрение этого подхода в следующем квартале и более предметно оценить профит.
Буквально на днях я приступил к этой задаче. Начал с того, что на коленке подсунул бинарь одного модуля и попробовал собрать проект. Все получилось. Впереди меня ждут прототипы двух ключевых вещей:
После этого я смогу замерить скорость компиляции проекта до/после и сделать выводы о перспективности подхода на нашем проекте. Если гипотеза оправдается, я составлю план по доведению инструмента до production-состояния с учетом удобства использования разработчиками, оценю подзадачи и мы возьмем их в работу в следующем квартале.
По этой задаче как, и по большинству других, у нас нет экспертизы в команде и разработчики часто делают что-то впервые. И когда получается результат — испытываешь огромный кайф от работы! На продуктовых задачах подобных эмоций у меня не было.
Мы ищем коллегу iOS-разработчика в нашу команду. Подобных идей много, а рук не хватает. Приходи на собес, пообщаемся.
В работе мы ставим амбициозные цели и не останавливаемся на достигнутом. Поэтому для нас так важно, чтобы каждый участник большой команды Авито разделял культуру компании. Погрузиться в неё помогает Манифест, в котором собраны наши основные ориентиры — миссия, ценности, принципы работы.
Avito — самый популярный сайт объявлений в России, классифайд №1 в мире. Месячная аудитория составляет 57,4 млн. — это больше трети населения России. Количество активных объявлений превысило 125 млн. Каждую секунду на “Авито” совершается более восьми сделок. А география сервиса — это вся Россия — от Калининграда до Дальнего Востока.