--開発の手法やバージョンアップの頻度は。
会社全体としては、ゆるいアジャイルでやっていこうという考え方です。というのも、周期的にリリースは当然していきたいと思いますし、アップデートやフィックスも必要に応じてどんどんやっていきます。作り方にしても、あらかじめ仕様をかっちり決めるのではなく、プロトタイプを作ってみて、それをビジネスサイドと一緒に考えて、それをもとにさらによりよいものを作る手順を踏んでいます。
ただ、チームや作る対象によって、適宜やり方を変えています。たとえばSPEEDAもNewsPicksも、データのフォーマットや最終的に入れる形が決まっているものについては、あらかじめ作り方を決めて走り出した方が早いですし、戻りもなくせます。そこはアジャイルでやってもあまり意味がないですよね。
またリリースに対しても、顧客に対してインパクトを与えるために大きなリリースをまとめるということはよくあります。ちょこちょこと変えていると、顧客から見たら何が変わったのかわからない。だったら一気に、「こんなに変わったんだ」という驚きを与えるためにひとつにまとめることがあります。
バージョンアップの頻度は、SPEEDAもNewsPicksも1週間に1回は必ず何かしらリリースしています。NewsPicksでは細かいインタフェースの改善であるとか速度の向上であるとか、実際に機能を増やしてビッグリリース的なことをすることもあります。またSPEEDAでいえば、細かいバグ修正やちょっとした操作性の向上などは常にしています。
実は、ユーザベースにはちょっと前までデザイナーがいなかったんです。そういう意味で、デザインやルールを気にはしているし実際に顧客から使いやすいと言われますが、それも徐々に改善を積み重ねていった結果なのかなと思っています。
--新しい技術はどのようにキャッチアップしてるか。最近注目している技術は。
国内外の複数の情報ソースを見ることを心がけています。それは、SPEEDAを作るために必要なものだけでなく、最近ではゲームを作るために必要な技術なども見ています。そういう中にも応用できるものはたくさんあります。
また、全然違う目的で出てきた古い技術が、新しい使われ方をされ始めている点に注目しています。例えばDockerがそうですね。Dockerは昔からある考え方であり、技術なのですが、それをさらに使いやすくすることで違うところに応用する。そもそも開発者が使って、イメージを作ったらそれをそのままインフラの人が持って行ってデプロイするところなどは、ユーザベースでも使っています。現状だとバッチ処理、機械学習のところですね。
機械学習のプログラムを作るには、さまざまのライブラリや依存する技術があって、それを1つにまとめてほかのところと隔離して扱えるのがDockerのいいところだと思っています。また、人によってはウェブアプリをデプロイするために使っています。そういう使い方をしている会社が多いと思いますが、完全に隔離された環境でプログラムを実行できるところが気に入っています。
--サービスを構築しているシステムとは。
システム的には、SPEEDAではクラウドは全く使っていません。それは、SPEEDAはデータを大量に扱って高速にユーザーに届けるもので、そのためにいくつか特殊な機器を入れています。たとえばFusion-ioという高速なディスクなどを導入しています。こういうものはクラウドでも提供されていますが高価であるとか、機器の性能を出せるようにネットワークを組めるか不安ということもあります。また、トラフィックが急に増えることもないのでシステム面の計画も立てやすいというのもあります。そのため特殊な機器を使ってできるだけ早く届けるという目的のもとで、あえてオンプレミスにしています。