新規事業開発室で関西支店勤務の加藤です。 「新規事業の開発メンバーが1人→n人に増えるのを支えた技術」というタイトルでSansan Builders Box 2019に登壇しました。
昨年のSBB 2018開催時は入社した直後で、当時は(来年には登壇できるような実績を積みたいな)と密かに思っていました。 今年に入り8月にプロポーザルが募集されましたが、タイミング悪く6月に異動したばかりで、異動後の部門で話せるような実績はないような気がしていました。 しかし、上司の「2ヶ月でこれだけできてるんだから、あと3ヶ月あれば十分話せる量になるやろ!」という言葉に後押しされて申し込んだところ、無事採択されて登壇できることになりました。
というわけで、新規事業開発室で社内トライアル中のサービス開発に参画してからの取り組みを紹介しました。
質問への回答
当日は多くの質問をいただきました。時間的に回答できなかったものもあるので、質疑応答の時間や懇親会でお答えしたものも含めて、改めて回答します。
サーバーサイドKotlinも採用が難しいという印象がありますが、実際はそうでもないのでしょうか?
サーバーサイドKotlinの経験者に限定してしまうと難しいかもしれませんが、Javaを書ける人ならKotlinの習得にそこまで時間がかからないと考えています。
フロントエンドでTypeScriptを使っているとのことでしたが、サーバーサイドの言語選定時にKotlinを選んでTypeScriptを選ばなかったのはどういう理由でしょうか?
Node.jsでのサーバー運用経験がメンバー内にあまりなく、運用経験があるJVM系言語の方が安心して採用できると考えたためです。
ラーニングセッションの開催頻度は?
毎週30分開催しています。個人的にはもっとやりたいと思うことが多いですが、長すぎてもダレるような気がします。その週に出た学びの量が少ない場合は、スキップすることもあります。
TypeScriptの型チェックを本番ビルドに限定している理由はなんですか?
開発中に型チェック(fork-ts-checker-webpack-plugin)を有効にすると、ビルドに時間がかかりテンポよく開発できないためです。開発中の型チェックはVS Codeなどのエディターに任せ、CIは最後の砦のような位置付けで型チェックを実施しています。
チームとしてKotlinを習得するためのおすすめの手段(教材・学び方等)があれば教えて下さい。
それぞれのメンバーが書きながら学んでいる状況で、まだ良い方法を見つけられていません。いくつか書籍はありますが、やや決め手に欠けると感じています。良い方法があればぜひ知りたいです。
CIを並列で動かすとアクセスするDBが被ってしまうとのことですが、CircleCIなどのように、DBもコンテナ化して、テストごとに環境を作ることはできないのでしょうか?
私の知る限り、Cloud Buildでは、CircleCIのようにバックグラウンドのコンテナを簡単に起動することはできません。CI環境でもCloud SQLに接続する方が、本番環境に近い状況でテストできるため、今のところ積極的にコンテナのDBを使いたいとは考えていません。
終わりに
これまで対外的なイベントでの登壇経験はあまりなかったのですが、無事終えられて安心しました。 Twitterでの反応はポジティブなものが多く、懇親会でもいろいろ質問していただけて、嬉しかったです。
関西支店の開発メンバーには、発表練習に付き合ってもらい、たくさんのフィードバックをもらいました。 おかげさまで、より良い発表になったので、とても感謝しています。
イベントphoto:平山敦史