Разработка
Без денег, опыта и живого общения — от идеи до приложения: история inSearch App
Для того, чтобы запуститься в App Store & Play Market, нам потребовалось девять месяцев. inSearch App стал почти как ребенок, занимающий все свободное время.
inSearch App – приложение, помогающее собрать компанию на интересное событие. Вся команда проекта работает удаленно, а история разработки ведется в группе во «ВКонтакте». Алина Михайлова, руководитель inSearch App, написала для нас статью о том, как развивался проект.
Мы начинали как учебный проект. В начале прошлого лета в лучшей группе для iOS разработчиков — iOS Development Course — один из участников предложил потренироваться участвовать в совместных проектах и поработать над общими идеями. Откликнулось много желающих. У меня не было достаточно опыта в разработке, но я чувствовала, что обязана поучаствовать. Поэтому взялась за организацию. Вместе с инициатором мы составили списки желающих поучаствовать, создали обсуждение идей, отобрали 8, которые нашли отклик у участников.
Одна из идей была моей — поиск компании на любое событие. Меня всегда удивляло, что до сих пор, даже имея сотни друзей в соц.сетях, мы все равно ничего не знаем про их интересы. Каждый раз предложить куда-то сходить — это какая-то лотерея, которую можно было бы оптимизировать. Мы стесняемся пригласить, нас стесняются пригласить, то нет времени, то нужно придумывать причины для отказа. В то время я уже начала работать удаленно и страдала от популярной проблемы в таком формате — мне не с кем обедать, не с кем пойти поработать из парка, погулять в обеденный перерыв, посидеть в рабочие будни в кафе с возможностью прерваться на skype-конференцию.
Но зачем устраиваться на обычную работу и сидеть по 8-10 часов в одном и том же помещении, посещая одно и то же кафе, с одной и той же компанией сотрудников и обсуждая одни и те же темы, если я могу каждый день выбирать где и с кем пересечься — с коллегами по отрасли, чаще видеть друзей или просто интересных людей? Это явно не тот случай, когда стоит прогибаться под устаревшие шаблоны поведения.
У меня не было законченных приложений, и примерно понимая, как ведутся удаленные проекты, я не знала, на что подписываюсь в данном случае. На старте нас было 9 — я, дизайнер и 7 iOS разработчиков. Во все команды брали всех желающих — хотелось сделать демократичные условия и предоставить равные возможности.
Каждая команда завела свое обсуждение, где дальше планировалось публиковать посты о том, как мы движемся к успеху. Если надо — спрашивать совета или получать поддержку от всего сообщества разработчиков. Пример из моего первого поста:
Примерно через месяц в живых осталось только два проекта — мое приложение inSearch App — с тремя участниками — и проект Glug Glug, основатель которого умел программировать сам. Все работали удаленно, а это тяжело — поддерживать мотивацию тех, кому не можешь даже в глаза посмотреть. Это только в сказках или в западных статьях рассказывают об удаленной работе с ежедневными видеоконференциями. Может, в других отраслях это и работает, но если речь идет о разработчиках — не все готовы поставить свое фото на аватарку или даже вообще созваниваться (общаться голосом), поэтому видеозвонки мы так и не попробовали внутри команды (надеюсь исправить:)).
В августе в моей команде все было грустно: один участник переехал в другую страну и не появлялся, второй перегорел идеей и предложил бросить это начинание и переключиться на что-то попроще. Попроще… да я даже не знала, во что ввязываюсь. И что приложение такой сложности как наше не делают первым.
Когда он заявил, что не хочет продолжать — для меня это был шок. Надо было либо смириться, что все распадается, либо — рискнуть сделать новый набор. Что я и выбрала. Появились новые разработчики, работа продолжилась. Дизайнера с нами уже не было, требования часто менялись, так как я общалась или наблюдала за потенциальными пользователями и появлялись новые идеи. Гибкие методологии — это хорошо для команд, состоящих из профессионалов и готовых к диалогу. Когда вы только начинаете — ТЗ хотят все. Но у нас не сложилось.
В то же время я занялась поисками Android разработчиков, так как сервис планировался массовый и хотелось расти. В сентябре нас снова стало девять. 3 iOS разработчика, 3 Android, 1 дизайнер и даже тестировщик. Находить девятого участника всегда проще, чем третьего.
Но это не всегда приводит к эффективности. Начались внутренние конфликты связанные с тем, как надо писать и комментировать код; были попытки заняться рефакторингом чужого кода вместо написания функционала. У нас не было задачи делать что-то совершенное, нет, в это время стало понятно, что разработка затягивается и очень хотелось вообще довести приложение до релиза.
Новые участники также легко покидали проект. Кого-то мне приходилось исключать, кто-то сам пропадал без объяснения причин. Это больше не задевало — постепенно выработался иммунитет. Я понимала, что не имея ни опыта, ни зарплат, ни мотивационных встреч — и каждый раз борясь за свободное время участников — ведь все совмещали с основной работой — у меня мало шансов. Это был даже не стартап, никаких обещаний золотых гор. Конфликты, постоянная нехватка ресурсов, программирование перед проектированием, ограничения по серверной части (мы использовали бесплатное решение в виде backendless.com) — все это было слишком сложным испытанием для новичков.
Чем дальше мы двигались — тем больше я понимала, что на этом, этом и вот этом моменте стартапы обычно распадаются. Мы не были стартапом, но все же. Почему нам удалось выжить? Несмотря на удаленную работу и ограниченное количество способов коммуникации (slack, skype, социальные сети и инструменты для работы) — мне удалось создать атмосферу, что быть новичком или чего-то не знать — это нормально.
Почти каждый участник на старте учился работать с гитом — и ни разу не было упреков или пренебрежения, «да как этого можно не знать?». Это так отличалось от офлайн общения со студентами технических специальностей. У нас было 5 часовых поясов и участники от 18 до 37 лет. И эти различия никогда не становились преградой для совместной работы.
Мешали же совсем другие вещи, которые привели к созданию правил работы внутри проекта:
- Каждый день выходить на связь и предупреждать, когда не сможешь. У нас нет офиса, куда все могут приезжать, и вся работа идет в свободное время, зачастую коммуникация асинхронна и 95% идет текстом — это значит, нужно появляться каждый день в чате/соц.сетях и реагировать. За все это время я не помню, чтобы были исключения, ведь даже на новый год мы поздравляли друг друга одними из первых.
- Участвовать не только на словах. Кто ничего не делает — в проекте не задерживается. Нет ничего более демотивирующего, когда ты один вкалываешь, а остальные участники ничего не делают. Я старалась это пресекать и исключала тех участников, которые не справлялись с задачами. Учиться тоже не могла — все время уходило на коммуникацию, а не собственное образование.
- Не переходить на личности и не оскорблять других участников. Если в офисе после безобидной шутки можно помириться или наоборот высказать все, что думаешь — то в онлайне это часто заканчивается игнором, удалением из чата/контактов и внесением в черные списки везде, где можно. Поскольку вся невербальная реакция в нашем случае была недоступна, это правило приобретало особую важность.
- Позже добавилось еще одно правило, выработанное на горьком опыте — говорить только правду в рамках выполнения задач и того, чем занимаемся. Лучше честно признать, что еще не знаешь или не проходил, чем строить из себя более опытного разработчика или рассказывать о портфолио, которого нет. Для удаленной работы критически важно доверие, нет доверия — нет мотивации и смысла работать вместе. Любая ложь убивает доверие.
Всю историю проекта я веду в открытом доступе, если там хоть раз была бы ложь — мне бы никто не поверил и не пошел бы дальше. Это большая ответственность; к счастью, тогда нашу историю мало читали, и оправдываться или подвергаться критике внешних пользователей нам не пришлось.
Для того, чтобы запуститься в App Store & Play Market, нам потребовалось девять месяцев. inSearch App стал почти как ребенок, занимающий все свободное время. Как отметить такое важное событие, если вы с разработчиками в разных городах? Заказать торты в виде иконок приложения и устроить трансляцию в Periscope, чтобы вместе загадывать желания и задувать свечи.
Сейчас в нашей команде 8 участников, с момента разработки остались только я и Никита (Android разработчик). С отношением к идее — возможности находить любую компанию на любое событие — произошли изменения. Если на старте Никита присоединился только потому, что ему было интересно поработать в команде (и почти все равно над чем), то теперь он увидел в проекте больше перспектив и отвечает за всю техническую составляющую проекта :). У меня же наоборот — раньше хотелось все попробовать и иногда не хватало компании, я горела этой идеей, а теперь свободное время уходит на проект и искать на события никого не нужно. Хотя…
Я все еще работаю удаленно и надеюсь, что с помощью inSearch App смогу находить компанию пообедать и поработать. В любом городе. В любое время.