ガジェット通信 GetNews

見たことのないものを見に行こう

体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

セプテーニ・オリジナルのCTOが語る!開発言語にScalaを採用した理由とは

TechAcademyでは、Scalaで開発を推進するセプテーニ・オリジナルと共同で、インターネット企業、Sl企業での勤務経験がある方向けのScala奨学生コースを特別企画として開催します。

短期間でScalaの技術を磨きたい、正しいエンジニアリングスキルを身につけたいと思っている方はぜひエントリーください。

 

今回は、全社でScalaの導入を進める株式会社セプテーニ・オリジナルとコミックスマート株式会社のCTOとして働かれている杉谷保幸さんにお話を伺いました。

いくつかの事業を立ち上げる上でScalaという言語を採用した背景、社内の教育制度や文化について語ってもらっています。

Scalaに興味を持っている方やこれからScalaを始めようと考えている方は、必見のインタビューでしょう。

 

前職の経験を生かしPHPからScalaを全社導入

――最初に、自己紹介をお願いします。

株式会社セプテーニ・オリジナルとコミックスマート株式会社のCTOを務めております杉谷と申します。どちらもセプテーニグループの会社で、Webサービスの企画、開発や、マンガ事業を手掛けており、私はそれぞれの会社の開発責任者という立場です。

この会社に入ったときはエクゼクティブエンジニアという立場だったのですが、最初のミッションはコミックスマートのマンガ配信サービス「GANMA!」を成功させることでした。

2つ目は、セプテーニ・オリジナルの開発文化を作るというミッションを任され、やること自体は今も昔も変わっていません。

 

――今、何人ぐらいのエンジニアの方が働いていらっしゃいますか?

日本とベトナムで、それぞれ60人ぐらいです。

 

――言語は何を使って開発されているのでしょうか?

ほぼ100%Scalaを使っています。ドメイン駆動設計(DDD)という手法も取り入れており、プロジェクトの運営スタイルとしては、スクラムという開発手法を採用しています。

僕が入社する前は、PHPで作っていましたが、コードの汚さや保守性の甘さが課題として残っていました。そこでまず初めに、開発体制の整備を行うことにしました。

 

具体的には、前職で当時流行っていたScalaとドメイン駆動設計を両方持ち込みました。

当然テストを書くという文化もまだなかったので導入しました。また、コードレビューの文化も育っていなかったので、Confluence、JIRA、Stash(現在はBitbucket)を導入し、コードレビューやドキュメントの集め方、タスクの進捗などを整えられるようにした上で、スクラムという手法を普及させていきました。

 

Scalaを使う良さとは

――新しくScalaのエンジニアも採用していたのですか?

当時は、そもそもScalaエンジニア自体がほとんどいなかったので、既存のエンジニアを教育してプロジェクトを進めました。

 

――Scalaを導入するタイミングに苦労などは無かったですか?

最初のミッションであった「GANMA!」の開発に関しては、問題は特にありませんでした。サーバもScalaでできていますし、AndroidアプリもScalaでできているくらいです。

新しいプロダクトを作る場合は、Scalaで開発できるように、まず「GANMA!」事業で基礎を学んだ後、Scalaで新プロダクトを作るところから始めていき、そこから株分けしていき導入を進めていきました。

 

――教育は、どのような形でされているのですか?

まずは、Scalaに慣れるためにTDD研修で使われるような身近な課題を元にテストを書きつつ、Scalaを書き始めました。

その次はPlay Frameworkを使って掲示板を作ってみる、そして、ドメイン駆動設計の本を読んだあとで、それをドメイン駆動設計で書き直してみるというのを1人あたりレビュアー5人で育てるという体制を敷いています。

中途入社で入ってきた方の研修プログラムの充実とフォローの厚さに関しては定評をいただいていまして、満足度が高いですね。

 

――Scalaを使う上でのメリットはなんですか?

慣れたあとで一番楽な言語はScalaだと思います。

色んな書き方ができて、大抵のことは簡潔に表現ができるため、どういう風に書けばいいのかなと考える時間も短縮できますし、確認するのも楽です。

きれいなコードを維持するのであればPHPは非常に難しいです。

JavaやPHPはちょっとしたことを確認するにもずらずらっと書かないといけない。読むのも書くのも大変ですが、Scalaであれば型もありますしエディタ、IDEの支援もよく利くので、とても楽だというのが最大の理由です。

 

エンジニアにとって働きやすい環境を作るために分社化

――教育の制度や働き方は、社内・社外においてどのような形になっていますか。

株式会社セプテーニ・オリジナルは、もともとは株式会社セプテーニの中の開発部門を、エンジニアにとって働きやすい環境を作るために2014年1月に分社化しました。

やはりエンジニアというのは、朝何時に来て何時に帰るというものではなくて、目標地点を決めてここまでやったらOKという方がパフォーマンスを最大限に発揮できると思ったので、まず勤務体系を変えました。

先ほど紹介したスクラムというのは、1週間や2週間という区切りでやることを決めた上で仕事に入り、日々確認をしながら最後にできたかできないかということを確認するやり方です。どこまでやるべきかというのがはっきりしているため、裁量労働制と相性がいいので裁量労働制もスクラムも導入しました。

 

――仕事をする時間帯や働き方はどう工夫されているのですか?

僕は9時ぐらいに来ていますが、遅めの人もいれば早めの人もいます。お昼頃にはだいたい揃っていますね。

スクラムに関しては、タスクに取り掛かる際にどういった作業をするのか、1時間とか30分単位で決めます。最初に1日2日まるごと検討して、残りの時間で進めるというやり方を採用しています。1日2日かけて検討するのでなかなか大変なのですが、それでも凄く安定して速度が出ていて、かつストレスなく実行できているので、優れた手法だと思います。

1 2次のページ
TechAcademyマガジンの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。