開発者ツールとデータ収集に関する不都合な真実
日常的に使用しているほぼすべての開発者ツールのプライバシーポリシーを開いてみてください。データ収集に関するセクションが見つかるはずです。利用状況分析、クラッシュレポート、機能追跡、セッション時間、ハードウェアプロファイル――リストは延々と続きます。ほとんどの企業はこれを必要なものとして提示しています。製品を改善し、機能に優先順位を付け、バグを修正するためにデータが必要だと。そして公平に言えば、その論理は完全に間違っているわけではありません。データに基づいた製品決定は、より良いソフトウェアを構築するための正当なアプローチです。
しかし、めったに問われない質問があります:その代償は何でしょうか?
なぜほとんどの開発者ツールがデータ分析を収集するのか
開発者ツールにおけるtelemetryの標準的な正当化理由は、いくつかのカテゴリに分かれます:
- 製品決定。どの機能が最も使われているか?どの機能が無視されているか?分析データは、次に何を構築し、何を廃止するかの優先順位付けに役立ちます。
- クラッシュレポート。何かが壊れた時、自動クラッシュ報告により開発者は問題をより迅速に特定し修正できます。ユーザーが報告する前に対処できることもあります。
- パフォーマンス監視。特定の操作が異なるハードウェアでどれくらい時間がかかるか?ボトルネックはどこにあるか?telemetryは合成ベンチマークでは再現できない実世界のパフォーマンスデータを提供します。
- ビジネスメトリクス。リテンション率、アクティベーションファネル、解約予測――これらのメトリクスは、特に成長を示すプレッシャーの下にあるベンチャーキャピタル支援企業にとって、ビジネス上の意思決定を推進します。
これらは本質的に悪意のあるものではありません。しかし、累積的な効果として、あなたの開発環境が行動データのソースになります。すべてのcommit、すべてのブランチ切り替え、すべてのmergeコンフリクト、開くすべてのファイル――すべてが潜在的に観察可能です。ワークフローの中心に位置するツールにとって、これはあなたがどのように働き、何に取り組み、いつ作業しているかに関する相当な量の情報です。
なぜGitSquidは異なる道を選んだのか
GitSquidの開発を始めた時、私たちは意図的な決定をしました:zero telemetry。「最小限のtelemetry」ではなく、「匿名化されたtelemetry」でもなく、ゼロです。これは後から思いついたことでもマーケティング戦略でもありませんでした。根本的な設計原則であり、その理由はこちらです。
プライバシーは機能である
私たちは、プライバシーは単なるコンプライアンスのチェックボックスではないと考えています。ユーザーが信頼できる機能です。GitSquidを使用する際、アプリケーションは完全にあなたのマシン上で動作します。リポジトリデータ、commitの履歴、ブランチ構造、ワークフローパターン――どれもあなたのコンピュータから出ることはありません。これは設定ではなく、保証です。
開発者ツールはすべてを見ている
Gitクライアントはカジュアルなツールではありません。コードベース全体、commitメッセージ(プロジェクト名、チケット番号、作業内容のコンテキストが含まれることが多い)、ブランチ名、コラボレーションパターンにアクセスできます。どのリポジトリで作業しているか、どれくらいの頻度でcommitしているか、いつアクティブかを把握しています。Gitクライアントからtelemetryを収集するということは、あなたの職業的、そして時には個人的な仕事と深く絡み合ったデータを収集するということです。私たちはその責任を望みませんでしたし、あなたがそれを許可する必要があるとも考えていません。
信頼はシンプルであるべき
多くのツールでは、信頼するためにプライバシーポリシーを読み、オプトアウト設定を確認し、「匿名化された」データが本当に匿名であることを願い、次の買収や資金調達ラウンドでデータ処理慣行が変わらないことを信じる必要があります。私たちは信頼をシンプルにしたかった:GitSquidはあなたのデータを収集しません。以上です。解析すべきプライバシーポリシーも、監査すべき設定も、確認すべきデータ処理契約もありません。
「Zero telemetry」が具体的に意味すること
私たちが言いたいことを正確に述べると、GitSquidが行うことと行わないことは以下の通りです:
収集しないもの:
- いかなる種類の利用分析
- クラッシュレポートやエラーログ
- 機能使用の追跡
- セッションデータやアクティビティパターン
- ハードウェアやOSのプロファイリング
- リポジトリのメタデータやコンテンツ
GitSquidが行う唯一のネットワークリクエスト:
- ライセンス認証。ライセンスをアクティベートする際、GitSquidはライセンスサーバーでその有効性を確認します。これは単純なアクティベーションチェックであり、使用状況レポートではありません。
- アップデート確認。GitSquidは定期的に新しいバージョンが利用可能かどうかを確認し、最新の状態を保てるようにします。この確認中にあなたの使用状況に関するデータは送信されません。
以上が完全なリストです。分析エンドポイントも、バックグラウンドでのデータアップロードも、「匿名の」使用状況レポートもありません。GitSquidを使用中にネットワークトラフィックを監視すれば、まさにこの2種類のリクエストだけが確認でき、それ以外は何もありません。
私たちが受け入れるトレードオフ
デメリットがないとは言いません。telemetryがなければ、どの機能が人気があるか、ユーザーがどこで苦労しているか、特定のハードウェア構成で何がクラッシュを引き起こすかについて自動的に把握することはできません。代わりに、ユーザーからの直接的なフィードバック、サポートでの会話、そして自社の広範なテストに頼っています。これはより遅いです。体系的ではありません。自動クラッシュ報告がある場合よりも、問題を後から知ることがあるということです。
これは許容できるトレードオフだと考えています。ユーザーはプライバシーを完全に尊重するツールを手に入れ、私たちはデータ抽出ではなく真のユーザーとの関係の上に構築された製品を手に入れます。追跡されていることに気づかなかったユーザーからの百万のデータポイントよりも、深く信頼してくれる百人のユーザーの方が望ましいのです。
業界の変化
この考え方をしているのは私たちだけではありません。ソフトウェア業界全体で、「すべてを収集し、後でその意味を考える」というアプローチには実際のコスト――規制上、評判上、倫理上のコスト――があるという認識が高まっています。ブラウザ、メール、メッセージング、検索におけるプライバシー重視の代替手段の台頭は、ユーザーが自分の境界を尊重するツールをますます重視していることを示しています。
特に開発者ツールの分野では、この変化はさらに重要です。開発者はテクノロジーを理解しています。telemetryが何を意味するか、使用パターンからどのようなデータが導き出されるか、「匿名化された」データが他のソースと組み合わされた時に何を明らかにするかを知っています。このオーディエンス向けのツールをプライバシーを尊重せずに構築することは、単なる倫理の問題ではありません。信頼性の問題です。
シンプルな約束
telemetryに関する私たちの立場は、新しい製品バージョン、リーダーシップの変更、資金調達ラウンドで変わることはありません。Zero telemetryはGitSquidの一部です。あなたのコードはあなたのマシンに留まります。あなたのワークフローはプライベートのままです。あなたの信頼はシンプルなままです。
これは私たちが妥協するつもりのない機能です。