人々の生活から、「めんどくさい」をなくす。
というミッションを掲げ、”予約”を切り口にビジネスオーナー・エンドユーザーへ様々な価値を提供しているクービック株式会社。
今回は、2020年1月に入社したエンジニアの伊藤にインタビュー。開発体制やチームの課題まで、クービックの開発のことを赤裸々に語ってくれました!ぜひご覧ください。
クービック株式会社
エンジニア
伊藤 薫人
▼成熟してきたプロダクトならではの魅力
ー現在、クービックではどんな仕事をしていますか?
サーバーサイドの実装が中心ですが、フロントエンドやインフラの改善にも手を出したりと、幅広くやっています。「Coubic」というプロダクトは、2015年のリリースから順調にユーザー数・導入数を伸ばし、けっこう成熟してきています。でもかといって、巨大になっているわけでもない、絶妙な規模感だと思います。エンジニアリングの責任者で取締役の佐藤が、1人で全範囲をギリギリ見れるくらいの規模です。
僕が2020年1月に入社した時点では、社員のエンジニアは5〜6人くらいしかいなくて。プロダクト規模の割には少数精鋭の組織のチーム。だから、見ようと思えば自分からプロダクトの気になるところを直接見に行けます。例えば、大企業になると、サーバーサイド・アプリ・インフラとかってチームが細分化されてしまうところもあると思うんですよね。今のクービックであれば、一定の規模があるプロダクトで、かつ「フロントエンドの表示改善をしてみよう」とか「インフラっぽいところのパフォーマンス改善もしたらどうか」っていう風に、自分から仕事を取りにいくことができます。
ー成熟してきたプロダクトならではの難しさ・面白さもありますか?
そうですね。リリースから今年で5年目になり、レガシー化してきた部分をモダンな技術に変えています。古くなってどうなってるか分からない、気持ち悪いところもなんとかしたいけど、今でもその機能を使っているユーザーさんはいるわけで。SaaSなので機能単位でお金をいただいていることもあります。既存の機能に影響が出ないように兼ね合いをとりながら、徐々にモダンな技術に移していく必要があります。
今は、基盤の大事な部分をRubyからGoやTypescriptに移行しています。前職まではほとんどRubyを中心に開発してきたので、Typescriptを書くのは初めてですが。プログラムを書くのはすごく好きなので、1つの言語だけじゃなく、色々な種類のコードを書けるのは楽しいです。
あとは、長期的に見るとコードっていろんな人が触るものなので。他の人が後から変更しようと思ったときに、書きやすいように整備することは意識しています。そういう開発体験(Developer Experience)みたいなことは重要だと思っています。
▼小さいチームの方が自分らしくやれる
ークービックに入社する前は、どんな開発に携わっていましたか?
前職は、クービックと同じ五反田にあるスタートアップで、自社プロダクトの開発責任者をしていました。もともとは地元の名古屋で自動車産業に関連するシステムの受託開発を行う会社にいて、上京してからも最初は受託開発をやっていました。この4月で社会人4年目になりますが、キャリア全体を見ると受託をやっている期間が長いです。受託のような0→1の開発も好きではあったんですけど、今のクービックのように既存の機能との依存関係を加味しながらの開発もやりがいはあります。機能単位でいえば、ゼロから作ることもありますしね。
ー入社を決めた理由は何だったんでしょうか?
理由は色々ありました。Rubyを使っていることや、勤務地も五反田がいいなと思っていました。他にもいくつかの企業に話を聞きに行っていて、実は当初別の企業が第一志望だったんです。そこはけっこう知名度があって組織も大きい企業だったんですが、そのせいなのか選考のスピードがゆっくりで……クービックの選考はポンポンと順調に内定まで進んだので、コミュニケーションのストレスが少なかったですね。最終的に第一志望の企業にも受かったものの、色々考えてクービックに決めました。少数精鋭のチームの方が、自分らしくやれるイメージができたんです。
▼”秘伝のタレ”をなくしていくために
ーエンジニアのチームはどんな雰囲気ですか?
今は少数精鋭で回していることもあり、1人1人がプロとして自分の世界を持っていて、自走・独立しているタイプの人が集まっていると思います。クービックに入社する以前に他企業で開発責任者を務めた人、フルスタックに技術を極めている人、Laravel JP Conferenceの運営スタッフをしている人もいます。
あと他メンバーがどうか分かりませんが、普段の個人的な自己研鑽では、めちゃめちゃ最新の技術にはそこまで興味があるタイプではないです。新しい技術が”枯れて”きて、起きやすいバグの特徴やメリット・デメリットがだいたい世の中で共通認識になってくるタイミングで、プロダクションに実用可能になってきた技術の最新情報をキャッチアップするのが好きですね。
ー業務面でのチームの課題を挙げるとすればどんなことでしょうか?
これはどこの会社でもそうだと思いますが、プロダクトの年数が経ってくると、開発者がそれぞれ自分の”秘伝のタレ”みたいなものを持つようになってしまうというか……
ー秘伝のタレ、ですか。
とある機能を、他の人のマシンで立ち上げるのが難しい開発環境で作ってしまってたりとか。これから規模化に向けて新しいメンバーを増やそうとしているときに、そういう問題が残ったままだと大変になります。クービックは幸い創業メンバーがみんな今も現役でチーム内にいるので、設計とかで「これは聞かないと分からんな……」ということも直接聞いて解消できます。まぁ、ただ毎回質問してその人の時間を奪うのも効率がよくないですし、新しいメンバーはやっぱりストレスを感じると思うんですよね。そこの整備というか、環境を整える後方支援みたいなことも、やっていきたいと思っています。
これは、将来的にインターン生やプログラミングの経験が比較的少ないポテンシャル層のメンバーを迎えるにあたっても、重要な点です。システム内の属人的な依存関係をできるだけ解消できる仕組みを整えることで、チーム全体としてのアウトプット量が増えると思うので。秘伝のタレをなるべくなくして、レシピをチーム全員で共有しやすい状態にするのが理想です。自分にとっては、そういうことが興味がある分野だし、得意なことなんだろうなと思っています。
▼いろんなことができます!
ー最後にメッセージをお願いします!
「いろんなことができますよ!」という一言に尽きると思います。
海を眺めるのが好きな人は、いいんじゃないですかね。釣りをするとかではなく、海の家みたいなところで海を見渡してて、漂着物を眺めてるみたいな。「今日はヤバいのが流れてきたな〜……」って言いながら拾いに行く。最初にも話した通り、開発の全体を見に行ける規模感なので、1つ1つ流れてくるものに対して掘り下げ甲斐もあります。どれか1つを自分の専門性として身につけて、エキスパートになるだけでも大きな貢献ができますし。僕の場合はけっこう球拾いをしているタイプというか。受託で様々なタイプの案件を手がけてきたおかげもあって、流れてきたいろんなものを拾っていくのが面白いと思っています。
少しでも興味を持っていただいた方、ぜひエントリーお待ちしています。