見出し画像

常に新しい技術や考え方を取り入れながらサービスをグロースに導きたい__ICPの開発を支えるリードエンジニアの想いとは

アスタミューゼはこれまで培ってきた新規事業創出のコンサルティングノウハウを活かして、お客様自身で事業創出をしたりイノベーションが起こりやすい文化醸成のご支援を目指したSaaS開発をスタートしております。この新サービス「ICP」は、膨大なデータベースからアイデアの「発見」と既存事業の「深掘り」が実現できるSaaSで、自社技術や特許などをベースに新たな事業領域での用途展開案を導き出し、組織内で共有・コメントし合うことができるサービスです。

今回はこのICPのリードエンジニアで主にアプリ開発を行っている、開発・インフラ本部アプリケーション開発部の丸山隆司さんにお話をお伺いしました。丸山さんは東北大学大学院修了後、SIerでの金融システム開発、サイバーエージェント等を経て、2019年にアスタミューゼに入社しております。

たとえ失敗しても、自分たちで判断しながらプロダクト開発を進める面白さが事業会社にはある。

---丸山さんのこれまでのキャリアを教えてください。
新卒でSIerに入社して、金融系のシステム開発(主にインフラまわり)を6年間行っていました。もともとずっと技術寄りのことをやりたいなと思っていたのですが、当時はエンジニア35歳定年説みたいなものもあってマネジメント寄りになりそうな空気があり、まだまだ現場で技術を磨いていきたいという想いもあったので事業会社であるサイバーエージェントに転職をしました。サイバーエージェントではアメーバピグのアバターの運用や機能開発を3年半ほどやっていました。

---アメーバピグ!懐かしいですね!
あ、やられてましたか!アバターを着替えさせたりアイテムを買ってプレゼントできたりしたと思うのですが、アイテム送るやつを作ったのは僕です(笑)そう、それで3年半ほどやっていたんですが、SIer時代に少しやり残した仕事があり、直接携わることができる機会があったので一度SIerに戻りました。その仕事を2年くらいやり、ようやく思い残すこともなくなったので、また事業会社に戻ってきたという経緯です。

---SIerと事業会社ではどういったところが違うと感じますか。
SIerと事業会社の大きな違いは「最終的に自分たちで決められるかどうか」だと思います。当時はそこまでSIerとか事業会社とか気にせずやっていましたが、色々と渡り歩いてきた結果、自分で決めながら開発できるという環境が自分には合っていると感じていますね。その分責任も大きいですが、やりがいにもつながるし開発していて純粋に楽しいです。

--経験を積み重ねてきたからこそ、自信を持って判断できるようになったという感覚でしょうか。
もちろん判断に迷うこともたくさんありますよ。ただ、たとえ失敗したとしても、自分で決めたことをやって失敗した方が後悔が少ないという気持ちの方が大きいですね。あとは成功するまでの道のりとしての失敗だと考えているので、失敗しても「これは当たらないことが分かった」という成功までのフローの1つと捉えています。

入社初日にキレた!”普通のICP”開発までの道のり

--実際、アスタミューゼに入社してみていかがでしょうか
これまでの会社の中でも一番自由にやらせてもらっている環境ではありますね。やりたいことがはっきりしている人にとっては働きがいのある環境かなと思います。もちろん自由とは言っても何事にも裏付けをもって進めていかなければならないですが、やるべきことがたくさんあるので飽きないですし、長い目で見たときに「これは絶対やるべきだよね!」とチーム内で話し合いながら決めていくのはワクワクしますよね。

--入社後、丸山さんが1番記憶に残っているエピソードを教えてください
私、入社初日にキレたんですよ。当時、ICPの開発環境が全く整っていなくて、自分のPCで動かすのに理解と準備だけで3日かかっていました。なのに誰もそこに疑問を感じていなくて。なので、開発環境を整えるということからまず取り掛かりました。当時はICPがローンチして半年くらいだったと思いますが、お世辞にもいい作りではなかったですし、そもそも参画したばかりの人が自分のPC上でひととおり動作確認ができるようになるまでに3日かかることがありえなかったので、まずはたとえ中味はよくわかっていなくても10分程度で開発環境が立ち上がる状態を目指しました。最終的には数発コマンドを打てばすぐに起動するようになりましたが、これが最初の私の仕事です(笑)ただ、起動させた後にサービスの中身を見た時に、たった一画面表示するのに待ち時間が非常に長い箇所があり、「これは大変なところにきてしまった...」と思ったのはいまでもよく覚えてます。

--なぜそのような状況だったのでしょう
当時は社内にノウハウもなく、手探りでとりあえず動くということを目標に作ったのでその後の開発に耐えられるようにつくることの優先順位が極端に低かったのだと思います。なので、長期的な開発に耐えられるようにアプリ自体の作りも変えていくということを入社3日目には考え始めていました。全体を改めて整備して、外に出しても説明しやすいアーキテクチャに作り変えていきましたが、同時に機能追加の開発も行っていたのでそことの整合性を取りながらやるというのは結構しんどかったです。当時の会議スライドをお見せしますが、普通のICPになるまでには1年くらいかかりましたね(笑)

普通のICPを目指して

現在

改善すべき課題

過渡期


--今後はどういったことを変えていきたいですか
よりモダンで最新のアーキテクチャにという意味だとまだまだやることはあるので、ICPプロダクトがさらにグロースしたタイミングでやってみたいですね。具体的には、今後さらにアクセスが増えてきたときに自動的にスケールアウトできるような仕組みにはしていきたいです。すでにアプリケーション自体はスケールアウトに耐えられる作りには修正してあるので、あとはそれが活用できるようにタイミングを事業サイドと協力して、いろんな方にICPを利用してもらえるようにしていきたいです。技術的に挑戦してみたいことは色々あるので、あとはそれを必要とされるような盛り上がりを作っていく必要があると考えています。

スクラムで1週間単位で開発サイクルを回し続ける。ICPの進化を支える開発体制とは

--現在のICPの開発体制について教えてください
実際に手を動かして作っているのはフロント1名、バックエンド5名の6名体制です。私たちのチームはスクラム開発を採用していて、1週間単位で開発サイクルを回しています。何を作るか決めて必ず動くものを1週間のうちにリリースし、早く反応を見ようというスタイルでやっています。

--開発サイクルが非常に早いですね!
SIerの頃は何か作るとなると設計して作ってリリースしてというのは短くて数か月、金融でしたら長いもので5年というのもありました。その5年の中でも何をやるかというのは大体決まっていたのですが、非常に大きなプロジェクトだったので、自分がどの程度貢献できているのかなかなか手ごたえは感じられなかったです。一方で、ICPというサービスはこれからグロースさせるというフェーズで、何をもってユーザーにICPを積極的に使ったもらえるかの正解がまだ見つかっていない状態なんですよね。なので、もともと目指しているロードマップもありますが、製品の特性上そこには固執せずに少しずつ作ってお客様の反応を見ながら変えていくという手法を取っています。ある程度こうなりたいというゴールはありますが、お客様が使いやすく課金もしたくなる仕掛けを考えながら作っていくというかんじですね。

--丸山さんも事業サイドのメンバーとともに企画段階から一緒に考えているのでしょうか
そうですね。これまで「どうやって作っていくか」を考えることが得意だったのですが、今は割と「なぜ作るのか」というもう少し上流部分の企画段階から入って事業側のメンバーと一緒に考えることも増えてきました。本当に正解がないので、お客様から色んな要望がある中で、現時点での1番の課題は何か、そのためにどんな機能があったらそれが解決できるのかというのは開発者視点で積極的に意見を出すようにしています。

様々なサービスを使い倒すことが好き。常に学び続け、チーム内でも共有し合う文化がアスタミューゼにはありますね。

--アスタミューゼではモダンな技術をエンジニア主導で積極的に取り入れている印象がありますよね
エンジニアってずっと同じことをしていると飽きてしまうと思っています。あとはこの業界、どんどん新しい技術が出てくるので、今流行っていても数年もしたら廃れちゃうようなことも多いです。なので常に学び続けることは意識しているし、新しい考え方は取り入れていきたいという気持ちは私だけではなくメンバーも持っています。直近の動きとしては、これまでバックエンドは一貫してScalaで開発してきていたものに加えて、Kotlinという選択肢を増やしたり、フロントの実装にTypeScriptを導入したり、といったことに挑戦しています。

--普段、どのようにインプットされていますか
新しい技術でいうと、例えば最近だと、ICPの管理機能の画面をReactに作り変えたいとぼんやり考えていているので、開発元のサイトに直接アクセスしてチュートリアルを自分で試したり、自分専用の小さなWebアプリケーションに実際に適用してみたりして大枠を掴むみたいなことをしています。そういった理由で、直接開発元のサイトを見に行くことが多いですね。3か月に1回くらいのペースで定期的に1次情報をキャッチアップしてます。そこまで新しくない技術に関しても、本でまとまっていたりすれば読むということももちろんしています。あとは他社の新しいサービスも結構見ていますね。気になるサービスについてはアカウント登録をして使い倒しています。アスタミューゼで最近リリースしたTHE CODEも課金して利用してみたりもしました。そういうところから使いやすさや課金したくなるポイントなど自社のサービスを開発する上でのヒントをもらうことが多いですね。

--エンジニアの方はインプットしたことを開発ブログや社内wikiなどでよくアウトプットされていますよね
アスタミューゼでは開発サイドの取締役が中心となってslackのタイムライン上で困っていることとかアウトプットとか積極的に発信していこうねという取り組みを推進してきていたのでそういう文化が根付いているんですよね。今ではslackだけでなく、社内wiki、週1の勉強会、開発ブログなどでそれぞれ積極的に発信しています。結局アウトプットしないとその人がどこまで理解できているかとか、何に興味があって今何をやっているのかとか見えないというのもあるので、いい取り組みだなと思いますよ。

何よりも本人の学ぶ姿勢が1番大事!技術力は後からでもカバーできる

iOS の画像 (丸山さん受付)

--最後に、丸山さんはどんな人と一緒に働きたいですか
入社時の技術力そのものは低くてもいいので、できなくても追いつこうとする姿勢がある人と一緒に働きたいですね。あとは自社でサービスを提供していくので、例えば1つのサービスを使い倒したことがあって、こう使ったらもっと使いやすいのにというプロダクトへの意識が強い方がいいですね。今のICPは正解がないので、1人1人のそういった姿勢が非常に大事で、エンジニア視点で積極的に提案できる人にはぜひ来てほしいです。

--エンジニア未経験でもチャレンジできる環境なんでしょうか
そうですね。社内でも未経験の方も何名か入社しましたが、そういう方たちって共通して学ぶ姿勢が強いと思います。その時点で技術力が足りないことはそんなに気にしていなくて、どちらかというとそこからどう巻き返すかとか、自分が役に立つためには何をすればよいのか考えられる人であれば、その時点での技術力の低さをマイナスに感じることはないと思います。そういった意識が常にあれば、技術力は後からでもついてきますよ。

実際、プログラム未経験で入社された方が社内wikiで「Scalaで学んだこと」をアウトプットとして出したことがあるんですけど、私や他のテックリードでさえ「すげー!これ勉強になる!ありがとう!」とコメント残してるくらい成長しています。

Scala学びキャプチャ


なので入社当時の技術力というよりも、本人の学びたいという姿勢が非常に大事で、自分と向き合ってそこからどうするのかを考えられる人と一緒に働きたいですね。