CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回は、2019年に公開された論文「Do Developers Learn New Tools On The Toilet?」を紹介します。直訳すると「開発者はトイレで新しいツールを学ぶか?」という奇妙なタイトルの論文ですが、これは、「TotT(Testing on the Toilet)」と呼ばれる、Google社内の情報共有の取り組みについて、その効果を分析した論文です。技術者間での情報共有には、さまざま方法や取り組みがありますが、世界のGoogleオフィスで行われている、少しユニークな取り組みを紹介したいと思います。
TotTを一言で説明すると......、実は「トイレの貼り紙」です。図1は、実際のTotTの例ですが、C++のフォーマッティング・ツールについて、その特徴や使い方を1ページにまとめた内容が記載されています。このツールを開発したエンジニアが、テックライター(技術文書専任の編集者)と共同で作ったものです。Googleオフィス内のトイレの個室には、このようなニュースレターが掲載されており、定期的に新しいものに貼り替えられます。もともとは、テストツールの活用を促進するために始められたため、「Testing on the Toilet」という名前がついていますが、現在では、テストツールに限らず、さまざまなツールの情報が提供されています。
図1 フォーマッティング・ツールを紹介するTotTの例(論文より抜粋)
一般に、ソフトウェア開発に関連するツールの知識は、ソフトウェア開発者の生産性に大きな影響を与えると言われます。あるツールの存在を知っていれば簡単に解決したはず、というような問題もたくさんあります。しかしながら、多数の開発チームを抱える企業では、そのようなツールの存在をすべてのチームに知らせて、利用を浸透させるのが難しいこともあります。TotTは、トイレに貼り紙をするという極めてシンプルなアイデアですが、世界のGoogleオフィスで行われている、Googleの「社内標準」の取り組みで、図1の例のように、ツールの開発者自身が積極的にニュースレターを書いています。このようなシンプルなアイデアが、はたしてどれほどの効果を持つのか、冒頭の論文では、ニュースレターの掲載とツールの利用度の関連について、実データを用いて調査した結果が報告されています。
ツールの利用度を調査するには、さまざまな方法がありますが、この論文では、客観的なデータとして、ツールのログ出力からユニークユーザー数を特定しています。Googleの社内標準に従って作られたツールは、専用のログ管理システムに実行ログが収集されるようになっており、そのデータを用いて分析しています。また、ニュースレターの掲載とユーザー数の変化の因果関係は、CausalImpactと呼ばれる統計分析ツールで調べています。ニュースレターを掲載しなかった場合に想定されるユーザー数の変化を統計モデルで予測した上で、実際のユーザー数の変化を重ね合わせることで、ニュースレターの影響度を測ります。たとえば、図1で紹介したフォーマッティング・ツール(CLANG-FORMAT)は、ニュースレターの効果が顕著に現れた例で、その分析結果は図2(a)のようになります。
図2 CLANG-FORMATとPYTHON-FORMATTERのユーザー数の変化
5月1日(May 1)の直前の縦棒がニュースレターの掲載日で、その右側には、実線と破線の2種類の折れ線グラフが続いています。破線の方は、それ以前のユーザー数から予想される変化で、一方、実線の方は、実際のユーザー数を示します。ニュースレターの掲載後、ユーザー数が明らかに増加している様子がわかります。図2(c)は、Python用の類似のフォーマッティング・ツールで、こちらも同様の効果が見られます。
図2の例は、どちらもTotTが有効に機能した例ですが、すべてのツールについて、これほど顕著な効果があったわけではありません。TotTのニュースレターを書いた開発者へのインタビューとツールの利用者へのアンケート調査から、TotTを有効活用するためのポイントが、論文の中で、次のようにまとめられています。
(1) 覚えやすさ
トイレの個室内は目の前の貼り紙に集中してもらえるため、情報提供には理想的な環境ですが、そこは、実際にツールを利用する場所ではありません。ニュースレターを読んだ開発者が、「いつか必要になったら使ってみよう」と思っても、実際に必要になった際には、すでにツールの名前を忘れている可能性もあります。最低限、ツールの名前を覚えてもらい、開発の作業場所に戻った際に、その場ですぐに詳細情報を検索してもらうことが大切です。したがって、さきほどのフォーマッティング・ツールのように、開発者が日常的に使用する、「いますぐ試してみよう」と思えるツールほど、TotTの効果は大きいと考えられます。また、ツールの名称も、なるべく記憶に残りやすいものにする必要があります。
(2) 手軽さ
(1)とも関連する部分で、開発者が「いますぐ試してみよう」と思ったとしても、ツールのセットアップに手間がかかりすぎると、その作業は後回しにされてしまいます。そして、実際に必要になった際には、そのツールのことは、すでに忘れているものです。オープンソースソフトウェアの世界では、手軽に使える簡単なツールが、驚くほど広く使われるようになることがありますが、これと同じことがGoogleの社内ツールにも当てはまるというわけです。
(3) 潜在的な利用者数
どれほど便利なツールでも、その機能を必要としない人が使うことはありません。TotTは、「トイレの利用者」、すなわち、すべての人々を対象とした情報発信の手段ですので、潜在的な利用者が多いツールほど、その効果も大きくなるはずです。もちろん、利用者の絶対数を増やすことだけがTotTの目的ではありません。たとえ少数であったとしても、本当にそのツールを必要とする人に、確実に情報を伝えるという視点も必要です。
今回は、2019年に公開された論文「Do Developers Learn New Tools On The Toilet?」をもとにして、Googleにおける、少しユニークな情報共有の方法を紹介しました。「トイレの貼り紙」というシンプルな取り組みですが、その効果をきちんと統計的に分析するあたりにGoogleらしさが感じられるかも知れません。冒頭の論文には、より詳細な分析結果が記載されていますので、興味のある方はぜひ参照してください。
次回は、SRE(Site Reliability Engineering)の手法としても知られるカナリアリリースについて、Googleでの取り組みを紹介します。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes