JSP_Blog

ジェイエスピー社員が綴る日替わりブログ

ローコード開発基盤の課題

2021-04-26 09:00:00 | 日記
このコロナ禍において在宅ワークでの比重が高まり、IT人材不足も相まって、ローコード・ノーコードによるシステム開発が殊更脚光を浴びています。
WEBサイト・チャットボット・モバイルアプリ・データベースなどを、WEB上で開発できるものです。
メリット・デメリットは他のサイトで解説されています。
ここでは、企業の基幹システムのような大規模なアプリもローコード基盤を使って開発しようとしたとき、今世にあるサービスでは不足しているであろう機能について、独自の視点で調査した14の課題をお伝えしようと思います。
すべてのアプリやサービスが抱えている課題ではないですが、すべての課題を解決できているサービスもないかと思われます。
では参りましょう。

【デプロイしづらい】
自動でコードが生成されるタイプのアプリは、自動でデプロイされず、自分でサーバーにアクセスして自動生成されたバイナリをアップロードしないといけない場合があります。
スクラッチで開発するのと同じような手順を踏む必要があり、開発者の手間を省けず、本番移行ミスを防ぐことができません。
ローコード開発基盤では、デプロイまできちんと自動でやってもらいたいです。
当然デプロイ日時を自動で記録し、後で問題が発覚したときに、いつ誰が作業したかを追えるようになっていればいいと思います。

【システム変更しづらい】
重要なシステムは、最低でも開発環境・検証環境・本番環境と、システムの実行環境を分離します。
ローコード開発基盤では、このように環境を分けて簡単に移行する機能がないものがあります。
最初は開発環境でコーディングを行い、本番で運用可能かと思われるほど試験が済んだら、本番に近いデータで本番さながらの試験のために検証環境に移行し、それでも問題なければ、ようやく検証環境から本番環境へプログラムを移行します。
場合によっては、マスタ等データベースのデータも移行します。
逆に、各環境で問題が発覚した際に、本番環境から検証環境へプログラムを移行し、検証環境で再現性を確かめる、などといったこともします。
こういった環境別の管理、環境間のプログラム移行・データ移行まで手間なくでき、その履歴もきちんと管理する基盤が必要です。
環境移行がしづらいので、それが変更のしづらさ、試験のしづらさにつながると思います。

【影響範囲を特定しづらい】
「変更しづらい」とも関連します。
通常は何か既存システムに手を加えようとする際、エンジニアは設計書やソースコードを見て影響範囲を検討し、工数を見積もります。
設計書やソースコードは、各々を容易に全文検索できますので、ある変数を使っているソースはどこかなど、影響範囲を調べやすいです。
一方、ローコード基盤でも、パーツを使いまわすことができる機能があるのですが、それがどこで使われているかを簡単に表示してくれる機能がなかったりします。
そうすると影響範囲を特定しづらく、思わぬところで予期しない動作をさせてしまうことになります。
すべてのパーツが、どこで使われているかを容易に特定できる機能が必要です。
また変更した際には、だれがいつ何を変更したか自動で履歴を取り、後で検索できるようになっていればいいですね。

【見た目が古い】
例えばWEBアプリであると、ここ数年で見た目の良さが飛躍的に向上しています。
メニュー表示、ボタンのクリック、選択肢、メッセージの表示、画面遷移のアニメーションなど、商用無料で各コンポーネントを提供してくださっている開発者の皆様のおかげで、時間をかけずにスタイリッシュなシステムにしてくれます。
一方、昔ながらの今ではやぼったい見た目のパーツしか提供してくれないローコード開発基盤も多いようです。
パーツは日々進化していますが、一度基盤として取り込んだり、すでに本番で運用している中では、なかなか最新化しづらいのだと思います。

【操作の履歴が取られない】
上記まででも履歴の話をしましたが、とにかく何か1つでも操作したことは履歴に残し、あとで検索できなくてはなりません。
問題があったときに原因を追究するためです。
デプロイ・環境移行・システム変更の他、作ったシステムを利用するときにデータの登録・変更・削除の履歴も自動で取ってもらう必要があります。
変更であれば、変更前データを残しておく必要あるでしょう。

【他システム連携ができない】
結構これは致命的です。
自社で管理する既存システムと連携させないと、同じデータを何度も入力しなくてはならず、折角ローコード基盤で短期間に開発しても、ユーザーの手間がかかるようでは本末転倒です。
昔は(今でも?)FTPやファイル共有でのデータ連携をしていましたが、今はREST API(もやや古い)や、GraphQL・gRPCでの連携が普通になってきています。
ただデータ連携がローコードでできるだけでなく、これもやはり送受信の履歴管理が標準である必要があります。
カードリーダ―、RFIDリーダーなど、機器と直接連携することもできればより使い勝手がよくなると思います。

【バッチ処理機能がない】
どうしてもユーザーの入力の都度データを更新するのでは非効率な業務処理ってあると思います。
ユーザーが使わない夜間などで、いっきに大量のデータを加工する、再計算する場合も、ローコード基盤でサポートしてほしいです。
複雑なバッチ処理なんか世にザラにあり、欲をいうと色々処理できてほしいですが、さすがにローコード基盤では実現しづらいかもしれません....
ですが、可能な範囲で、毎晩とか毎月〇営業日とかに、これとこれとこの処理を順に実行しておいてね、と指示できる機能があってほしいところです。

【日本語でしか表示されない】
言わずもがなです。
基盤であれば、画面のタイトル・入力項目・メッセージは、日本語以外でも対応していてほしいです。
ただし、基盤で開発する際に、言語ごとに文字を設定しないといけないので、少し手間ではありますが。
入力した文字は.....さすがに特定の言語になってしまうかもですが、それも高速に自動翻訳されれば最高ですね。

【応答性能が悪い】
ローコード基盤の仕組みによっては、応答が悪くなることも多いと思います。
クラウドであれば、システム間でリソースを共有するような仕組みになっている場合とか。
データベースのインデックスを容易に追加できないとか。(「CREATE INDEX」SQLを自前で打たないとだめとか)
基盤自体がコンパイル不要なスクリプト言語で構築されているとか。
自動生成されるソースがやたら冗長とか。
プログラムファイルサイズが大きく、初期ダウンロードに時間がかかるとか。
通信量が冗長で重いとか。
キャッシュが効かない設計になっているとか。
バックでマイクロサービスを使いまくっているとか。(うまく負荷分散できていないとか)
色々ケースが考えられます。

【モバイル端末に対応していない】
入力はパソコンで、表示はスマホやタブレットといったモバイルで、というように使うビジネスマンも多いでしょう。
やはりパソコンとは画面サイズが異なるので、基盤で工夫が必要となります。
ですが、今やモバイル端末はなくてはならないものですので、当然のように対応してほしいところです。

【帳票出力機能がない】
日本の商習慣では、まだ帳票出力をなくすのは難しいようです。
とはいえ、Excelをアップロードするとそのフォーマットに従って帳票を生成するなど、サポートしているローコード基盤も見受けられます。

【クラウドまたはローカル環境でしか利用できない】
クラウドでの運用は、セキュリティが心配....
ローカルでの運用は、インフラ運用費など費用がかさむ....
一長一短ですが、両方で使えるサービスであればいいですね。
サービス提供側の費用の徴収方法は、ビジネスモデルとしてよく練っておく必要がありそうです。

【SSO(シングルサインオン)に対応していない】
一度WindowsなどのOSや、Googleなどにログインしていれば、自動でシステムにもログインできるという機能です。
他の課題と比べるとやや優先度を落としてもいいかもですが、なるべくあってほしいです。

【ワークフロー開発の支援機能がない】
申請・承認・差し戻しのアレです。
わざわざワークフロー開発の支援機能がなくても、標準のローコード基盤機能でワークフローを開発できるかもしれません。
ですが、複数人の承認がないと決裁されないとか、金額がいくつまではこの役職の人でも決裁までできるとか、それらを基盤で一生懸命開発するのは、結構手間な気がします。
少し設定するだけでよくあるワークフローを構築できる機能が備わっていれば、非常に便利です。

----
思いついた課題は以上ですが、他にもありますかね。
思ったように検索機能を作れないだとか、検索条件を保存できないとか、一度登録したデータを引用しての再登録はできないとか、CSVによる一括ダウンロード・アップロードができないとか、入力チェック結果が入力した全データを一度サーバーに送信しないとわからないとか、入力説明表示機能がないとか、項目を入力しさえすれば自動で画面パーツを配置してくれる機能がないとか、そのような基本的な機能が不足する基盤もあるかもしれません。

しかし、強度のエンジニアでなくても開発できるのがローコード基盤のメリットであるとするなら、あまり色んなことができるようにすると、シンプルさがなくなり、基盤操作の学習で時間が取られたり、やっぱり強度のエンジニアでないと開発できなくなる基盤ができてしまうかもしれません。
まさにUIや機能のバランスが難しいところです。

ちなみに、これらの課題をひとまず技術的に解決する方法について、私は概ね想定があります。
この課題はこの技術を使ってこういうふうに基盤を作れば解決できそう、みたいな。(ワークフローは...力技かな...)
細々とライフワークとして開発しているのですが、陽の目を見る日は.....

ということで、これらすべてを解決した基幹システム開発にも耐えられる(かもしれない)ローコード基盤を一緒に作りませんか!?
(酒)

シンプル入退室管理
  限りなくシンプルなタイムカードシステム

WhitePlug
  手のひらサイズのLinuxサーバ

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

moni-stock
  一括スキャンで入出庫・棚卸作業にかかる時間を短縮
  お客様も現場も笑顔にする在庫管理システム

Smart mat
  重さセンサIoTで在庫管理に革新を。
  自動発注&メールアラートで欠品・発注ミスを防ぎます

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(moniシリーズ)、それに農業も手がけるIT企業

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 捨てられないもの | トップ | 1ヶ月前のこと »
最新の画像もっと見る

コメントを投稿

日記」カテゴリの最新記事