自身の強みを活かして入社。決め手はfreeeならではの魅力
野村はWebエンジニアになったきっかけをこう語ります。
野村:情報系の学校でプログラミングを学び、卒業後は主にみどりの窓口に設置されている“マルス端末”につながるデバイスドライバーを製造する会社に就職しました。
それからソーシャルゲーム業界に転職して、営業やモバイルエンジニアを経験した後、Webエンジニアとして働き始め、技術を習得していきました。
ソーシャルゲーム業界を経て、前職ではフォトブックサービスを提供する会社で働いていた野村。さらなるキャリアアップを求め、転職を考えるようになったのには、次のようなきっかけがありました。
野村:アプリ上でフォトブックを簡単に作って送付するサービスの開発運用にバックエンドエンジニアとして携わっていました。開発メンバーが少なかったので、プロダクトコード以外のインフラや運用改善も行う“なんでも屋”的な立ち位置でした。
そこでKubernetesなどの新しいサービスを使っていて、クラウドのインフラやGoなどのスキルがついてきた実感があったんです。
とはいえ独学で突き進んできたので自分の書いているコードが正しいのかわからず、フィードバックの体制が整っている環境に身を置いて学んでみたいと思うようになりました。
そのタイミングでfreeeの金融開発チームと出会い、入社に至りました。金融開発チームがGoで開発しているところも惹かれた理由の1つです。
一方、新卒としてfreeeに入社した野澤。入社の段階で、ソフトウェア開発者として12年もの経験がありました。
野澤:私の場合は、小学生の時から必要に駆られてアプリを作っていたんです。というのも、私は目が不自由なので、世の中のアプリは目が見えない自分にとって十分使えるものではなく、やりたいことを実現するには自分で作るしかありませんでした。
入社までに、ゲームやライブ配信のコメントを読むためのソフトなど、いろいろなものを合計50本くらい作りました。
世の中には支援技術というものがあるので、ちょっとした工夫をすればハンディキャップがあってもWebアプリは使えるようにできるんです。でも、その工夫が施されていないために利用できないという悔しい思いをこれまで何百回もしてきましたね。
そんな野澤が、新卒入社先にfreeeを選んだ理由とは。
野澤:1つめは、freeeがアクセシビリティを大切にしていて、1人でも多くの人がプロダクトにアクセスできるような取り組みをしていること。私のような悩みを抱えた方が1人でも減れば良いなと思います。
2つめは、業務内容やミッション「スモールビジネスを、世界の主役に。」に共感したこと。会計は目が見えない人にとって意外と身近なんです。マッサージの資格を取って治療院を経営している人にとって、紙での確定申告作業は本当に大変で……。それをfreeeのプロダクトを使って自動化できるなら、確実に経営が簡単になります。
同じチームで働く喜び。開発のモチベーションは「Goが好き!!」
freeeでは、新卒エンジニアはより多くの経験を積むために、2年で別の部署に異動することが推奨されています。
野澤は新卒入社から2年後、認証・認可基盤チームから金融開発チームへと異動し、野村と同じチームで働くことになりました。異動を希望した理由の1つは、野村の入社理由と同じく、Goを使って開発していることでした。
野村:実は面接の段階では、freeeはRubyで開発している会社という前情報があったのですが、私は得意ではないので心配の種でした。しかし実際に面談を受けてみて、金融開発チームはGoを書ける開発環境であることを知り、転職の際にfreeeの優先順位が上がったんです。
Goは速度ベンチマークやフォーマッティングを言語自体がサポートしているので便利だと感じています。
野澤:プログラミングにはいろいろな流派がありますが、私たちは事前にいろんな整合性を調べてくれることに落ち着きを感じるタイプです。安全に開発できることが好きなポイントですね。
また日本ではPHP・Perl・Rubyなどと比べて、Goで作られているシステムは多くありません。Goが世に出たのは2009年で、もう15年ほど経つのですが、いまだに新しい技術とされている節があって。Goを書いていると話すと『すごいじゃん!』と言ってもらえます(笑)。
PHP・Perl・Rubyの言語のパラダイムと、GoやC言語のパラダイムは違っていて、前者は動的型付け言語、後者は静的型付け言語に属します。
野澤:Goは覚えることがそれほど多くないので、他の言語と比べると習得難易度は比較的低いと言われています。言語仕様のチュートリアルも30分ぐらいで終わり、それである程度のことはできるようになります。
その上、静的型付け言語の場合は、書き方が間違っていたら実行してくれません。プログラムが動く時点である程度正しいことを担保してくれているんです。
野村は、言語の好みの違いには性格が出ると語ります。
野村:Goは言語側で書き方を縛っているので、書き方に対してあまり悩むことがなく、より自分が出したい成果に向けて注力して書けるんです。
一方で、PHPやRubyはスマートな書き方というか、ソースコードの行数が少なくなるような書き方を追求することができます。少ない手数でコードを書きたい人は動的型付け言語が合っていると思います。
安心・安全なクレジットカード社会をめざして。開発に懸ける想い
金融開発チームに所属する2人が担当しているのは、クレジットカード(freeeカード Unlimited)です。
野澤:クレジットカードと一口に言っても、いろいろな仕組みが存在しています。その中でわれわれが担当しているのはカードの発行、停止、追加発行、それらに紐づく画面の作成などお客さまが直接目にするものから、裏側のシステム設計など多岐にわたっています。
たとえばカードの申し込みがあったら、審査を外部に委託します。審査がOKであれば、カードの印刷会社に注文内容や送付先の住所などデータを渡します。これらはほとんど自動化されていて、そのシステムの設計などにも携わっています。
もし障害が起きればカードが使えなくなったり、紛失してもカードの利用停止ができなくなったりするので、24時間安心安全に利用できることが求められています。
野村:裏側のシステム設計には、利用に応じての決済データの送付や、最終的なお客さまへの請求などもあります。
たとえば月の限度額が100万円ならば、カードが使われたら100万円の範囲に収まっているかどうかチェックする必要があります。その処理を提携しているカードの関連会社に委託して、可否を受け取り、「決済しました/決済できませんでした」のメールをお客さまに送るシステムの設計なども行っています。
また最近リリースしたのは、カードを利用するとスマートフォンやSlackに通知が届き、そこからレシートや領収書をそのまま「freee会計」にアップロードできる機能です。電子帳簿保存法の施行により領収書データを保存する必要が生じたので、世の中の動きに合わせた機能開発になりました。
このように、金融開発チームではクレジットカードを起点に、お客さまの経理上のペインを解決することをめざしています。
2023年にリリースしたバーチャルカードの開発には、とくに思い入れがあったという野澤。
野澤:バーチャルカードは、PdMと共にユーザーのニーズを一緒に考え、私が主担当としてシステムの設計を行ったんです。そのためこれまで作ってきた機能の中でも、強い思い入れがあります。
オンライン決済専用のバーチャルカードは、物理カードは存在せず、カード番号とセキュリティコードのみの発行になります。メリットは、プラスチックカードの管理コストや、盗難・紛失のリスクが低減すること。それに加え、発行が簡単なので、用途別に発行すればカード番号が別になり、それぞれ限度額を設定できることです。
これにより、たとえばGoogle用、Amazon用にカードを分けるなど、事業場での仕分けがしやすくなり、より高度で柔軟な統制を利かせることができます。物理カードで同様のことを行うと、単純に枚数が増えてしまいます。
そして野村は、これからのクレジットカード開発についてこう語ります。
野村:freeeカードには経理担当者のペインを解決するという大きなテーマがあります。現在は、利用するとポイントが入るか、連携の機能が充実しているかなど、カタログスペック上で競合他社と比較されるので、よりお客さまに選んでもらいやすいサービスを拡充させることがミッションですね。
また、freeeは会社として統合型経営プラットフォームの構築をめざしていて、freeeのプロダクトをまるっと使うことで経営を簡単にしようとしています。そのために、カードの利用明細を「freee会計」に取り込む機能はさらにブラッシュアップして、よりお客さまに寄り添ったサービスをめざしたいです。
スクラム開発で風通しの良い開発組織を
クレジットカード開発チームは、少人数の3つのグループに分かれて、スクラム開発(※)を行っています。野村は1つのグループでスクラムマスターと呼ばれる旗振り役を担っています。
※ チームを組み、コミュニケーションを取りながら、優先度の高い順に短期間で進める開発手法の1つ
野村:入社して半年経った時に「スクラムマスターやってみない?」と誘いを受け、自分自身の開発者体験を改善できると考えて引き受けました。そこからはスクラムマスターとエンジニアの兼業です。スクラムのチームビルディングをするのは大変です。
私の役割は、スクラムをうまく進行させるために必要なことを考えて、なんでもやること。自分だけが頑張るのではなくて、どうしたらみんなでスクラムをうまく回せるかを意識していますね。スクラムマスターはスクラムを回す役割というより、みんなでスクラムを回せるように提案する役割なんです。
クレジットカード開発チームは、社内でも雰囲気が良いと言われるチームの1つ。
野澤:チームはやる時はちゃんとやり、発散する時は発散することができています。風通しがよく、「こんなこと聞いたら笑われるかも」みたいな雰囲気はまったくないです。
業務や技術に関してのディスカッションが活発で、いろいろな案を出して、その中からよさそうなアイデアをすくい上げて、みんなでいいものを作ることができています。
野村:1週間ごとのゴールを決めて全員で取り組み、開発が終わるまで帰れないルールで、「帰れま10」というイベントをやっているんです。みんなでGoogle Meetで相談したり、成果物を確認したりしながらワイワイやっています。
それもあって、チーム内で自分だけ仲間外れとか、知識量が他のメンバーと違うとか、他のエンジニアがやっていることを把握していないということはありません。
また、同じような課題にあったときに同じところで躓かないチーム作りも意識していて、そのために週ごと、案件ごとの振り返りを行うようになりました。開発活動の悩みなど有意義な話し合いができ「スクラムマスターとしての熱意が伝わってきた」と言ってもらえて感動しました。
最後に2人がこれからの目標を語ります。
野村:クレジットカード機能の開発は、サービスを改善すればするほど、決済額という形で定量的なフィードバックを受けられるのが魅力です。機能の開発・改善を行ってカードの利用率がどうなったか、数値としてダイレクトに表れるので、ライブ感があってワクワクしながら業務に励むことができています。これからもfreeeカードがよりお客さまに寄り添ったサービスになるよう、開発に尽力します。
またマネジメント面では、スクラムマスターだけでなく、ピープルマネジメントの責務も増えたので、しっかりメンバーに向き合って、成果を上げながら成長を続けていけるチームを作っていきたいです。
野澤:freeeカードはセルフ申し込みの解放や、その後の機能追加によって、ユーザー数がどんどん増加しています。
その分負荷も増えるので、パフォーマンス上の問題が出てくる可能性もあります。それでも、新規の機能をどんどん開発しながら、技術負債にも目を向けて、トータルの価値を最大化するために自分が最善と思うことをどんどん提案していきたいです。
マイクロサービスアーキテクチャでは、複数のシステムがそれぞれのタイミングで連携して動いているので、機能追加や変更をする際には、ただ1つのシステムに手を加えるよりも、考慮すべき点が増加します。難しい面もありますが、技術者としては腕の見せ所であり、大きな経験値になると考えています。
個人の目標としては、テックリードをめざしたいというキャリアプランがあるので、そのために邁進していきたいです。
また私はより多くの人が使えるソフトウェアを作ることにも強いこだわりがあります。これは画面読み上げソフトという特殊な支援技術を使用しているというアイデンティティーにも関係していて、アクセシビリティが高いサービスの提供にも尽力したいです。
※ 記載内容は2024年4月時点のものです
