Billys | シンプル操作で請求書作成・管理
ブラウザで見積書、発注請書、請求書、納品書の作成から保管ができるクラウドサービスです。インボイス制度や電子帳簿保存法も対応済みなので、安心してご利用いただけます。
https://billys.cloud/
こんにちは!leaf です!
今回は5月26日にベータ版をリリースしたクラウド請求書管理システム「Billys」について、エンジニアとディレクターの皆さんにお集まりいただき、振り返ってみました!
後列:左からディレクターの tsukumo さん、jeje さん、himmel さん
前列:左からエンジニアの yucurry さん、enotiru さん、nasikusa さん
もともと社内の見積書や請求書は Excel で管理していましたが、メンバー増加に伴いフォーマットの乱れやステータス管理が属人的になるという課題が浮き彫りになり、受託開発の合間を活用してシステム化できないかといった話がでたのがきっかけです。
立ち上げ当初からサービス化も見据えており、誰でもすぐに使えて必要な機能だけに抑えた安価なサービスをコンセプトとしてスタートしました。
受託開発の傍らで開発するため安定したリソース確保が難しいのですが、かと言って無計画ではいけないので、エンジニアに必要以上の負荷がかからないよう配慮をしつつ、短期的な目標を立てながらコツコツと進行していました。
その分開発が長期化したこともあり、機能開発以外にもインボイス制度や電子帳簿保存法における電子データ保存の義務化など法令にあわせた改修も必要になったので、計画にはより柔軟性が求められました。
Billys では以下の技術アセットを使用してます。
言語・ランタイム:Golang、JavaScript、Bun
フレームワーク:Echo、Vue.js、TailwindCSS
Web サーバー:nginx
データベース:PostgreSQL
NoSQL:Valkey
開発環境:Docker
本番環境:AWS(Lightsail、S3、SES)
開発ツール:Terraform、GitLab
コミュニケーション・プロジェクト管理ツール:Slack、Backlog
フロントでは、シングルページアプリケーション(SPA)に向いている Vue.js と、複数人で開発する際、コードが属人的になりづらい TailwindCSS 採用しています。
また、プロトタイプが Bootstrap で組まれていたこともあり、移行のしやすさもメリットでした。
TailwindCSS に慣れるまで時間がかかりましたが、クラスの入れ子が多重化しづらかったり、クラスの命名ルールなどもほとんど考える必要がなく、コードレビューの負担軽減にもつながったので、導入した価値はあったと思います。
開発言語は、文法がシンプルで将来的に大規模なサービスになっても比較的高速に処理できることを期待して Golang を採用しました。
開発環境の整備には、インフラ構成をコードで管理できる Terraform を導入し、構成の再現性を高めることでチーム間での共有や管理を容易にしています。
また、サービス環境には、スモールスタートとコストバランスを考慮し Lightsail を採用しました。
フロントエンドとしては、TailwindCSS では、コンポーネントを分割して再利用がしやすくなるよう意識しています。
また、ユーティリティクラスを活用することで、デザインの一貫性を担保できたと思います。
バックエンドでは、不具合に関してすべて人力で取りまとめるのも積み重なるとコストが肥大するので、「"龍が如く"の高速デバッグ術」を参考にエラー発生時に Backlog に自動起票する仕組みを作りました。付随して、ログ出力にも力を入れています。
その他、受託案件で培ったノウハウも至るところに活かされています。
仕様面での工夫として、最終的に書類の PDF データをサーバーに保管していますが、ランニングコストを考慮し、未承認の書類は都度フロントで生成する設計にしてデータ容量の削減に努めています。
電子帳簿保存法対応の一環として、更新した書類の差分比較についてライブラリを駆使して実装まで進めてましたが、実際に動かしてみないと気づけない点が多く、試行錯誤の結果、最終的に実現したい要件が満たせないため断念しました。
受託開発で実装都合で機能を削る際は、クライアントへの説明や予算調整なども必要になるため、自社開発だからこそ負担なく決断できました。
一般的にはリリース日を先に決めて開発を進めることが多いですが、受託案件の影響で状況が日々変わる中、現実的な工数に応じて柔軟に見直しながらリリース日を設定する進行は新鮮でした。
当初はエンジニアリーダーとして参画していましたが、プロジェクト後半からマネージメント業務も経験させてもらいました。
実際にやってみると、手一杯になり、すぐに対応できると思って引き受けたタスクに手が回らず、結果的にスケジュール遅延を招いたため、関係者には大変迷惑をかけてしまいましたが、自社開発だからこそこういった挑戦もさせていただけたのかと思っています。
今はまだ未熟ですが、少しずつ成長して責任を担える存在になりたいです!
Billys は、初見でも迷わないようシンプルで使いやすいところにこだわりました。これまで見積書などに関わる機会があまりなかったのですが、実際に作成してみて、あまりにも簡単にできて驚いた記憶があります。
もし請求書管理システムの導入を検討しているが、十分に活かせるか不安だという方にはピッタリだと思いますので、ぜひ Billys に触れてみてほしいです。
いかがでしたでしょうか。
ムーブでの自社開発は、受託案件で培ったノウハウを活かしながら、メンバーが自由に技術選定して開発を行っています。
積極的に新しい技術を使うことでスキルアップにも繋がり、受託案件にも還元できるのではないでしょうか。
私も業務で利用していますが、シンプルで直感的な操作性のおかげで作業効率の向上にもつながっています。
初めて使った時から迷うことがほとんどなく、改修を重ねるごとにさらに使いやすくなっていることを実感しています!
※打ち上げの様子です!
ムーブでは今後も新たなサービスを生み出していく予定です。
受託開発をメインとしながら自社開発にもチャレンジしたい方、ぜひご応募お待ちしてます!