Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
39
Help us understand the problem. What are the problem?

posted at

updated at

Laravel製のオープンソースWebデータベースを開発した話

【追記】続編書きました

この記事を書いてからおよそ1年経過しましたので、続編を書きました。こちらでは、よりビジネス・戦略・今後のビジョンの話も記載しています。
https://qiita.com/hirossyi73/items/00cfedf2d7cc6329fe5c

はじめに

この記事ではこんなことを書いていきます。ポエムです。

  • Laravel製国産オープンソースWebデータベース「Exment」について
  • 機能紹介
  • このソリューションが生まれた背景
  • オープンソースとして公開することによるメリット
  • まとめ

自社開発パッケージを開発し、オープンソースとして公開した経緯や、オープンソースとして公開したことによるメリット、今後の展望などをまとめていきます。

この記事のターゲット

  • Webデータベースを探している方
  • 自社開発パッケージのオープンソースに興味がある方(特に、オープンソース提供によるビジネス化を検討されている方)
  • Laravelベースのソリューションに興味がある方
  • などなど!

オープンソースWebデータベース「Exment」について

2019年1月に、オープンソースのWebデータベース、「Exment」を公開しました。

exment_logo_side.png

言語はPHP、フレームワークはLaravel5.6を採用しています。
データベースはMySQL(将来的にOracleやSQL Serverなどに拡張予定)。
ライセンスはGPL3.0になっています。

GitHub:Exment
公式サイト
マニュアル

2019年1月にv1.0.0をリリースし、2019年11月にv3.0.0として、ワークフロー機能を追加しました。

機能紹介

そもそもWebデータベースとは何かというと、「Web上で情報管理を行うシステム」です。
Webサイト上でデータを入力し、データの一覧を表示する。データの検索を行う。データを共有する。
ExcelやGoogleスプレッドシートではどうしても難しい、Webシステムならではの機能を、多数搭載しています。

※登録データ一覧表示
exment_list.gif

※データ検索
exment_search.gif

※データ新規作成
exment_save.gif

管理する項目は、画面上でノンプログラミングで、自由に設定できます。例えば「顧客情報」、「契約管理」、「タスク管理」など、さまざまな用途で活用できます。

データ管理機能に必要な機能を豊富に取り揃えています。以下、その一例になります。

  • Webデータベース定義変更
  • データ一覧表示
  • データ追加・編集・表示
  • データの一括取込・出力
  • ドキュメント出力
  • ダッシュボード
  • テンプレート
  • 権限管理
  • 独自プラグイン追加
  • 独自ドキュメントフォーマット追加
  • Webデータベーステンプレート管理
  • 通知処理
  • データ複製
  • 自動採番
  • 画面での値計算
  • データやシステムのバックアップ・リストア
  • ログイン方法の変更(Googleアカウント、Office365アカウント・・・)
  • API連携
  • データビューの並べ順設定
  • ワークフロー

一から作ったら大変な工数がかかる機能も、Exmentでは標準機能として揃えています。
実際にExmentを触ってみたい、という方は、是非こちらのデモサイト、もしくはインストール手順をご確認ください。

このソリューションが生まれた背景

ここから、Exmentが生まれた背景について、少しご紹介します。
「こんな製品、なんで生まれたの?」という質問をいただくことも多いので、せっかくなので話半分に聞いてください。

Excel台帳管理の限界

2018年初旬。当時自分がフリーランスとして常駐していた、株式会社エクシード・ワン​では、顧客情報や製品情報、自社がお客様と結んだ契約情報を、すべて「Microsoft Excel」のシートを台帳として、管理していました。

sheet

ですが、このExcelファイルでの管理方法では、以下のようないろいろな問題が発生しました。

担当者の増員による問題

1人の管理から複数人の管理によって、データがどんどんぐちゃぐちゃになる問題が発生します。
例として、

  • 金額の列に人の名前が入っている
  • 会社コードを入れる列に、会社名が入っている

など。結果集計が出来ず、後から手直しする羽目になりました。

入力したデータを活かせない

例として、シート「契約情報」の行「契約期限日」の列に期限日を入れても、毎日誰かがそのExcelファイルを見に行かなければ、期限直直前なのか分からず、結局期限日が過ぎていた……というケースが頻発していました。
データとして保持していても、そのデータを活かすことがなかなか難しかったのです。

類似ファイルが複数乱立する

Excelファイルでデータ管理を行う場合、なぜかファイルがコピー・ペーストでどんどん作成されることはよくあります。

  • 顧客情報.xlsx
  • 顧客情報_最新.xlsx
  • 顧客情報_佐藤記入.xlsx
  • 顧客情報_佐藤記入2.xlsx
  • 顧客情報_鈴木記入_20191119.xlsx

など。よくある話ですね。
結局、どれが最新か分からないという事態は、すごくよく起きます。

既存システム導入の検討と断念

そんな状態から、既存システムの導入を検討することにしました。
今現在でも、非常に有名で優れたSaaSのシステムは、世間に浸透しております。それらのサービスは、シェアもサポートも、信頼性も絶大です。
一方で、初期導入時のコスト・手間や、年間のランニングコストも非常に多くかかり、導入を断念、または数年で終了してしまうケースが多いことも、導入した企業の感想を聞くにつれ、分かってきました。
長期間での運用を考えたときに、費用の問題は必ず直面します。エクシード・ワン​でも、費用の問題で断念することになりました。

オープンソースのWebデータベース開発の誕生

その後、様々なシステムを検討していくにつれて、
「他の企業も同様の問題で悩んでいるのではないか」
ということに気付きます。
Excelのようなスプレッドシートの管理だと、情報を活かしきれない。かといって既存のシステムだと、高価で手を出せない・・・という問題です。

その考えは的中し、取引先の企業にヒアリングを行った結果、特に中小企業で、情報管理で同じような悩みを持っていることを知りました。

通常のSaaSサービスだと手は出せない。しかしExcel管理だと限界がある。ならばオープンソースで作ろう。
そのようなきっかけで、オープンソースのWebデータベース、Exmentが生まれることになります。

現在世の中でははSaaSやクラウドサービス全盛期で、今後も更に伸びていくと思います。
ですが、情報管理システムに関しては、オンプレ製品の需要はまだまだ大きいと感じます。
クラウドにアップロードできない機密情報を取り扱う企業、社風でクラウドNGの企業。そのような企業は、日本では特に多いので、ユーザーが各自インストールする形式のWebシステムも、ニーズは大きいと判断しました。

2018年3月に開発着手を始め、2019年1月に正式版リリース。
また同じタイミングで、株式会社エクシード・ワンの子会社として、「株式会社カジトリ」という会社を設立し、私が代表になって日々奔走しています。

ちなみに「カジトリ」という名前は、「時代も、IT業界も、舵をとっていく」という想いを込めて名付けています。
「Exment」という名前は、「Exceed Management」、「より高度な情報管理」という単語から来ています。

オープンソースとして公開することによるメリット

ここからは、Exmentをオープンソース化することで学んだ、「自社製品をオープンソースとして公開することによるメリット」について、記載していきます。

オープンソースというだけで、競合との差別化に繋がる

「情報管理システム」というのは、ニーズも市場も非常に大きいです。
しかし正直言ってしまいますと、市場はかなり成熟してますし、競合の製品も多数あります。

ですが、オープンソースというだけで、競合との差別化に繋がります。
無料であること、手軽に試しやすいこと。このことから、競合との強力な差別化に繋がります。

一般的なソフトウェアですと、「せっかく作ったのに、誰からも使ってもらえない」というケースも、残念ながら非常に多いです。私自身も前職で、そのようなソフトウェアを開発したことがあります。
ですがオープンソースの場合、ユーザーに使用してもらいやすいので、そういった状況にはなりにくいメリットがあります。

ご要望をいただきやすいので、ソフトウェアの成熟が早い

前述の通り、オープンソースで公開した場合、ユーザーに使用してもらいやすいソフトウェアになります。
その結果、ご要望やフィードバック、不具合のご報告を非常に頂きやすいです。 ここ最近、GitHubのissueには毎日、書き込みをいただいております。

使用しているユーザーが、どんな要望を持っているのか?
そんなご要望をお伺いし、機能追加を繰り返すことで、非常に早い速度で、ソフトウェアの成熟に繋がっています。

当初の想定とは、別のニーズが見えてきた

当初このExmentでは、100%「業務管理システム」として開発をしていました。
しかし、「オープンソースとして、事務の方などにインストールしてもらう」という導入方式だと、どうしても難易度は高く、IT管理者が不在の企業さんの場合、ハードルが高くなりがち・・・というのが、正直な現状です。

しかし、オープンソースとして公開し、様々な方に使用していただくことで、「開発ソリューション」という、当初の予定には無かったニーズが見えてくることになります。

具体的にお話します。
新しくサイトを作る場合、「一般ユーザー向けサイト」「管理サイト」の2つを作るケースはよくあります。
例として、お問い合わせ管理サイトを構築する場合、

  • 未ログインの一般ユーザーが、サイトで問い合わせを登録
  • 管理者が管理サイトで、問い合わせ内容の管理

という、2つのサイトを作る必要があります。

image.png

しかし、管理サイトにExmentを採用することで、管理サイトに必要な機能の95%は、標準機能で実装されています。
そのため開発者は、一般ユーザー向けサイトのみ構築することができるので、大幅な工数削減に繋がります。

image.png

※ちなみに、標準機能に足りない機能があった場合でも、「プラグイン」を導入することで、機能拡張が可能です。

このようなニーズは、当初の想定にはありませんでした。
しかし実際には、このような「開発ソリューション」としてのポテンシャルを知ることになり、ここ最近の機能追加では、そのニーズ向けの機能も少しずつ増やしています。

また私達も、受注開発の提案を行う際には、このExmentをベースとしたご提案をさせていただくことも多いです。
「工数が大きく削減できること」、「実際にプロダクトはあるのでイメージがしやすいこと」から、評判は上々です。

・・・長くなりましたが、様々な方にご利用いただくことによって、このように当初の予定にはなかったニーズが広がることも、オープンソースの大きなメリットではないでしょうか。
通常のクローズドなソフトウェアですと、このような別のニーズに気付くことは、もしかしたら難しいかもしれません。

まとめ

以上、Laravel製オープンソースWebデータベース「Exment」や、オープンソースのメリットについて、お話させていただきました。
本当は、Qiitaらしく「オープンソースにLaravelを採用するメリット・デメリット」や、「オープンソースのマネタイズについて」なども書こうと思っていたのですが、長くなりそうなので、それはまた別の機会にしたいと思います。

最後になりますが、
私もこのExmentも、様々な方に支えられて、今があります。
リリース当初で、まだまだ未熟ながらも導入してくださった会社様、
日々不具合報告や機能のご提案をいただいている皆様、
開発やテストの力を貸してくれるメンバー、
さまざまなお力とご協力があって、今があります。私だけの力では、決してありません。

2019年1月にリリースした当初より、はるかに多くの方にご利用いただいており、私自身も非常に嬉しく思います。
私は将来、このExmentがWordPressのように、世界中で使われるシステムになると、本気で信じて開発しています。
少しでも興味を持った方、「国産オープンソースソフトウェアを応援したい!」という心優しい方、是非GitHubのスターをお願いします!何よりも力になります。

✪GitHub:Exment

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
39
Help us understand the problem. What are the problem?