マイクロサービス化で品質とリリーススピードをさらに向上
また、freeeはマイクロサービス化にも取り組んでいる。会計フリーや人事労務フリーなど、それぞれのソフトウェアは独立している一方で、有機的に連携している。
「影響範囲を調べるだけでも一苦労。作業や進捗管理も属人化しやすく、開発速度も落ちてきていました。当社はまだまだこれから事業を拡大していく時期です。そのための施策としてマイクロサービス化を取り入れました」
大きなモノを全員で開発するのではなく小さなまとまりに分け、事業として集中すべき場所に、少数精鋭で高速な開発サイクルを回していくことを選択したのである。
DBトランザクションなどを考慮すると技術的に分割できない部分もあるため、サービスをどう分けるか、その単位の検討には苦労しているという。
「いずれにしてもマイクロサービス化は事業の変化や速度に対応するため。Go言語やgRPCというGoogleが公開したRPCフレームワークを活用して、マイクロサービス化を進めています。gRPCの良さは強制的にAPI仕様を書かないといけないところです。サービス間のプロトコルを明文化することができます。各サービスはKPIを満たしてさえいれば作り方はある程度自由で、エンジニアに裁量を持たせるようにします」
さらにフロントエンドのリニューアルにも取り組んでいる。創業当時から使っていた技術はBackbone.js。しかし、やりたいことを表現するにはイベントハンドリングや状態の管理が非常に難しく、「サービスが成長するにつれて、人間が認識可能な範囲を超えてしまい、開発速度が落ちてバグが増えてしまった」と明かす。そこで交通整理の意味も込めて、「Babelによる最新のECMAScript、React/Flux、Flow、Immutable.jsを活用した、コンポーネント指向のフロントエンド開発への移行を行っており、ほぼ完了しつつある」という。
世の中を変えるビジネスプラットフォームを作ることができる
このようにさまざまな取り組みを実施しているfreeeだが、働く上での魅力とは何だろうか。横路氏がまず挙げたのは「ビジネスプラットフォームを通じて、スモールビジネスに新しい価値をつくりだせること」だ。
「freeeは、スモールビジネスにとって本当に役立つ実用的な業務アプリケーションを提供することにより、ヒト、モノ、カネといった各社のビジネスリソースの情報を把握するプラットフォームです。そして各社がリアルタイムにどういった取引をしているかがわかるため、その情報を使って与信や信用度を算出するツールとしても活用できます。さらにfreee上から銀行振り込みができる機能など、企業活動のインフラをも提供することで、企業間取引のプラットフォームにもなりつつあるのです。このビジネスプラットフォームを活用し、金融機関などと連携しながら今までにない全く新しいサービス開発に携われるのは魅力ですね」
2つ目は扱うデータの面白さだ。小さな会社がどのような取引をしているか、これまで誰も知り得なかったリアルタイムで正確な情報をfreeeは預かっている。例えばそれによって可能となるのが、将来のキャッシュ残高の高精度な予測だ。一説には倒産の半分が、キャッシュフローがうまくいかなくなったことによる黒字倒産だという。つまり、売り上げはあるのに資金調達ができなくて倒産しているのだ。しかし、freeeを使えばすべてのお金の流れが把握できるため、黒字倒産を防ぐことが可能になる。
3つ目は新しいチャレンジができること。現在、採用を積極的に行っている同社では、3カ月ごとに新しいロールが設定される勢いで、既存社員、新入社員問わず、手を挙げれば誰でもチャレンジが可能だ。先述したシステムのマイクロサービス化でも、さらなる価値をユーザーへ提供すべく、経験者や技術基盤・開発基盤を作るメンバーを募集している。
チャレンジの場はそれだけではない。毎年開催される開発合宿もその一つである。
「合宿では丸一日缶詰になり、より良いプロダクトを作るために追加したい新機能など、日ごろなかなか取り組めないことに全員でチャレンジします。昨年もそこで挙げられた案の、約3分の1が実際にリリースされました。ReactNativeで書かれ、交通費精算機能が搭載されたモバイルアプリが生まれたのも合宿がきっかけでした」
4つ目は多様な働き方ができることだ。
「例えば子どもがいて早めに帰りたい場合は、7時~16時といった勤務時間にすることもできます。育児休業制度も充実しており、私自身も11月に子どもが生まれるので、1カ月間の育休を取得する予定です。すでに取得した男性エンジニアもたくさんいます」
また、freeeでは副業を認めている。これには社員自らが起業するなどして個人事業主となった際に、自社のプロダクトを利用することを推奨している側面もある。平日はfreeeの業務をして土日に副業に取り組むエンジニアも存在する。
そのほか、業務委託や契約社員として働くなど、多様な働き方を選ぶことができる。