Share

Xでこ�の記事をシェアFacebookでこの記事をシェアはてなブックマークに追加する
# エンジニア# 金融# クレジットカード# freeecard# Go# 開発# スクラム開発

クレジットカード起点でお客さまのペインを解決──金融開発チームの挑戦とスタイル

freeeの金融開発チームに所属する2人のエンジニア、野村と野澤。野村は中途入社で、野澤は新卒でfreeeに入社し、現在クレジットカードの機能を開発・改善しています。この記事ではfreeeに入社した経緯、クレジットカードチームでの仕事内容のほか、Go言語の魅力やスクラム開発について紹介します。

自身の強みを活かして入社。決め手はfreeeならではの魅力

(▲左:野村、右:野澤)

野村がWebエンジニアになったきっかけを語ります。

野村「情報系の学校でプログラミングを学び、卒業後は主にみどりの窓口に設置されている“マルス端末”に繋がってるデバイスドライバーを製造している会社に就職しました。

それからソーシャルゲーム業界に転職して、営業やモバイルエンジニアを経験したのち、Webエンジニアとして働き始め、技術を習得していきました」

ソーシャルゲーム業界を経て、前職はフォトブックサービスを提供している会社で働いていた野村。さらなる転職を考えるようになったきっかけは次のようなものがありました。

野村「アプリ上でフォトブックを簡単に作って送付するサービスの開発運用にバックエンドエンジニアとして携わっていました。開発メンバーが少なかったので、プロダクトコード以外のインフラや運用改善も行う何でも屋的な立ち位置でした。

そこで当時GCP(Google Cloud Platform)さんと懇意にさせてもらっていて、Kubernetesなど、新しいサービスをどんどん使わせてもらっていた流れで、クラウドのインフラや、Goなどのスキルがついてきた実感があったんです。

とはいえ独学で突き進んできたので自分の書いているコードが正しいのかわからず、フィードバックの体制が整っている環境に身を置いて学んでみたいと思うようになりました。

そのタイミングでfreeeの金融開発チームと出会い、入社に至りました。金融開発チームがGoで開発しているところも惹かれた理由の一つです」

一方、新卒としてfreeeに入社した野澤。入社の段階で、ソフトウェア開発者として12年もの経験がありました。

野澤「私の場合は、小学生のときから必要に駆られてアプリを作っていたんです。というのも、私は全盲なのですが、世の中のアプリは目が見えない自分にとって十分使えるものではなく、やりたいことを実現するには自分で作るしかありませんでした。

入社までに、ゲームやライブ配信のコメントを読むためのソフトなど、色々なものを合計50本くらい作りました。

世の中には支援技術というものがあるので、ちょっとした工夫をすればハンディキャップがあってもWebアプリは使えるようにできるんです。でも、その工夫が施されていないために利用できないという悔しい思いをこれまで何百回もしてきましたね」

そんな野澤が、新卒入社先にfreeeを選んだ理由を語ります。

野澤「一つは、freeeがアクセシビリティを大切にしていて、1人でも多くの人がプロダクトにアクセスできるような取り組みをしていること。私のような悩みを抱えた方が一人でも減れば良いなと思います。

二つ目は、業務内容やミッション『スモールビジネスを、世界の主役に。』に共感したこと。会計は目が見えない人にとって意外と身近で、というのもマッサージの資格を取って治療院を経営している人が多いんです。彼らにとって紙での確定申告作業は地獄で……。それをfreeeのプロダクトを使うことで自動化できるなら、確実に経営が簡単になります」

同じチームで働く喜び。開発のモチベーションは「Goが好き!!」

freeeでは、新卒エンジニアはより多くの経験を積むために2年で別の部署に異動することを推奨されています。

野澤は新卒入社から2年後、認証・認可基盤チームから金融開発チームへと異動し、野村と同じチームで働くことになりました。異動した理由の一つに、野村の入社理由と同じく、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つのグループでスクラムマスターと呼ばれる旗振り役を担っています。

野村「入社して半年経った時に『スクラムマスターやってみない?』と誘いを受け、スクラムマスターになれば自分自身の開発者体験を改善することができると考えて引き受けました。そこからはスクラムマスターとエンジニアの兼業です。

スクラムのチームビルディングをするのは大変で、最初はルールを設定して司会進行もやっていましたが、現在はそのような役割はメンバーに全て移譲できています。

私の役割は、スクラムをうまく進行させるために必要なことを考えて、何でもやること。自分だけが頑張れば良いんじゃなくて、どうしたらみんなでスクラムをうまく回せるかを意識していますね。スクラムマスターはスクラムを回す役割ではなくて、みんなでスクラムを回せるように提案する役割なんです」

クレジットカード開発チームは社内でも、雰囲気が良いと言われています。

野澤「チームはやるときはちゃんとやり、発散するときは発散することが出来ています。風通しがよく、こんなこと聞いたら笑われるかもみたいなのは全くないです。

業務や技術に関してのディスカッションが活発で、色々な案を出して、その中からよさそうなアイデアを救い上げて、みんなで良いものを作ることが出来ていると思います」
野村「『帰れま10』というイベントをやっていて、名前の通り1週間ごとのゴールを決めて全員で取り組み、開発が終わるまで帰れないルールです。みんなでGoogle_Meetで画面を繋げて、相談しながら、成果物を確認しながらワイワイやっています。

それもあって、チーム内で自分だけ仲間外れとか、知識量が他のメンバーと違うとか、他のエンジニアがやってることを把握してないことはないと思います。

また同じような課題にあったときに同じところで躓かないチーム作りも意識しています。そのために振り返りを行うのですが、最近は週ごとの振り返りとは別で、案件ごとの振り返りも行うようになりました。開発活動の悩みなど有意義な話し合いができ『スクラムマスターとしての熱意が伝わってきた』と言ってもらえて感動しました」

最後に2人がこれからの目標を語ります。

野村「クレジットカード機能の開発はサービスを改善すればするほど、決済額という形で、本当に定量的なフィードバックを受けられるのが魅力だと思います。機能を開発・改善を行ってカードの利用率がどうなったか、数値としてダイレクトに現れるので、ライブ感があってワクワクしながら業務に励むことができています。これからもfreeeカードがよりお客さまに寄り添ったサービスになるよう、開発に尽力します。

またマネジメント面ではスクラムマスターだけでなく、ピープルマネジメントの責務が増えたので、しっかりメンバーに向き合って、成果を上げながら、成長を続けていけるようなチームを作っていきたいです」
野澤「freeeカードはセルフ申し込みの解放や、その後の機能追加によって、ユーザー数がどんどん増加しています。

その分負荷も増えるので、パフォーマンス上の問題が出てくる可能性もありますが、新規の機能をどんどん開発しながら、技術負債にも目を向けて、トータルの価値を最大化するために自分が最善と思うことをどんどん提案していきたいです。

マイクロサービスアーキテクチャでは、複数のシステムが、それぞれのタイミングで連携して動いているので、機能追加や変更をする際には、ただ1つのシステムに手を加えるよりも、考慮すべき点が増加します。難しい面もありますが、技術者としては腕の見せ所であり、大きな経験値になると考えています。

個人の目標としては、テックリードを目指したいというキャリアプランがあるので、そのために邁進していきたいです。

また私はより多くの人が使えるソフトウェアを作ることにも強いこだわりがあります。これは画面読み上げソフトという特殊な支援技術を使用しているというアイデンティティーにも関係していて、アクセシビリティが高いサービスの提供にも尽力したいです」