エンジニア&企画合同社内ハッカソンでの学び – アーティストのおっかけサービス「ArtistClip」を制作して

好きなアーティストといえばもっぱら声優の名前ばかりが上がる、WEBサービス開発部の長谷川です。

先日弊社で、エンジニアと企画合同で社内ハッカソンを行いました!
そこで作ったサービスと、その裏で使用した技術、学んだことについて紹介します。

企画職と開発職で一緒にハッカソンをしたのは今回が初めてでしたが、その様子と学びについても後ほど紹介します。

※社内ハッカソンについては 若手メンバーで2泊3日のハッカソン合宿@土善旅館に行ってきました! をご覧ください。

チーム紹介

このサービスは、中野(メンター/サーバーサイド開発)、高田(不動産サービス企画)、長谷川(スマートフォンアプリ開発)の3人で制作しました。
普段、WEBサービスの立ち上げや開発には携わっていないメンバーが多くなっています。

制作したサービス「ArtistClip」

好きなアーティストがたくさんいると、日々更新されるニュースを追いかけるのが大変ですよね。
気づいたらライブのチケットの先行販売がはじまっていたり、イベントが告知されていたり、テレビやソシャゲに出演していたりします。見逃すこともあるのではないでしょうか。

今回制作したサービス「ArtistClip」は、そんな悩みを解決するサービスです。

※一般公開はしていません。ご了承ください。

artist-clip-1

このサービスは、好きなアーティストのニュースやTwitterをまとめてチェックできるサービスです。

artist-clip-2

トップページでアーティストを絞り込み、追いかけたいアーティストをクリップします。

artist-clip-4

マイクリップのページで、自分がクリップしたアーティストのニュースを一画面でチェックすることができます。
このページを毎日チェックすれば、もうニュースを見逃すこともありません。

artist-clip-5

アーティストごとのページも用意しました。
マイクリップのページではあまりニュースの件数が出てこないので、別のニュースが見たい時はこちらのページを利用します。

機能や画面数は多くありませんが、最低限サービスのキモとなる機能や画面は揃えることができたと思います。

「ArtistClip」で使った技術

このサービスをつくるにあたり、使用した技術やフレームワークについてご紹介します。

Laravel 5.4

PHP製のフレームワークであるLaravelの最新版をメインのフレームワークとして使用しています。

このチームのメンバーは普段触れていない言語・フレームワークではありますが、世界で使われているフレームワークを学ぶという意味で、今回の合宿のお題として採用されています。

OSS

アーティストごとのページでTwitterが表示されていますが、APIから取得するために OSSのTwitterプラグイン を利用しました。

合宿当時はLaravel 5.4で動かない部分があったため、自分のGitHubにフォークして修正したものをComposerでインストールしています。

※プルリクも出したかったのですが、すでに同じ内容のプルリクがついていたため今回は断念しました。執筆現在ではLaravel 5.4でも動作するようになっています。

Google News API

ニュースの取得については、メディア系ニュースのRSSなどいろいろと検討しましたが、アーティストに紐づいたニュースの取得がしたかったため、今回はGoogle News APIを使用しました。

APIで取得した結果をそのまま表示するというレギュレーションがありますが、簡単に利用できるため今回のサービス作成には非常に役立ちました。

データベース(MySQL)

アーティストの一覧をデータベースに格納しているほか、Google News APIで取得したニュースのキャッシュにデータベースを利用しています。

特にクリップページではニュースAPIを複数回叩くようになっており、都度取得していると時間がかかってしまうため、キャッシュするようにしました。

なお、アーティストのクリップについては、今回はログインなしでも機能を使えるようにしたかったため、Cookieに保存するようにしています。

もう少し取り組みたかったこと

開発期間が実質1日半しかなかったため、コアとなる機能の開発で時間いっぱいとなってしまいました。

もう少し時間があれば、新着ニュースが届いた際のプッシュ通知(WebPush)や、お気に入り登録数などをもとにした「盛り上がり度」、似ているアーティストのレコメンドなども行えるとよかったなと思っています。

エンジニアと非エンジニアのチームでのハッカソンをしてみて

先ほども触れたとおり、このチームは開発職2人、企画職1人の3人でサービスを制作しました。

企画職の視点で見ると、エンジニアと一緒にアウトプットを考え、優先順位を付けながら、席を並べて一緒にものづくりをする、という体験は普段の業務では難しく、ハッカソンでは気持ちよく開発ができたようでした。
「これを作って欲しい」と開発側に依頼をするような、企画と開発の役割が分かれているような環境だと、この感覚で仕事をすることは難しいかもしれません。

逆に開発職の私としても、アウトプットのイメージが一致し、随時相談しながらチーム開発をした今回のハッカソンは、かなり効率よく仕事を進めることができたと感じています。
せっかくの研修の場なのでもう少し技術的なチャレンジをしてみたかったという気持ちはありますが、遠慮せずもう少し早めに伝えておけばよかったとも思っています。

まとめ

普段の業務では「企画」と「開発」で立場が分かれがちですが、ハッカソンでは普段の業務から離れ、開発職も企画を、企画職も開発をする良い機会でした。(今回は開発主導なので開発の比重が多めですが……)

「チーム全員で企画から開発まで」という経験は、特に事業規模が大きくなると難しいことも多いですが、アウトプットのイメージやその裏に込められた気持ちがしっかり共有できると、お互いに気持ちよく、また効率よく仕事できるという良い実感を得ることができたように思います。

また技術面で見ても、普段業務で取り組んでいない分野や技術にチャレンジすることができる良い機会でした。

今回学んだ感覚や取り組み方を普段の業務に活かしていくとともに、こうしたハッカソンのような取り組みは今後も継続的に行っていきたいと思っています。