こんにちは。経営企画室の伊藤です。
フォルシアでは通年、積極的にキャリア採用を行っており、大手マスメディアや旅行会社、金融業界の出身者など様々なバックグラウンドをもった社員が活躍しています。
今回は2019年に新卒で入社し、エンジニアのユニットリーダーとしてはもちろん、広報活動や経営者とともに会社課題を検討するチームでも活躍する webエンジニアの谷井 嶺太(たにい・りょうた)さんのインタビューを前後編でご紹介します。(※所属、業務内容は取材時点の内容となります。)
まずは前編「フォルシアエンジニアの魅力編」です。
技術力 × お客様とのコミュニケーション で価値を発揮
谷井さんの現在のお仕事内容を教えてください。
フォルシアのSaaSプロダクトである「旅行・観光業界向け商品販売プラットフォームサービス『webコネクト』」の開発に携わっています。
webコネクトの社内の開発体制は、大きく分けて2つのコンセプトでチームが編成されています。1つは、中長期的にプロダクトラインナップを拡充していくチームで、もう1つは、既にwebコネクトを導入いただいたお客様からの要望をもとに、その実装可否を検討し、お客様とコミュニケーションをとりながら開発を進めていくチームです。もちろん綺麗に二分されているわけではなく、都度ケースによって対応するチームを検討する場合もありますが、大きく分けるとこの2つのチームがあり、私は後者のお客様とコミュニケーションをとりながら開発を進めるチームのユニットリーダーをしています。
もちろん前者後者どちらのチームであっても業務のなかで開発業務が占める割合は多いのですが、後者のチームの働き方の特徴として、お客様とコミュニケーションをとる機会が多いのはもちろん、SaaSプロダクトのwebコネクトに実装すべき機能の範囲をしっかりと検討し、見極め、お客様の要望に対してどういった回答を出していくのかをビジネスサイドとともに考えていくというものがあります。
フォルシアにとってSaaSプロダクトをつくっていくのは初めての試みで、プロダクトのつくり方が確立されていないところもあります。
お客様(旅行会社様)から出る要望の多くは技術的には対応可能ですし、言われたことを言われたままに作ることはある意味簡単ではありますが、エンジニアのリソースも有限な中で、SaaSプロダクトとして本当に価値のあるものを作るためには優先される機能を見極める必要があります。お客様のビジネスにどれくらいプラスのインパクトを与えられるのか、開発にどれくらいのコストがかかるかなどを総合的に考え、実装可否の判断やお客様への回答の仕方をITコンサルとともに考え、実際に対応するとなればその開発まで携わります。
エンジニアとは言え、非常にビジネスサイドまで踏み込んだ業務なんですね。ITコンサルとの役割分担はどうなっているのでしょうか。
やはり技術的な観点に関してはエンジニアから意見を出していく必要はあります。
例えば、「この機能は各社ごとのカスタマイズができるレイヤー内で実装が可能かどうか」「この機能を実装することで今後の開発時に考慮すべきコーナーケースが発生しないか」といった観点はエンジニアだからこその部分です。
いわゆる"技術負債"を残さないような設計にするため、実現される機能の価値とは別にシステム全体の美しさを保つための判断もエンジニアが行うべきことです。
また、お客様とのコミュニケーションといった意味では、いわゆる運用保守のような業務もあります。不具合の修正や、設定変更、メンテナンスについてなど...こういった内容はエンジニアが直接お客様と会話して進めていったりもします。
業務の難しさ、おもしろさとは?
幅広く対応されている中での難しさやおもしろさはどういったところでしょうか?
難しさも楽しさも色々な場面で感じていますが、わかりやすい例としては実装が綺麗に横展開できた時でしょうか。webコネクトでは原則的に、機能を追加すると複数のお客様で使えるようになります。それを見越して、B社からある機能要望があった際に、「この要望を叶えるだけであればここまでの開発で良いが、似た要望はほかの会社でもありそうだから、横展開のために汎用的に開発しておこう」というような"読み"が上手くはまって追加コストを抑えた横展開ができると、パズルが解けたときのような気持ちの良さがあります。
また、私自身の志向性として、言われたものをただつくるのではなく、自分がつくるものに納得感を持って開発していきたいという想いがありますし、器用貧乏なので一点集中型のエンジニアというタイプでもありません。そこで、コーディングと、ほかにも自分にできることを掛け合わせることで価値を出していきたいと考えています。
いまの働き方は、エンジニアとして技術のこともわかりますし、お客様と直接コミュニケーションをとることもできるので、伝える・つくるといった両面に携われます。技術についての理解・知見からわかりやすく伝えていくことができ、お客様の声を直接聞いていることで要望の意図を汲み取った実装をしていける――そういう両面から価値を発揮できる環境はおもしろいです。
webコネクトとは?
ダイナミックパッケージ型商品におけるリアルタイムな料金計算と高速な一覧表示を実現する旅行・観光業界向けのSaaSプロダクトです。商品のオンライン販売に求められる素材登録(造成)、検索、予約、電子クーポン、外部接続ゲートウェイといった機能群をモジュール化し、顧客ニーズに応じてカスタマイズして必要な範囲で提供することができます。
「webコネクト」を活用することで旅行会社、鉄道会社をはじめとする旅行・観光商品を販売する事業者や素材提供会社は、例えば目的地までの交通手段の予約と、現地での宿泊・レンタカー・アクティビティ等の手配とが一括で済むような仕組みをスムーズかつローコストで導入することができます。
とある日の谷井さんの1日のスケジュール
システム全体を俯瞰してつくるためにはチームでの密なコミュニケーションが大切
「チームで開発する」とは?
フォルシアでは「チームで開発する」という表現をよく聞きますが、チームで開発とはどういうことでしょうか?
いろいろな要素があるのですが、一番は実装方針の相談をしあうという側面が大きいですね。一つの機能を実装するにあたって、そのコードの書き方は何通りもの方法があり、やりようによってはいくらでも"読みづらい"書き方や"見通しの悪い"設計もできてしまいます。そんな中で、どういった書き方にすると他の人にとっても編集しやすいかたちになって、システム全体として綺麗なつくりになるかという部分はチームで相談しながら進めていきます。
例を挙げますね。
webコネクトでは「マイクロサービスアーキテクチャ」という戦略をとっていて、システム全体として1個の大きいアプリというわけではなく、いくつものアプリをつくって、それぞれに役割分担をさせて成り立っています。これによって、それぞれのシステム同士はお互いに絡み合わないようにして、機能に関わる修正範囲をなるべく限定的にできるというメリットがあります。
具体的には、宿泊施設、航空素材、列車素材といった商材ごとのアプリと、画面描画や料金計算などの商材を跨いだ機能ごとのアプリで構成されています。
従って、新しい機能や処理を追加する場合には、どのアプリで処理を行うべきかを判断する必要があります。
こういった判断は様々な粒度で必要になり、多くは絶対的な正解がありません。システム全体でのメンテナビリティやパフォーマンスを総合的に考えながら、チームでコンセンサスを取って進めなければいけません。
「これ、こうやろうと思うんだけどどうかな?」「それだったらこっちの方がいいんじゃないですか?」というような相談をするというのが一番コミュニケーション回数としても多いと思いますね。
チーム内では「宿泊施設のアプリはAさん、列車素材のアプリはBさん」といったような役割分担がされているんですか?
いえ、そこは原則チームみんなで全部のアプリを見る形を取っています。
そうはいっても、初期開発時にはアプリごとにある程度特定の人がまとめて開発していったほうが効率的なので、そうなると属人化というか、開発した人が一番詳しくなるものなので、個々人ごとにどの領域に知見があるかという色は出てきます。それが一定以上偏ってしまうと、その人が抜けてしまった時にチームが回らなくなってしまう恐れがあり不健全なので、ある程度、詳しいものとそうでないもののグラデーションはありつつも、なるべく分散させてチームとして健全な形になるよう気を付けています。
属人化させないための工夫とは?
お客様の業界のドメイン知識のようなものはなるべくesa(社内の情報共有ツール)に書き出して残すようにしています。あとはチーム内でのアプリング(社内用語)で知識の偏りを減らす取り組みをしています。
アプリングは「アプリについて輪になって話す(app + ring)」という意味の社内造語です(COOが命名されたそうです)。チームによってやり方は異なりますが、webコネクトでは週1,2回行っていて、特定の機能に詳しい人が持ち回りで「ここはこういう形になっていて、元々こういう要望があって、こういう実装になっていて~~」というような説明を30分~1時間程度の枠の中で紹介する形式を取っています。全員で理解を深めることで、元々の開発に携わっていない人も、実装の修正や対応をできるようにするという目的があります。また、説明する側にとっても、人に説明することで構造化されて改めて理解が深まるというメリットもあります。
やはりドキュメントを残すというのは結構大変な作業なので、開発業務で忙しい中だとドキュメントを残す暇があったら自分で修正してしまおうというマインドにもなりがちです。そこで、アプリングの場ではあえてあまり資料は作り込まないようにしてもらっていて、その場で参加者みんなでesaをオンライン編集していくようにしています。講師役の社員の説明を聞いて書き残しておいた方が良いと感じたことを参加者が書き記して全員の共有財産にしていって、負担をかけずにその人の持っている知識を周りに伝播させていくようにしています。
プロフィール
webエンジニア
谷井 嶺太(たにい・りょうた)
- 入社年度:2019年新卒入社
- 所属部署:旅行プラットフォーム事業部 旅行第5グループ
- オフの過ごし方:なにもしないことが一番のリラックス方法なので好きなだけ寝ています。また、大学時代から始めた躰道(たいどう)という武道の道場で週1回稽古しています。
- 自分を漢字一文字で表すと...「整」
ゼロから何かを創り出すよりも、既にあるものを整える方が得意です。
- フォルシアを漢字一文字で表すと...「信」
社員一人一人にプロとしての誇りを持つことを求めつつ、信頼して尊重している会社だと思います。
前編 フォルシアエンジニアの魅力編
前編「フォルシアエンジニアの魅力編」はいかがでしたでしょうか。フォルシアのエンジニアだからこその仕事の幅や、チームで働くという働き方、谷井さんの想いが伝わりましたら幸いです。明日は後編「4年目エンジニアの価値観編」をお届けします。お楽しみに!
伊藤 明日香
2021年キャリア入社/経営企画室 広報担当
「谷井やる」のスタンプのお話を聞いてから、いつか押してみようと機会を伺っています。
フォルシアではフォルシアに興味をお持ちいただけた方に、社員との面談のご案内をしています。
採用応募の方、まずはカジュアルにお話をしてみたいという方は、お気軽に下記よりご連絡ください。
※ 弊社社員に対する営業行為などはお断りしております。ご希望に沿えない場合がございますので予めご了承ください。