LINE Developer Workshop & Hackathon 2015

こんにちは、新米ソフトウェア開発者のJamesです。今回は今年1月に開催された開発者向けワークショップ「2015 LINE Developer Workshop」についてレポートしたいと思います。


みなさんご存知のように、LINE株式会社はモバイルメッセンジャー市場最大手の1つであり、世界中のお客様により良いモバイル体験を提供するため、数百人の開発者が共に働いています。開発者間のつながりを強化するため、「Developer Workshop」という「開発者の、開発者による、開発者のための」イベントを年2回開催しています。

2015年1月21~23日に、日々の仕事を逃れてリラックスするためにLINE開発者がリゾート地に赴き、セミナーやHackathon、スポーツなどの楽しいイベントに参加しました。このワークショップの大きな利点は、他の開発者に実際に会って考えを共有できることです。

一日目:Developer Workshop

ワークショップ一日目は主に2014年の振り返りと2015年の展望についてでした。ご存知かもしれませんが、LINEは昨年かなり多くのことを達成しました。基幹事業であるLINE事業単体の2014年通期の売上額は774億円、MAU は約1億8,100万人を記録しました。これらの目標を達成するために、開発の各段階で多くの開発者が連携しています。ワークショップでは、各作業ユニットの代表がプレゼンを行いました。

ワークショップはシンプル且つ効率的に進みました。ユニットごとに昨年の成果物と、今年は何が達成できるかについて発表しました。また、各プレゼンターがユニットの役割や業務も簡単に説明しました。プレゼンは私みたいな新人開発者にも分かりやすく、各ユニットの成果や目標がよく理解できました。

私は最近LINEに入社したばかりなので、プレゼンはLINEの運営について理解を深める貴重な機会となりました。この数ヶ月、他の開発者と連携する機会がたくさんありましたが、それも氷山の一角にすぎませんでした。実を言うと、自分の業務がLINEの他のサービスにどのように関連するのかほとんど分かっていませんでした。LINE株式会社には複数の作業ユニットがあるので、自己紹介とプレゼンには数時間かかりましたが、そこで得られた情報は非常に重要なものであり、LINEのエコシステムを目の当たりにできました。

プレゼンでは、各代表がコールドケースと呼ばれる、昨年中に解決すべきだったができなかった問題についても説明しました。コールドケースを見直すことで、各自が問題を適切に把握し、解決策を考えることができました。プレゼン後に集まり、コールドケースについて再検討しました。そして、各自が個人的に興味のあるコールドケースを選びました。これはLINE独自の開発者の伝統で、外から与えられるのではなく、自ら積極的にコールドケースに取り組みます。

コールドケースは個人的に非常に面白い取り組みでした。多くの開発者が、作業ユニットや所属部門に関係なくコールドケースに意欲的に取り組み、中には複数のケースに同時に取り組むこともありました。LINE開発者は、様々なドメインの知識を広め、技術を向上させたいという欲求に突き動かされているように感じられました。みなさんが楽しんでいる様子を見て、スキルを磨き知識の幅を広げるには、あらゆるチャンスをつかむことが大切だなと痛感しました。

二日目:LINE Hackathon

二日目はHackathonに参加し、限られた時間で1つの課題を効果的に解決できるかを競いました。課題は必ずしも各自の担当分野に関係したものではなく、自分の好きな角度から取り組むことができました。唯一の制限は、事前に割り当てられたチームで作業するか、他の開発者とランダムにグループを作るかでした。

私の場合は、ランダムに選ばれた先輩開発者とチームになりました。課題に取り組む前に、Hackathonで何を解決したいかについて考えました。外的要素を考慮しなくてよいので、クリエイティブなコンセプト重視でいくことにしました。最初に、自分の経験やニーズを基にアイデアをまとめました。私のチームは、マルチメディア検索アプリケーション、BitTorrentアプリケーション、Bitcoinマイニングなどを思いつきました。アイデアを短時間で見直し、LINEビジネスコネクト(BC)のツールを開発することにしました。BCとは、LINE公式アカウント(OA)のように、他のユーザーではなくLINEシステムとやりとりできるサービスです。例を挙げると、LINEには翻訳に使えるOAがいくつかあります。さらに、OAでユーザーに天気、セール、イベント等の情報も提供できます。

私たちの主なアイデアは、特定のコミットに関して便利な情報を提供するBC上にOAのプロトタイプを作成するというものでした。もっと具体的言うと、git blame コマンドの詳細といった、git関連のコミット情報を提供することを目指しました。アジャイル開発の強化を目指してこのBCを開発したいと思い、以下のようなBCプロトタイプを設計しました。

集中型gitレポジトリで、プル要求に応答する集中型gitサーバーに毎日コミットをプッシュします。コードレビューが完了すると、コードをメインストリームブランチにマージできるようになります。Gitは既にその目的でコマンドを提供していますが、実際には、単一コミットアクティビティを追跡するため、より詳細な情報が必要になります。最終的に、BCがコードの単一行に関連する高度情報(advanced information)を提供します。

数時間でプロトタイプを制作してから、チームで最終結果を発表しました。個人的には、Hackathonで先輩開発者の作業の様子を見ることができたのが嬉しかったです。それから、他のチームにも驚きました。集団知能を活用した教育アプリケーションや、最近リリースされたApple Watch用に目を見張るようなアプリケーションを設計したチームもありました。

「LINE Hackathon 2015」の優勝チームもOAを作成しました。ユーザーの位置情報に基づき、レストラン情報を提供するアカウントです。ユーザーが絵文字を送ると、BCはユーザーの現在地周辺のレストラン情報を探します。たとえば、新宿にいるユーザーがラーメンの絵文字を送ると、OAはラーメン屋「やすべえ」をおすすめします。時間が足りなかったため、そのチームはどの絵文字を送信しても似たようなレストランの情報しか提供できなかったのですが、多くの参加者が彼らのプレゼンを気に入りました。優勝者にはApple Watchギフトバウチャーが贈られました。

まとめ

二泊三日で行われたワークショップは、タイトなスケジュールにも関わらず、他のLINE開発者と密に協力するよい機会となりました。ワークショップやHackathonなどのアクティビティーを通じて、開発者間の絆を強めることができました。私個人としては「2015 LINE Developer Workshop」の様々な側面を楽しめました。このイベントを通じて、LINEの過去について知り、未来を思い描き、企業文化をより深く体験することができました。