Миллионы людей пользуются облаком Dropbox. Многие из них знают о возможности предложить идею нового функционала. Но только избранные ждут реализацию одной самой желанной фичи уже десять лет. В статье посмотрим, как Dropbox удаётся столь долгий срок не обращать внимание на потребности пользователей.
Как и любая концепция, утилитаризм не лишён критики. Тем не менее, с точки зрения разработчика программного обеспечения выглядит вполне разумным в первую очередь вносить в продукт изменения, желаемые большинством пользователей. А когда компании создают специализированные порталы и формы обратной связи с целью сделать глас народа громче, это не может не радовать.
Но не каждой сказке суждено стать былью.
Оглавление
Как всё начиналось
2008 год ознаменовался Олимпийскими играми в Пекине, мировым финансовым кризисом и терактами в Мумбаи. Поэтому неудивительно, что на фоне этих событий новость о рождении мало кому известной компании по облачному хранению данных теряется. И всё же Dropbox из заводи бизнес-инкубатора Y Combinator вышел в открытый океан реального рынка.
Я познакомился с детищем Дрю Хьюстона и Араша Фирдоуси в январе 2011-го будучи студентом. Кто-то из нашего потока посчитал хорошей идеей обмениваться учебными материалами через Dropbox. Я получил приглашение в общую папку группы, а товарищи, обладающие суперсилой записывать лекции, а не играть на них в Балду, стали выкладывать туда фотографии своих конспектов.
В июле 2012-го я купил аккаунт в Dropbox. Причина уважительная: я потерял файлы с музыкой собственного производства. Если точнее, то удалил их своими же руками. Сейчас уже и не вспомнить, как так вышло, но отныне хранить все важные данные в облаке стало непреложным правилом. Неприятности с жёстким диском и непослушными руками стали более не страшны.
С тех пор история Dropbox стала длиннее. 500 петабайт пользовательских данных были перенесены с ресурсов Amazon на собственные сервера, запущена линейка продуктов для бизнеса, приобретены несколько компаний, а доход превысил два с половиной миллиарда долларов в год.
Стремясь идти и дальше только вперёд, Dropbox запустил портал Ideas, дабы знать о желаниях пользователей и предоставлять им самые востребованные функции.
Есть идея!
Я время от времени создаю небольшие программы и утилиты для собственных нужд, а также разрабатываю библиотеку. Файлы, связанные с этими активностями мне, безусловно, дороги, а потому живут в синхронизируемой с облаком папке.
Но на каком бы языке программирования вы ни писали код и какую платформу ни использовали, в процессе разработки будут появляться автоматически создаваемые временные файлы и директории. Я веду разработку на C#, а сборка проектов в Visual Studio приводит к появлению папок bin и obj, которые синхронизировать с облаком нет никакого смысла.
Кто-то может заметить: “Ну и пусть себе синхронизируются, Интернет нынче быстрый”. Разумно. Но когда файлов много, процесс может занимать весьма заметное время даже с хорошей скоростью сети. Ведь загрузить один файл размера N не то же самое, что M файлов общим объёмом N. Второе будет дольше по понятным причинам: нужно для каждого файла отправлять отдельные запросы, возможно, открывать соединения, принимать ответы от сервера и т.д.
Есть и другой пример — папка obj, генерируемая утилитой docfx, с помощью которой я собираю сайт со справочными материалами для своей библиотеки. Временами там обнаруживались тысячи мелких файлов, синхронизация коих с облаком занимала не меньше часа. Помимо того, что это бессмысленная трата времени и пропускной полосы Интернета, приходилось держать компьютер включенным, пока Dropbox не закончит свои дела.
В какой-то момент это начало напоминать мазохизм, а он не входит в круг вещей, от которых я получаю удовольствие. Возникла естественная потребность в следующем функционале:
Указать паттерны имён файлов и папок, которые не должны отправляться в облако, оставаясь локально на компьютере. По сути, речь идёт о файле, аналогичном .gitignore в системе контроля версий Git.
Оказалось, что Dropbox ничем помочь не может, а людей, столкнувшихся с такой же проблемой, много. Тогда-то я и вышел на идею Add .dropboxignore directory to exclude folders without using selective sync, юбилей которой мы и собрались здесь все отметить.
Vox populi
Желание видеть свет лампочек, зажигающихся над головами пользователей, похвально. В статье How ideas shared on the Dropbox Community are inspiring new features коммьюнити-менеджер Эмма Фэй не скрывает благих намерений: компании важно слышать, какие функции и изменения нужны аудитории, и предоставлять их. Подчёркивается, что Dropbox относится к этому очень серьёзно.
Процесс выстроен просто: пользователь создаёт идею на портале Ideas, после чего другие голосуют за неё. Затем сотрудники Dropbox начинают менять статусы, решая, как быть с данной инициативой. В конце концов, если в компании согласны, что изменение будет полезно для продукта и его пользователей, то по окончании реализации будет выставлен статус Delivered.
В разделе All Ideas указано общее количество идей на данный момент — 889. При этом в статусе Delivered лишь 27. Наверное, это самые желанные предложения, с наибольшим количеством голосов? Нет. Более того, абсолютный лидер списка — обсуждаемая в данной статье идея — последовательно игнорируется компанией вот уже 10 лет. Выходит, что реализуется лишь 3 процента идей.
На сегодняшний день у виновника торжества 1300+ голосов, 600000+ просмотров и свыше 1000 комментариев. У ближайшего конкурента — отклонённой идеи Offline mode for Dropbox Paper web? — количество голосов не дотягивает и до 500, а просмотров и комментариев на порядки меньше. Что касается ближайшей реализованной, статистика такая: 200+ голосов, 70000+ просмотров и 150+ комментариев.
Прежде, чем мы порассуждаем, как так вышло, заглянем немного в историю.
Хронология событий
Касательно даты создания идеи я не уверен, но прямо сейчас на сайте значится 18 декабря 2014 года. Тем не менее, первый комментарий датируется 16 декабря 2014 года. Вряд ли у человека была машина времени, так что, вероятнее всего, правильный день рождения чуть раньше. Но доказательств у меня нет, так что будем опираться на официальные данные.
Как заметил один из пользователей, данная проблема уже возникала ранее у других людей. Например, в марте того же года и даже в январе 2012-го, а затем и в ноябре. Кое-кто даже реализовал данную функциональность сам (правда, проект давно нерабочий и был только под macOS). Иными словами, сразу стало ясно, что фича крайне востребованная. Все ждали ответа представителей Dropbox.
И 18-го же декабря 2014-го они ответили, посоветовав не хранить в папке Dropbox то, что не нужно синхронизировать с облаком. Эта же рекомендация была повторена и в марте следующего года.
Некоторые начали терять надежду и возмущаться. Всё чаще стали появляться сообщения об отказе от Dropbox и переходе к другим провайдерам облачного хранения. За годы обсуждения звучали имена таких продуктов, как MEGA, BitTorrent Sync (ныне Resilio Sync), pCloud, Sync и других.
При этом многие всё ещё верили, что Dropbox важно мнение своих пользователей. А потому продолжали появляться сообщения с детальным описанием необходимого функционала и примерами ситуаций. Люди даже были согласны на то, чтобы фича была недокументированной.
В июле 2015-го автор идеи связывался с поддержкой Dropbox, получив ответ, что комментарии будут переданы команде разработки. Я тоже имел контакт с ними (уже в 2022-ом, на восьмой год обсуждений) и получил ровно такой же ответ. При этом публично Dropbox отмалчивался вплоть до сентября 2015-го, когда было заявлено, что боль пользователей понятна, а фича обсуждается внутри компании.
А примеры этой самой боли продолжали появляться. Чаще всего звучало возмущение синхронизациями папок node_modules, где тысячи небольших файлов часами отправляются на сервер. Фигурировали и другие истории, в которых гигабайты временных данных безо всякой пользы уходят в Dropbox. Встречались и разработчики игр на Unity, синхронизация meta-файлов у которых также подчёркивает важность предлагаемой функции. Проблемы возникали и в LaTeX проектах.
В январе 2016-го количество голосов за идею превысило 200. А что же Dropbox? А Dropbox… читает дискуссию и понимает проблему. Другого ответа у компании нет. Впрочем, в 2018-м году сотрудники компании всё-таки решили честно заявить, что реализация фичи не планируется.
Разумеется, пошла волна разочарований, отказа от платных аккаунтов и рекомендаций продуктов конкурирующих компаний. Но не все теряли надежду, и в который раз появилось чрезвычайно подробное описание проблемы, которую должна решить рассматриваемая идея. После чего от представителей Dropbox было получено несколько сообщений, что комментарии переданы команде разработке (в который раз).
В июне 2019-го пользователь поделился забавным анонсом новой версии Dropbox Plus, присланным ему на почту:
The all-new Plus plan is packed with top-requested features.
При этом самая запрашиваемая фича, как вы уже догадались, отсутствовала в релизе.
Но, под конец года появилась надежда! Dropbox сообщил, что работает над функционалом, который позволит исключать файлы из синхронизации с аккаунтом. А спустя ещё 3 (!) года статус идеи был изменён на Delivered.
Свершилось? Как бы не так. Мы бы сейчас не собрались здесь в праздничных колпаках и с грустной улыбкой на лице. Предоставленное “решение” имеет ряд проблем, и мы разберём их подробно далее.
Через неделю под натиском громкого недоумения пользователей статус поменяли на Investigating. На восьмой день рождения идеи было высказано пророческое предположение, что мы отметим и десятый. И вот этот день настал.
Вспомним, что нам предлагали за этот долгий срок.
Предложенные варианты
Для простоты изложения минусов различных подходов будем пользоваться ранее показанным примером с директориями bin и obj, возникающими при сборке кода .NET. Суть не изменится, если подставить туда, например, папку node_modules и среду Node.js.
Хранение данных вне папки Dropbox
Самым первым вариантом решения проблемы Dropbox посчитал хранение информации вне синхронизируемой папки. И хотя очевидна вся абсурдность данного совета, опишем минусы подхода. Собственно, он один, зато огромный.
При сборке проекта будут появляться обозначенные выше папки. Причём создаются они автоматически внутри директории проекта. Наверное, есть способ куда-то их передвинуть, чтобы они оказались вне папки Dropbox, но так никто не делает и нет смысла заставлять пользователей усложнять свои процессы.
Можно предложить программистам использовать, например, GitHub вместо Dropbox. Но что если создаётся небольшая утилита для собственных нужд, которую не хочется отправлять в GitHub, а версионность не важна? Git также будет требовать выполнения команд отправки на удалённый сервер, сводя на нет прозрачность синхронизации с облаком. Да и зачем запрещать совмещать одно с другим — хранить Git-репозиторий внутри папки Dropbox? Более того, выше было показано, что функциональность нужна не только разработчикам программного обеспечения.
При этом, встречаются и защитники показанного предложения. Но, я надеюсь, такая крупная компания, как Dropbox, не воспринимает всерьёз комментарии вроде “Не знаю, зачем нужна эта функция, значит она не нужна никому”.
Selective Sync
Dropbox давно предоставляет фичу под названием Selective Sync. Нужно зайти в настройки клиентского приложения, и в огромном дереве папок снять галочки с тех, которые не должны синхронизироваться. При этом:
-
С выключенной галочкой папки будут удалены с компьютера, а в облаке останутся. Но bin и obj нужны как раз локально для запуска программ. Собственно, из папки bin они по умолчанию и запускаются.
-
Чтобы использовать функцию Selective Sync, данные нужно сперва отправить на сервер. Но рассматриваемые файлы изначально временные, они не должны попадать в облако никогда.
-
Создавая новый проект и получив новые папки bin и obj, нужно опять руками повторять всю процедуру.
-
Разумеется, на другом компьютере придётся выполнить те же действия.
Это даже не минусы, а решение совершенно другой задачи. При этом некоторые пользователи выкручиваются с помощью Selective Sync, закрывая вопрос с игнорированием данных.
Официальное решение
В конце концов, Dropbox дал возможность игнорировать файлы и папки. Конечно, сделав это по-своему, как будто пропустив мимо глаз всю многолетнюю дискуссию.
По мнению Dropbox пользователи должны каждый раз выполнять команду в контекстном меню или же выставлять через PowerShell специальный флаг, который сигнализирует клиентскому приложению о необходимости пропустить файл или папку. Проблемы:
-
Неочевидные трансформации папок при выполнении процедуры на разных компьютерах, синхронизированных с одной папкой Dropbox.
-
Указанные действия нужно выполнить на каждом компьютере.
-
Сведения о том, что файл или папку не нужно синхронизировать с сервером, исчезают при их удалении. Если удалить папки bin/obj, они автоматически пересоздадутся при следующей сборке. Разумеется, уже без флага исключения.
-
Пользователи отмечают, что файлы всё равно “трогаются” клиентом Dropbox, хоть даже они и помечены флагом. Это временами приводит к ошибкам компиляции из-за заблокированных файлов.
-
Файл или папка должны существовать, чтобы выполнение процедуры вообще было возможно. Такое ограничение не даёт возможности сказать “Не синхронизируй любую папку с именем X” до создания X.
Почему Dropbox так поступает?
И так, у Dropbox есть идея с огромным количеством голосов и комментариев, множество примеров и подробных изложений проблемы, но компания 10 лет игнорирует своих пользователей. Как такое может быть?
Всё упирается, вероятно, в нежелание сокращать объёмы хранимых пользователями данных. Прямо сейчас при покупке минимального тарифного плана пользователь получает хранилище в 2 ТБ. Два момента:
-
большинству столько не нужно;
-
обычно при аренде серверных мощностей оплачивается только используемый фактически объём.
Складывая первое со вторым получается, что в случае среднестатистического пользователя Dropbox платит за хранение данных размером намного меньше 2 ТБ, но человек оплачивает эти самые 2 ТБ.
Что случится, если предоставить возможность не синхронизировать тонну ненужных данных? Вместо условных 500 ГБ (из оплаченных 2 ТБ) на сервере будет храниться лишь 100. Мысль “Кажется, я немного переплачиваю” может зазвучать в голове громче. Так и до ухода к конкурентам недалеко.
А таковых в наши дни немало. Вот лишь некоторые варианты (цены указаны за год):
-
Google One: 100 ГБ за $20 и 2 ТБ за $100;
-
Microsoft OneDrive: 100 ГБ за $20 и 1 ТБ за $70;
-
Sync: 2 ТБ за $96;
-
pCloud: 500 ГБ за €50 и 2 ТБ за €100;
-
MEGA: 400 ГБ за €50 и 2 ТБ за €100.
Dropbox тем временем может похвастаться лишь 2 ТБ за $120. Не говоря уже о том, что некоторые из указанных выше продуктов имеют встроенный функционал игнорирования файлов и папок.
При этом запросов на более разнообразный ассортимент тарифов великое множество, например, Is there any smaller plan like 100 GB? или Can we have a lite plan?. К слову, я уже и забыл, а оказывается раньше была опция 1 ТБ. Так что повышение предоставляемого объёма и, как следствие, цены вполне вписывается в показанную выше стратегию компании.
Справедливости ради, встречались и запросы на более объёмные хранилища, например, Allow a personal account to have more than 3 TB или Personal plans with more storage.
В апреле 2023-го CEO компании сообщил об увольнении 500 сотрудников. Среди причин указано, что хоть компания и работает в плюс, рост замедлился. Видимо, Dropbox пытается различными способами повысить прибыль, так что надеяться на появление альтернативных тарифов или предоставление возможности сократить объём хранимых пользователями данных не приходится.
Заключение
Некогда Dropbox был если не единственным, то ведущим продуктом, предоставляющим облачное хранение данных. Использовать его значило получать качественный и надёжный сервис. К сожалению, громкое имя иногда играет злую шутку со своим хозяином.
Рынок изменился, широкий спектр облаков от разных компаний более не позволяет кому-либо из них быть явным лидером. Не является таковым и Dropbox.
В сети можно найти множество обсуждений, суть которых одна: Dropbox стагнирует. Компания не реализует новые действительно полезные функции и не слушает своих пользователей, хотя и предоставляет им рупор в виде площадки для публикации идей. По факту, данная площадка оказалась иллюзией того, что мы с вами можем повлиять на развитие продукта. Отмахивание от самой желаемой фичи в течение десятилетия — это нонсенс.
Согласно отчётам о прибыли, количество платных аккаунтов превышает 18 миллионов. А значит, несколько тысяч несогласных не сделают погоды. Так что до встречи через год!
Автор: Melanchall