#ITeaTalks: Дима Маленко (rollApp) — про инженерный подход в аутсорсе и реализацию себя в стартапе
#ITeaTalks — это разговор двух айтишников и фанатов своего дела за чашкой чая. Автор и ведущий — Alex Grechanowski, marketing expert and consultant.
«Наибольший вклад в улучшение результата работы команды можно внести не кодингом, а остальными вещами, которые входят в понятие software engineering»
Досье. Дима Маленко — со-основатель и технический директор компании rollApp, платформы онлайн-виртуализации приложений. В 2004 году окончил ДНУ им. Гончара по специальности «Математическое обеспечение ЭВМ». С 2001 работает программистом, в 2004 занял пост тимлида. С 2006 по 2011 — менеджер в SoftServe. В 2011 вместе с Владом Павловым основал стартап rollApp.
Имеет ряд сертификатов от Microsoft, OMG и Scrum Alliance. Выступал на множестве конференциях в Украине и за рубежом, включая SEC®, Agile Eastern Europe, DEMO, Tizen Developer Conference, PechaKucha, TEDx. Cоавтор двух книг по технологиям Microsoft и ряда публикаций о разработке ПО. Живет и работает в Днипре.
Глава 1. Dima on Software
— Еще учась в университете, ты пошел программистом в VoIP стартап, а с получением диплома в 2004 ты уже «матерый» программист C++. Откуда такая тяга к работе?
«Матерый» — неправильное слово. Энергичный и успевший кое-что попробовать — более подходящее описание. Мне нравится разработка программ. Я просто искал возможности, где этим можно заниматься «по-настоящему».
— Кстати, а какова судьба того стартапа, P.E.T. Corp?
Тогда еще не было слова «стартап»:). Был работающий прототип, который даже кому-то показывали, но дальше этого не пошло.
— Потом, немногим более чем за 4 года, ты «прокодил» путь от программиста до тимлида в различных компаниях. В свои 23 года ты уже был сеньором?
Скорее не senior, а lead, который организовывает работу команды. Большинство проектов, с которыми мне тогда приходилось иметь дело, не были сложными с технической точки зрения. Но вот со стороны работы с требованиями, подготовки релизов, взаимодействия с клиентом все было достаточно непросто.
— Вообще, что в твоем понимании Senior Developer?
Эта дискуссия может занять часы:). To keep the long story short: Junior Developer — может что-то реализовать по детальной спецификации, но не всегда с первого раза. Middle Developer — без проблем реализует спецификацию, сам принимает правильные решения в несложных ситуациях. Senior Developer — может создать спецификацию, по которой другие сделают, что надо, и может выбрать наилучшее вариант в ситуации, когда нет однозначно правильного решения.
— Дальше новые рубежи — 5 лет в SoftServe в качестве Project/Program Manager. С чем связан переход от программирования к управлению? Привлекала работа с клиентом?
Да, мне нравилось работать с клиентами. К тому же, я видел, что наибольший вклад в улучшение результата работы команды можно внести не кодингом, а остальными вещами, которые входят в понятие software engineering.
— В кризис 2008-2009 годов тебе повезло — ты с семьей едешь в США. Как получилось, что выбрали именно тебя?
«Повезло» — это опять неправильное слово. Я был бизнес-аналитиком в команде, которая запускала работу с новым клиентом (медицинской лабораторией). Часть такого запуска — командировка ключевых людей к клиенту для установления связей с ключевыми людьми у клиента, настройки процессов, сбора требований. Мы хорошо сделали эту часть и успешно выполнили пилотный проект. Перед запуском новых проектов клиента удалось убедить, что для успеха этих проектов важно иметь человека, который будет постоянно общаться с пользователями и другими стейкхолдерами. Так я попал в южную Калифорнию на работу on-site с этим клиентом.
Сан-Франциско, недалеко от Алькатрас
— Расскажи об этом годе работы бизнес-аналитиком. Чем занимался, как был выстроен процесс?
Процесс менялся от проекта к проекту, так как требования, стейкхолдеры и другие параметры могли существенно отличаться. Почти всегда это был итеративный процесс.
Один из первых проектов мы делали в условиях очень сжатых сроков. Нужно было автоматизировать управление и трекинг многоступенчатого workflow для новой части лаборатории к тому моменту, как будет установлено оборудование. Выполнить это более «безопасным» для совершенно новой для нас предметной области способом, проанализировав требования и утвердив дизайн вначале и обучив пользователей в конце, не было никакой возможности. Мы смогли это сделать только разбив весь проект на итерации. Так что сбор требований для последних этапов workflow мы делали одновременно с разработкой и обучению пользователей первым шагам процесса.
— То есть это было практическое освоение Agile? Получилось ли успешно применить его?
Это было просто использование подходящего инструмента для стоящей перед нами задачи. Все получилось, новый отдел лаборатории начал свою работу вовремя.
— Чему тебя научила работа в SoftServe?
Очень многому:). Работе и взаимодействии в большой распределенной компании, организации продаж, работе с финансами, управлению проектами и людьми, взаимодействию с вышестоящими менеджерами — всего и не перечислишь.
Глава 2. Виртуализация приложений
— В 2011 ты ушел из SoftServe, и вы с Владом Павловым запустили rollApp. Именно запуск своего стартапа был причиной ухода из компании? Тяжело ли было принять это решение — ведь ты уходил, по сути, в никуда?
Я начал работу над rollApp еще во время работы в SoftServe и ушел, когда удалось привлечь инвестицию. С этой точки зрения нельзя сказать, что это был уход в никуда.
— Какую технологию ты использовал для создания rollApp?
Первая версия была создана с использованием Flash на клиенте и Python на сервере. На тот момент многое из того, что мы сейчас знаем как HTML5, еще не было реализовано. Flash был установлен на 90% десктопных компьютеров и был идеальным инструментом, чтобы обеспечить взаимодействие пользователя с запущенным в облаке GUI приложением и создать иллюзию, что приложение запущено на локальном компьютере.
— Какие факторы повлияли на выход на рынок? Как получили первую инвестицию, seed round?
У нас был работающий прототип, хороший рассказ о том, кому и зачем это нужно.
— У вас более миллиона пользователей. Кто ваш идеальный клиент? Какую задачу вы решаете?
Мы позволяем запускать сложные приложения без скачивания и установки; на платформах, которые этими приложениями не поддерживаются; получать для работы больше ресурсов, чем есть на локальном компьютере.
— Что позволяет вам масштабировать бизнес?
Мы все время работаем над увеличением количества приложений, доступных на нашей платформе, и над оптимизацией процесса их публикации. В нашем случае хорошо работает размещение приложений в Chrome Web Store, так как пользователи Chromebooks — это одна из главных категорий нашей целевой аудитории.
Также мы создаем и развиваем сервисы, основанные на нашей технологии. Например, благодаря тому, что мы можем запустить больше 150 разных приложений на любом компьютере в один клик, rollMyFile позволяет открыть для просмотра больше 500 различных типов файлов простым drag’n’drop. И мы даем другим разработчикам API, чтобы всторить аналогичные функции в их приложения.
— Помимо business development, какие еще growth hacking стратегии у вас работают?
Помогает взаимодействие с разработчиками, например, с Document Foundation, которая развивает LibreOffice. Пользователи часто ищут возможность использовать привычное ПО на новых платформах, и с нашей помощью разработчики могут легко дать им такую возможность.
Tizen Developer Conference
— Вы работаете уже достаточно давно. Какие задачи вы сейчас ставите перед собой?
Одна из вещей, которой мы уделяем сейчас много внимания — поиск ниш, в которых применение наших технологий может сделать возможным то, что раньше было немыслимым. Это требует несколько другого взгляда на то, что мы делаем, и мы постепенно трансформируемся из продукта/сервиса в платформу.
— Как изменилась сама индустрия облачных сервисов за шесть лет? Какие тренды в индустрии ты можешь отметить?
И пользователи, и бизнесы перестали бояться и стали более широко использовать облачные технологии. Намного меньше негативного отношения к тому, что наш сервис работает только в онлайне, и необходимо постоянное подключение к Интернету.
— Какими будут приложения в будущем?
Надевать шапку оракула — занятие неблагодарное. К тому же, ответ получился бы слишком длинным. Я уже рассуждал на эту тему тут, тут и тут :).
— Какие приложения стоит разрабатывать, а какие нет? Почему?
Всегда стоит разрабатывать успешные приложения. А если серьезно, стоит разрабатывать сервисы.
— Команда из уездного города X хочет основать технологический стартап. На какие три вещи стоит сделать упор в самом начале, а что — отложить на будущее?
Команда из уездного города Х хочет неправильного. Она должна хотеть реализовать какую-то идею или решить какую-то проблему. Создание технологического стартапа — это только один из способов этого добиться.
Глава 3. Команда
— Такие атрибуты стартапа, как нетривиальные задачи, опционы, «удаленка», особая культура — это может конкурировать с зарплатами и стабильностью, которые готов предложить аутсорсинговый гигант?
Это не противопоставление нетривиальных задач и высокой зарплаты. Да и не противопоставление вовсе. Работа в аутсорсинге ориентирована на процесс. И компания, и человек получают вознаграждение за участие в процессе.
Если результат работы аутсорсинговой команды приносит клиенту огромные продажи и миллионы новых пользователей, разработчики получат те же $N в час и по условиям NDA не смогут даже рассказать о том, что приложили руку к этому успеху. Работа в продуктовой компании или стартапе — это шанс реализовать свой потенциал. Но также это и полная ответственность как за свои успехи, так и за неудачи.
— У rollApp распределенная команда. Как это помогает или мешает в работе?
Я бы с радостью собрал всю команду в одной комнате. К сожалению, даже в крупных городах очень сложно найти правильных людей в какие-то разумные сроки. Расширение географии помогает расти быстрее.
— Как выстраивается процесс разработки, какие технологии и методологии вы используете? Есть ли у вас какие-то свои наработки и фишки, которые помогают в процессе?
Мы стараемся пробовать все, что может нам помочь, и встроить в процесс те инструменты и подходы, которые действительно приносят нам пользу. Очень широко используем Slack. Со временем он превратился в такой себе центр оперативного контроля над происходящим. Мы там общаемся, через Slack разные элементы нашей системы общаются с нами.
— Как ты считаешь, что главное в стартапе?
Вера в себя и желание сделать что-то полезное людей.
— Чем именно ты занимаешься как CTO? Как проходит твой рабочий день?
Моя задача обеспечивать функционирование сервиса и развитие технологической платформы компании.
Я стараюсь начинать свой день с того, чтобы выполнить какую-то задачу, которую мне необходимо выполнить самому. Дальше я проверяю почту, отвечаю на срочные письма и, если нужно, корректирую план на день. Потом провожу ежедневное совещание с командой. А дальше обычная работа над запланированными задачами. Если остается энергия и возможности, то поздно вечером занимаюсь какими-то исследовательскими задачами и «необязательным» программированием.
— С какими проблемами ты сталкивался — технологии, люди, управление, партнеры?
Со всеми :)
— Какие шишки вы набили в ведении облачного бизнеса? От чего ты можешь предостеречь?
Сложно объяснять пользователям, зачем им нужно то, что мы делаем. Когда у пользователя возникает проблема или задача, для которой мы можем дать хорошее решение, ему не приходит в голову «мне нужно использовать для этого приложение в облаке».
Если предостерегать от чего-то, так это от попыток объять необъятное и делать много всего разного одновременно. Нельзя терять фокус. Его можно менять, но если его размыть, то появится вязкость, которая будет мешать двигаться вперед.
— Что ты можешь порекомендовать человеку, который хочет прийти работать в продуктовую компанию? Как лучше подготовиться к интервью?
Нужно продемонстрировать свою способность достигать результата, а не просто работать. Изучите все, что сможете найти о компании, и расскажите о том, как вы можете помочь компании или команде, в которой хотите работать, достичь ее целей. Покажите, что вы хотите работать именно там, а не в первом попавшемся месте.
Глава 4. Личное
— Как поменялось твое отношение к бизнесу за 6 лет в роли СТО? Чем отличаются 6 лет в аутсорсе от 6 лет в своей продуктовой компании?
Мое отношение стало менее романтичным и более прагматичным. Работа в большой компании отличается от работы в маленькой так же, как поездка на туристическом автобусе отличается от похода на байдарке. В автобусе комфортно, но мало что видно и сложно повлиять на маршрут, а в байдарке открываются незабываемые виды, но одно неосторожное движение может перевернуть лодку.
— У тебя огромный опыт. Ты полностью реализуешься в rollApp или еще занимаешься консалтингом?
Я не занимаюсь консалтингом целенаправленно, но всегда стараюсь помочь тем, кто приходит с вопросами.
— Что помогает тебе совершенствоваться как предпринимателю? Что тебя мотивирует?
Меня мотивирует чужой успех. Я знаю, что я ничем не хуже, и если не буду отвлекаться, то тоже смогу добиться значимых результатов.
— Ты участник многих конференций. Какие тренды можешь отметить?
Многие конференции становятся больше, как по количеству выступлений, так и по количеству участников. К сожалению, часто это не помогает конференциям стать лучше.
— На каких конференциях планируешь побывать в ближайшее время?
IT NonStop в Днипре. Также надеюсь, удастся попасть на XP Days в этом году.
Конференция ITEM
— Расскажи про свой проект Sonar.One.
Sonar.1 — это сеть подкастов на темы, связанные с IT, технологиями, бизнесом и другими профессиональными интересами. Я очень люблю подкасты. Это одна из вещей, которая помогает мне много знать и общаться с умными людьми. В прошлом году мой коллега Алексей Шкурко после окончания университета через AIESEC отправился на полугодовую стажировку в Индию. Я подумал, что нельзя упускать такой шанс, и мы сделали подкаст «Доброе утро, Индия». Когда Алексей вернулся в Украину, индийская тема исчерпала себя, но подкасты хотелось продолжить. Так появился Sonar.1.
— Ситуация: тебя высадили на необитаемый остров на три месяца, еда и вода есть, дали ноутбук(и) с Интернетом. Чем ты будешь заниматься?
Время на необитаемом острове — это уникальный ресурс, которые нужно использовать для создания чего-то уникального. Возможно, я бы начал делать видео-блог «Цифровой Робинзон».
— Поделись лайфхаками. Какие приложения у тебя на телефоне? Как организовано рабочее место? Какие любимые приложения для управления проектами и изучения иностранных языков?
В телефоне стандартный набор: Slack, Spark для почты, Things для задач, Byword для заметок, Overcast для подкастов, Instapaper для чтения статей. Из нестандартного, пожалуй, только 7 Minutes Workout. Рабочее место, которое почти всегда со мной — MacBook Air. Для управления разными проектами я использую Trello. Английский не изучаю, я его использую:). Совершенствовать его помогают подкасты и чтение.
— Как удалось выучить английский язык?
Три года в Лицее информационных технологий в Днипре. Если интересно, в подкасте можно послушать более подробный рассказ.
— Какие книги и подкасты ты можешь порекомендовать читателям?
Подкасты:
— a16z Podcast — подкаст от Andreessen-Horowitz о передовом крае технологического бизнеса;
— Exponent — подкаст Бена Томпсона с глубокой аналитикой событий мира технологий;
— TED Radio Hour — если нет времени слушать все выступления TED.
Книги:
— Бен Хоровиц, «Легко не будет»;
— Michael Lopp, «Managing humans»;
— Jim McCarthy, «Dynamics of Software Development».
— Какая музыка тебя вдохновляет?
Я не большой меломан. Сейчас лучше всего работается под какую-то классическую музыку или просто в тишине.
— Дима, большое спасибо за беседу. Где тебя можно найти в Интернете?
И тебе спасибо за вопросы. Меня можно найти на www.dmalenko.org или @dmalenko в Twitter.