カミナシ・ソフトウェアエンジニアの @Taku です。
先日行われた Sansan株式会社様主催の BtoB SaaSにおける技術課題との向き合い方 にて「デスクレスSaaSが向き合う、現場DXのための技術課題」というタイトルで発表してきました。
登壇概要
カミナシでは日本の就業人口の約60%を占める「ノンデスクワーカーの才能を解き放つ」をMissonに、現場のDXに取り組んでいます。 デスクレスSaaSという日本ではまだあまり例のないサービスのため、特有の技術課題がありました。 そのような技術課題にどう向き合っているのか、約2年半の間に急成長していく中で直面した課題を含め、お話しさせていただきます。
「カミナシ」のサービス説明
「カミナシ」はノンデスクワーカー向けのノーコードツールです。
従来「紙」で記載していたチェックリスト(ワークフロー)をデジタル化する現場管理アプリをノーコードで作成することができます。
現場DXプラットフォームのサービス特性
ノンデスクワーカー向けの SaaS と特性して、例として以下のような特性があります。
1つ目は、カミナシはホリゾンタル SaaS として、30を超えるさまざまな業界の企業で利用されています。
業界が違えば記録する内容は様々なため、それぞれが求める多様な形式を表現する必要があります。
2つ目は、毎日の業務フローに組み込まれるため、日々大量のレポートが作成=データがどんどん増えて行きます。
3つ目が他の Web サービスにあまりない特徴と思うのですが、Wifi が届かないところで利用されることがあるため、サーバーとの通信がない状態でも記録できるようにする仕組みが必要になります。
カミナシならではの技術課題
サービス特性を技術課題に置き換えると、以下のようになります。
様々な業界の記録(帳票)に対応する
ホリゾンタル SaaS として、様々な業界の記録(帳票)に対応するために、ノーコードでパーツを組み合わせて柔軟な帳票を作成できるようになっています。
柔軟な変更を可能にするために、カミナシのデータ構造は木構造になっており、多くの関連テーブルを有しております。
結果として、大量のテーブルが必要となっており、現状エンジニアの認知負荷となっております。
こちらは見直しを検討しているのですが、まだ対応できるレベルであり現在は他の機能追加などを優先しているため未着手で、今後の課題としております。
増え続けるデータへの対応
柔軟性を持たせるため、1つのレポートに関連するデータがどうしても多くなってしまってます。
DB全体のデータが多くなるにつれ、表示速度の問題が出るようになりましたので、現在はGoルーチンを利用して関連データを並行して取得するようにしております。
こちらも、アプリケーションの修正でなんとかなるレベルですので、DB構造の抜本的な見直しはまだ行っておりません。 今後、さらにアプリケーションやデータ量が大きくなるタイミングで全体的な改修を行いたいと考えております。
詳しい対応については過去のブログ記事で書いておりますので、よければそちらも参考にしていただけると幸いです。
kaminashi-developer.hatenablog.jp
Wifiなしでの記録を実現する
最後に Wifi なしでの記録を実現する方法ですが、Wifi がない場所でデータをサーバーにアップロードしようとすると、端末にデータが保存される機能を作成しました。
機能の実現には SQLite を利用しており、端末に保存した SQLite ファイルをサーバーにアップし、登録するようにしております。
こちらも詳しくは過去のブログに記載がありますので、そちらを参照いただけますと幸いです。
kaminashi-developer.hatenablog.jp
まとめ
カミナシ の技術課題への対応をまとめると以下です。
- 様々な業界の記録(帳票)に対応する → 木構造でユーザーによる柔軟なアプリ作成
- 増え続けるデータへの対応する → Goルーチンを利用した並行処理
- Wifiなしでの記録を実現する → SQLite を利用して端末にデータ保存
今回お話しできた技術課題はほんの一例で、カミナシにはまだまださまざまな面白い技術課題があります。
→これらにはすでに解けているもの、まだ解けてないものがあります。
もしこれらが面白いな、と感じる人がいらっしゃいましたら、ぜひ一度お話しさせていただけると幸いです。
カミナシのエンジニアポジションについては以下、Entrance Book にも記載がありますので、ご興味あればご覧ください。
noiseless-fold-f68.notion.site
終わりに
今回の登壇に参加させていただいた事で、カミナシのサービス特性や利用シーン、過去の対応について改めて確認する良い機会となりました。
主催してくださった Sansan株式会社様には、この場を借りてお礼申し上げたいと思います。
最後に宣伝になりますが、カミナシでは、ソフトウェアエンジニア(フロントエンド、バックエンド、セキュリティ、デザインシステム領域のフロントエンド)、エンジニアリングマネージャーと幅広く募集しております!
少しでも興味を持っていただいた方からのご応募お待ちしております!