freee株式会社

freee

継続的デリバリで常に進化する会計ソフト 会計freee

全自動のクラウド会計ソフト「会計freee (フリー)」は、個人事業主や中小企業(以下スモールビジネス)のバックオフィス業務負担軽減を目指し、本業によりフォーカスしてもらうことを目的に作られたウェブ上で動作する会計ソフトウェアだ。

コンピュータの誕生と発展の歴史を考えると、コンピュータは黎明期から企業の事務処理現場の効率化を目的として企業に導入され発展してきた経緯がある。そうした面で「会計部門は、最も高度にIT化が進んでいるべき領域であり、その利便性は、スモールビジネスを営む方が強力に体感できるものであるべき」と語る横路氏。(freee株式会社CTO)

しかしながら、従来の会計パッケージソフトウェアもスモールビジネスの会計業務環境を大きく改善してきたはずだ。会計freeeと他者の違いはどこにあるのだろうか。

会計freeeでは、会計上のデータをウェブですべて統合させることができれば、従来の煩雑な経理業務から解放されるはずという想定からスタートしている。ネット上でモノを売り、買い手もオンラインで決済をおこなう。クレジットカードや銀行口座情報もネットで取り出せ、すべてがオンラインで解決できるビジネスも珍しくはなくなってきている。今まで、紙に出力しそれを再度入力していたものをウェブで完結させ仕訳処理はコンピュータが自動で判断する。

まさに、購買、決済領域で進むIT化というビジネス変化を取り入れた、全く新しい価値観にもとづいて開発された会計ソフトウェアと言えるだろう。

Rubyを活用した素早い開発力でいち早く市場に投入

「プロトタイプを作るにあたり何よりもスピード感を重視して取り組んできた」(横路氏)との言葉に表れるように、2012年11月のベータリリースから、わずか4か月後の2013年3月にはサービスをローンチさせた。スピード感を重視して開発された会計freeeがRubyを採用した理由として、会計に必要となるライブラリがすでに豊富に存在していた点は大きい。会計のロジックを組立てる際のパーツは、既にgemで提供されているものがいくつもありRailsと組み合わせることで、他のどの言語よりも早く開発が可能になると考えた。

会計freeeのようにウェブ系のスタートアップと呼ばれるサービスの多くはビジネスの仮説に対し、必要最低限の製品を作り、まずは顧客ニーズを確認しようとする。そこでニーズが確認できれば、初期顧客からのフィードバックを活用しながら小さな単位でサービス開発を行うのが、現在の主流ともいえる開発手法だ。その際に素早くプロトタイプが作れるRubyを選択したのは自然な決断だったと言える。

また、PaaSやIaaSなど開発中のRailsアプリケーションをサービスとして稼働させるための、実行基盤が充実していることも、人員が限られている初期の段階で非常に役立った。会計freeeはベータリリースから公式リリースまでの間に、セキュリティ確保の観点でPaaSからIaaSに変更して稼働しているが、横路氏が主体となって、移行についてはサービスそのままにほぼ1人で対応した。

継続的デリバリで常に進化する会計ソフトへ

会計、税務を扱うソフトウェアであれば各種法令の改正に影響されることは多い。消費税率は頻繁に改正されるものではないが、2014年4月に5%から8%に改正された。また、2015年10月から10%を適用することが現在検討されている。

それを実現しているのが、継続的インテグレーション(CI)と呼ばれるプラクティスだ。ソフトウェア開発において、ビルドとテストを継続的におこない、品質がしっかりと保証されたソフトウェアをいち早く市場に投入する一連の開発作業のことを指す。すべては刻々と変わる顧客への要求に応えるためだ。CIを実践する場合、ツールを利用することによりテストや、デプロイは出来る限り自動化してしまうことが多い。

最近のウェブサービスでは一日に何度も新機能がリリースされることは珍しくはないが、それはCI用のツールが十分に発達したおかげであるとも言える。

会計freeeの場合、「会計ソフトウェアを手掛けることもあり、プロトタイプの段階からビジネスロジックを確認するための、ユニットテストにはとても力をいれた」(横路氏)と語るように、開発当初からRSpecを使いテストの効率化に取り組んできた。またそれと同時にサービスリリースまでの時間を短縮することを目的としてJenkinsやCapistranoを使いデプロイの自動化をおこなっている。

システムが肥大していくことによる障害とその対策

当初は3人で開発を始めた会計freeeであったが、サービスが拡大するにともない、開発する人員もRailsアプリケーションも肥大化していった。そうなると1回にコミットする量も多くなってくる、その結果フィーチャーブランチの衝突やテストの遅延が目立つようになってきた。

テストの遅延や手戻りが発生することは開発者にとってはあまり良いことではない。サービスリリースという目標に対し、面倒な作業だという思いから、心理的な壁が形成されてしまうからだ。最終的には継続的インテグレーションの実践が難しくなり顧客に価値を届けることができなくなってしまう。

会計freeeはRailsアプリケーションを分割することをその解決方法に選んだ。給料計算機能を提供する給料計算freeeの開発構想が持ち上がり、その際にいくつかのモジュールを別のRailsアプリケーションとして稼働させることを決定する。

具体的な例として、会計freeeは当初アプリケーション内でdeviseを使い認証機能を提供していたが、給料計算freeeとの連動や肥大化解消のため、認証機能と課金機能モジュールについては分離して別アプリケーションとして現在稼働させている。それぞれのアプリケーションはHTTP通信での内部APIを介し情報を伝達している。

その結果、アプリケーション別にテストを実行させることが可能になりテスト時間の短縮につながった。また1つの巨大なRailsアプリからAPIを中心としたアーキテクチャーに変更することにより、将来のアプリケーション拡張や開発チーム編成に柔軟に対応できる形に生まれ変わった。

キャズムを超える。すべてのスモールオフィスのプラットフォームに会計freee

会計freeeを提供するfreee株式会社によると2014年7月6日、導入数が10万事業所を突破した。

顧客のフィードバックを反映しながら発展してきた会計freeeはそのフェーズ毎に開発時の課題は変化してきた。試作段階であれば、アーリーアダプター向けにスピード感を重視したサービスのリリース、また会計freeeにとって初めての確定申告を迎えたあとはUI/UXエンジニアを採用しアーリーアダプター以降のユーザーにもサービスを受け入れてもらえるようユーザーインターフェースの改善に力を入れた。

今後の経営目標として、正式リリースから5年以内に100万ユーザー獲得を掲げる。その為には、会計ソフトを既に広く活用しているユーザーも取り込んでいく必要があるだろう。先述した給料計算freeeや、またユーザーのビジネスドメイン毎に応じて最適化された会計freeeのシステム提供なども計画中であるという。キャズムを超えてさらに発展する会計freeeの動向に注目したい。

参考写真

freee01 free02

※本事例に記載の内容は2014年9月取材日時点のものであり、現在変更されている可能性があります。