ブログ Adjustがオープンソースプログラミングを採用している理由

Adjustがオープンソースプログラミングを採用している理由

オープンソース (Open-source) は、世界規模で私たち技術者に多大な影響を与えています。自分のアイデアや経験を共有しあうことにより機能の大幅な向上を目指すという考え方が、テクノロジーの発展に寄与してきました。大企業であるAppleやGoogle、Microsoftは、自社の技術を一般公開するオープンソースを採用しています。私たちAdjustも例外ではありません。

残念ながら、モバイル業界ではオープンソースを批判したりコードの公開に異議を唱えている事業者が存在するだけでなく、その仕組みや不正被害について誤った情報が多く出回っています。

この記事では、アプリ計測に欠かせないSDKを提供する立場としてオープンソースのメリットを解説し、Adjustがオープンソースを採用する理由と、Adjustを利用するお客様にとってどのような意味を持つかについてご説明します。

オープンソースソフトウェアとは

オープンソースソフトウェアは、無償で公開しているソースコードです。このソフトウェアは誰でも自由に利用でき、内容を分析したり、変更したり、改善したりすることができます。コードはプレーンテキスト形式でリリースされ、Githubのようなチャネルからアクセスできます。コードの取り込みはコピー&ペーストで簡単に実施でき、文書ドキュメントとして自分で別言語に書き換えることも可能です(これらのファイルの例は、AdjustのSDKでもご確認いただけます)。

オープンソースの対極に位置するのはクローズドソース(Closed-source、あるいはプロプライエタリ・ソフトウェア)です。このソースコードは非公開で、変更は許可されていません。

それでは、オープンソースのメリットとは何でしょうか。以下に5つのメリットをとり挙げます。

1.透明性を確保している

アトリビューションを計測するにはSDKをプログラムにインストールすることが必要ですが、そのソリューションがクローズドにするか、あるいはオープンにするかを決定する要因とは何でしょうか?

オープンソースである真のメリットは、その動作の仕組みを正確に理解できる点です。ファイルを読めばその動作が理解できるということは、自分のプログラムが何を取り込もうとしているのか(そして何にアクセスが可能なのか)も分かるということです。その一方、クローズドソースのプロジェクトは、取り込むことはできても動作の仕組みを確認する手段は(コードをリバースエンジニアリングしない限り)ありません。

オープンソースなら、第三者がオープンソースの動作を「セカンドオピニオン」としてレビューすることができます。このようなクオリティチェックによって、潜在的な問題の指摘やコードの機能の確認、さらにプロセス内のバグなどを発見することが可能です。

2. カスタマイズできる

オープンソースであるAdjustのSDKなら、一部を切り取ったり、不要な部分を切り捨てたり、コードを追加して既存の機能を向上させることも自由です。機能のアップデートも容易に提案できます。バグが見つかった場合も、開発側とユーザー側の両方のエンジニアが問題の原因特定にあたることができます。Adjustをご利用のお客様は、自社の技術チームが問題を正確に把握していれば、サポートが介入しなくても社内で対処することができます。

また、オープンソースプロジェクトならコードに関するフィードバックをユーザーから直接受け付け、必要であれば改善を図ることができます。その一方、クローズドソースの場合は、勧めることはできても、ユーザーが実装方法などのフィードバックを有意義な方法で提供することができません。

3. 柔軟に対応できる

オープンソースなら、早急に必要なアップデートやそれに伴う課題にも迅速に対応できます。例えば、新しいOSがリリースされると、互換性における不具合が発生することがあります。オープンソースであれば、その問題について議論したり、他のプロジェクトをレビューして類似する問題にどう対処したかを調べ、開発ペースに追いつくことが可能です。

4. 安全性を確認できる

開発者がプロジェクトをクローズドソースとして管理するのは、著作権の保護を目的とする他に、外部にコードを公開したくない何らかの理由があることも示唆しています。中には、肥大化したプロジェクトを隠しておきたかったり、開発者が外部に知られたくない要素が存在していたりします。オープンソースではこのような問題は発生しません。問題があるコードが長期に亘って市場に流通することはないからです。

5. 品質が保証されている

透明性が確保されていることが前提にあるオープンソースプロジェクトは、品質が優れていなければ生き残ることができません。クローズドソースプロジェクトは機能することだけが求められ、その中身は隠されたままです。

Adjustは、私たちが誇りに思う製品を積極的に共有しています。共に仕事をするクライアントや同僚の精査基準を満たすため、品質を維持する必要があることを認識しているからです。

オープンソースを採用する企業

自動車産業、政府機関、銀行業界の代表的な企業や団体が、オープンソースによる技術開発を行なっています。ここにいくつかの例を取り上げます。

(参照:Wikipedia)

オープンソースソフトウェアは大手のテック企業だけのものではなく、ASL/MNDに苦しむ人々のためのアイトラッキング・タイプウェアから医療業務管理ソフトウェアに至るまで、ヘルスケアの分野でも効果的に使用されています。

上記のように、多くの一般企業や政府機関、アプリ計測会社がオープンソースソフトウェアに信頼を寄せています。オープンソースで開発されたプロジェクトは、安全性を確認できるだけでなく、透明性や柔軟性にも優れ、経済的であることが保証されているからです。

オープンソースに対する誤解

オープンソースに異議を唱える声もありますが、そのほとんどは誤った情報によるものです。ここではオープンソースの「よくある疑問」にお答えします。

クローズドソースの方が安全?

オープンソースソフトウェアは一般公開されていますが、だからといってセキュリティ侵害につながったり、コーディングや作業のプロセスが他人の目に晒されたりすることはありません。反対に、クローズドソースソフトウェアのソースコードは他人に読まれることがない(少なくともエンジニアによる作業なしで)からといって、安全性に優れているとは言い切れません。

例えば、コードを自由に閲覧することができるオープンソースプロジェクトなら、社内で内容を精査することも可能です。クローズドソースの場合は、公表されていないソースコードが含まれているかもしれないし、それを確認する術もありません。また、オープンソースの脆弱性は第三者に指摘してもらいやすい一方で、クローズドソースについては「リバースエンジニアリング」(プログラムのバイナリコードを逆コンパイルし、元の製品を再構築すること)される可能性があります。

先に説明したように、Adjustにとって「モバイルSDKは必要悪」なのです。アプリ計測には(自分で開発しない限り)サードパーティSDKが必要になります。SDK自体は極めて強固で、サイズも大きいです。もし期待どおりに機能しなければ、サポートチームに頼るか、高度なドキュメントを参照して作業を行わなければなりません。

オープンソースなら自社アプリに何をインストールしているかが把握できるため、開発者はバグの可能性があったり不具合が生じているコードを取り除く場合でも、ソースコードを見ながら容易に対処することが可能です。まるで自社のチームがSDK開発者であるかのように、コピー&ペーストするような簡単な作業を行うだけでコードに組み込むことができます。この作業プロセスを文書化しておくことで、新しいアプリを作成およびリリースする度に、繰り返し適用できるというメリットもあります。

オープンソースコードを変更できるのは誰?

理論的には、オープンソースソフトウェアは誰でも変更することが可能です。しかし、実際にGithubにログインしてファイルを変更することは、決して容易ではありません。

コーディングの初心者は、大きなプログラムを理解し、プロジェクト全体に少しでも貢献することでそのスキルを向上します。経験豊富なコーダーにとっては、オープンソースへの貢献を積み重ねることで、自らの優れた仕事をまとめたポートフォリオのように利用できます。技術者は破壊的なコードで自分の評判を落とすのではなく、自身の知識や信頼性を高めようと努力するのが一般的で、不正をしたいと考える人はほんの一握りに過ぎません。

次に、コードの変更には承認が必要です。サードパーティが提案したコードの変更は、元のコードを開発したチームよって慎重に審査されます。特に、最初からオープンソースとしてコーディングされている場合、既存のコードには改善すべき個所が非常に多く存在しますが、変更の際は厳しい承認プロセスがあるのが一般的です。

さらに、オープンソースのコラボレーションサイトでは誰でもプロジェクトを見ることはできますが、その完成品が把握できる訳ではありません。確認できるのは、機械に取り付けられる前の1つの歯車のような、大きなプログラムを構成するごく一部のソフトウェアにすぎません。AdjustSDKを構成するソースコードは、オープンソースのため誰でも閲覧できますが、SDKが実装されたアプリにはアクセスすることはできません(オープンソースでない限り)。

データを扱う上でのオープンソースコードの安全性は?

AdjustのオープンソースデータはHTTS/SSLで暗号化されていますので、データにアクセスできるのはご自身だけになります。これは銀行取引やEメール、LINEのプライベートメッセージのプライバシー保護に用いられる方法と同じです。Adjustでは「共有機密方式(shared secret methodology)」を使っており、アプリトークンを持たない限り(別のセキュリティ層の中で)データを検証できないようになっています。

ちなみに、データを暗号化するコードもオープンソースです。例えば、毎日数百万件もの取引があるオンラインショッピングですら、ユーザーのセキュリティを守りながらオープンソースが採用されています。

まとめ

オープンソースはユーザーを第一に考え、透明性を確保して安全な開発システムを提供します。より多くの開発者がオープンソースプロジェクトを採用するような市場へと変化すれば、同業者とお客様双方にメリットをもたらすでしょう。TechCrunchも以下のように述べています「20年前、企業はライセンスによってソフトウェアを独占してきました。現在は、自由でオープンなソースコードが経済の成長を促しています。テック業界で成功するためには、コードを所有するのではなく、お客様にサービスを提供することが重要です。そしてサービスのルーツにはオープンソースが存在しています」

Adjustニュースレターに登録して、最新情報をいち早くご確認ください!