Неудобная правда об инструментах для разработчиков и сборе данных
Откройте политику конфиденциальности практически любого инструмента для разработчиков, которым вы пользуетесь, и вы найдете раздел о сборе данных. Аналитика использования, отчеты о сбоях, отслеживание функций, продолжительность сессий, профили оборудования -- список можно продолжать. Большинство компаний представляют это как необходимость: им нужны данные для улучшения продукта, приоритизации функций и исправления ошибок. И если быть честными, это рассуждение не совсем неверно. Решения о продукте, основанные на данных, являются законным подходом к созданию лучшего программного обеспечения.
Но есть вопрос, который задается крайне редко: какой ценой?
Почему большинство инструментов для разработчиков собирают аналитику
Стандартное обоснование telemetry в инструментах для разработчиков делится на несколько категорий:
- Решения о продукте. Какие функции используются больше всего? Какие игнорируются? Аналитика помогает продуктовым командам определять приоритеты: что разрабатывать дальше, а что упразднять.
- Отчеты о сбоях. Когда что-то ломается, автоматические отчеты о сбоях помогают разработчикам быстрее выявлять и исправлять проблемы, иногда даже до того, как пользователи их заметят.
- Мониторинг производительности. Сколько времени занимает определенная операция на различном оборудовании? Где находятся узкие места? Telemetry предоставляет реальные данные о производительности, которые не могут воспроизвести синтетические бенчмарки.
- Бизнес-метрики. Показатели удержания, воронки активации, прогнозирование оттока -- эти метрики определяют бизнес-решения, особенно для компаний, поддерживаемых венчурным капиталом и находящихся под давлением необходимости демонстрировать рост.
Ничто из этого не является изначально злонамеренным. Но кумулятивный эффект заключается в том, что ваша среда разработки становится источником поведенческих данных. Каждый commit, каждое переключение ветки, каждый конфликт merge, каждый открываемый файл -- все это потенциально наблюдаемо. Для инструмента, находящегося в центре вашего рабочего процесса, это значительный объем информации о том, как вы работаете, над чем работаете и когда.
Почему GitSquid выбрал другой путь
Когда мы начали разработку GitSquid, мы приняли осознанное решение: zero telemetry. Не «минимальная telemetry». Не «анонимизированная telemetry». Ноль. Это не было запоздалой мыслью или маркетинговым ходом. Это был фундаментальный принцип проектирования, и вот почему.
Конфиденциальность -- это функция
Мы считаем, что конфиденциальность -- это не просто галочка в списке соответствия требованиям. Это функция, на которую пользователи должны иметь возможность полагаться. Когда вы используете GitSquid, приложение работает полностью на вашей машине. Данные вашего репозитория, история commit, структура веток, паттерны рабочего процесса -- ничто из этого не покидает ваш компьютер. Это гарантия, а не настройка, которую нужно помнить включить.
Инструменты для разработчиков видят все
Git-клиент -- это не простой инструмент. Он имеет доступ ко всей вашей кодовой базе, вашим сообщениям commit (которые часто содержат названия проектов, номера тикетов и контекст того, над чем вы работаете), именам ваших веток и паттернам совместной работы. Он знает, над какими репозиториями вы работаете, как часто вы делаете commit и когда вы активны. Сбор telemetry из Git-клиента означает сбор данных, глубоко переплетенных с вашей профессиональной, а иногда и личной работой. Мы не хотели этой ответственности, и мы не считаем, что вы должны ее предоставлять.
Доверие должно быть простым
Со многими инструментами доверие требует чтения политик конфиденциальности, проверки настроек отказа, надежды, что «анонимизированные» данные действительно анонимны, и веры в то, что практики обработки данных не изменятся с очередным поглощением или раундом финансирования. Мы хотели, чтобы доверие было простым: GitSquid не собирает ваши данные. Точка. Нет политики конфиденциальности для анализа, нет настроек для проверки, нет соглашений об обработке данных для рассмотрения.
Что «zero telemetry» означает конкретно
Чтобы точно описать, что мы имеем в виду, вот что GitSquid делает и не делает:
Мы не собираем:
- Аналитику использования любого рода
- Отчеты о сбоях или журналы ошибок
- Отслеживание использования функций
- Данные о сессиях или паттерны активности
- Профилирование оборудования или ОС
- Метаданные или содержимое репозиториев
Единственные сетевые запросы, которые выполняет GitSquid:
- Проверка лицензии. При активации лицензии GitSquid проверяет ее действительность на нашем сервере лицензий. Это простая проверка активации, а не отчет об использовании.
- Проверка обновлений. GitSquid периодически проверяет, доступна ли более новая версия, чтобы вы могли быть в курсе обновлений. Во время этой проверки никакие данные о вашем использовании не передаются.
Это полный список. Никаких аналитических эндпоинтов, никаких фоновых загрузок данных, никаких «анонимных» отчетов об использовании. Если вы будете мониторить сетевой трафик при использовании GitSquid, вы увидите ровно эти два типа запросов и ничего больше.
Компромисс, который мы принимаем
Мы не будем делать вид, что недостатков нет. Без telemetry у нас нет автоматической информации о том, какие функции популярны, где пользователи испытывают затруднения или что вызывает сбои на конкретных конфигурациях оборудования. Вместо этого мы полагаемся на прямую обратную связь от пользователей, обращения в поддержку и собственное обширное тестирование. Это медленнее. Это менее систематично. Это значит, что иногда мы узнаем о проблемах позже, чем узнали бы с автоматическими отчетами о сбоях.
Мы считаем это приемлемым компромиссом. Наши пользователи получают инструмент, который полностью уважает их конфиденциальность, а мы получаем продукт, построенный на подлинных отношениях с пользователями, а не на извлечении данных. Мы предпочли бы иметь сто пользователей, которые глубоко нам доверяют, чем миллион точек данных от пользователей, которые не знали, что за ними следят.
Сдвиг в индустрии
Мы не одиноки в этом мышлении. По всей индустрии программного обеспечения растет осознание того, что подход «собирать все, разбираться позже» имеет реальную цену -- регуляторную, репутационную и этическую. Рост альтернатив, ориентированных на конфиденциальность, в браузерах, электронной почте, мессенджерах и поисковых системах показывает, что пользователи все больше ценят инструменты, которые уважают их границы.
В сфере инструментов для разработчиков этот сдвиг имеет еще большее значение. Разработчики понимают технологии. Они знают, что означает telemetry, какие данные могут быть получены из паттернов использования и что могут раскрыть «анонимизированные» данные в сочетании с другими источниками. Создание инструментов для этой аудитории без уважения к их конфиденциальности -- это не просто этическая проблема. Это проблема доверия.
Простое обещание
Наша позиция по telemetry не изменится с выходом новой версии продукта, сменой руководства или раундом финансирования. Zero telemetry -- это часть того, чем является GitSquid. Ваш код остается на вашей машине. Ваш рабочий процесс остается приватным. Ваше доверие остается простым.
Это не та функция, которой мы готовы пожертвовать.