昨今、システム内製化の手段として、プログラミングが出来なくてもアプリ開発などが可能なローコード・ノーコード開発が注目されています。しかし実情として、ローコード・ノーコード開発が一概にすべての内製開発にマッチするとは言えない現実があります。実際に、現場でローコード開発ツールを導入しているエンジニアに、注意点やメリットデメリットなど聞いてみました。
ローコード・ノーコード開発とはプログラミング言語を使用しない新しい開発手法
プログラム開発言語を使ったコーディングを全く、あるいはほとんどすること無くソフトウェアやアプリ開発することです。ゼロからプログラミングを行うことはせず、ビジュアル操作(ドラッグ&ドロップ)、または少ないソースコードで開発を行います。
昨今ではスマホアプリ、WEBサイト、ECサイト、業務用アプリケーションなどそれぞれに特化したサービス、ツールが生まれています。
作りたいアプリケーションに適したサービスやツールを選ぶことで開発コストを大幅に抑えることが可能となります。
【ポイント1】ローコード・ノーコード開発ツール導入には事前の精査が必要
Q,ローコード・ノーコード開発ツール導入の時のポイントは何だと思いますか?
導入したいツールが作りたいシステムやプロジェクトに対して適切かどうかをしっかりと検討することだと思います。ローコード・ノーコード開発ツールが、基本的にスクラッチ開発に比べて自由度と拡張性が低く決まりごとや制約も多いため、作りたいシステムが作れない可能性もあります。
また、作りたいシステムを100%事前に要件定義することは難しいと思います。作りながらプロトタイプをシステムユーザーに診てもらい、改善していくことで本当に必要なシステムが生まれます。
この柔軟性とレスポンスの早さがシステム内製のメリットです。
そんなシステム内製のノウハウを持ったメンバーがツール導入を検討、推進することで、ローコード・ノーコード開発ツールを使いこなせるのではないかと考えています。
そのため、今までアウトソースしていたシステム開発をいきなりすべてツールで開発しようというのは失敗しやすいのかなと感じます。
Q,実際にS.A氏の現場で導入したローコード開発ツールはどのようなツールですか?また、導入したきっかけを教えて下さい。
現在の現場で使用しているツールは、ローコードのPEGAというツールです。
PEGAはBPM(Business Process Management)の仕組みを作るための強みを持っています。例えば私が稟議などを申請をして、上長が承認するといったワークフローをツールで作ることができます。
導入のきっかけは、基幹システムの刷新でした。基幹システムの刷新にあたり、各システムでバラバラであった使用技術を統一しようということになりました。
各システム毎に技術が変わると、前任者の使用している言語がわからないために改修できない、調査に時間がかかってしまうといったことが発生してしまいます。
そういった事象を減らすために、基幹システムの刷新にあわせローコード開発ツールに技術統一していくことになりました。
【ポイント2】ローコード・ノーコード開発ツールは社内システムの内製化向き
Q,ローコード開発ツールどのような場面で活躍しますか?
例えば社内で複数システムがある場合、ローコード開発ツールの導入で複数に分かれていたシステムを共通化することができるので、UIやシステムの見た目の部分、使用感や使い方は統一され、社内の誰でも使いやすいシステムが作りやすいと思います。
もう一点が、エンジニアのスキルセットに依存しないので、属人的な開発が排除されて技術者が抜けた時に開発内容がブラックボックス化しないといった点が内製化に向いていると思います。
Q,ローコード開発とフルスクラッチ開発の違いはどのような部分だと思いますか?
ローコード開発ツールは気軽に取り入れられますが、UIやUX周りを細かく設定・変更することが難しいので、対外的なサービスとして利用してもらい収益が発生するようなシステムの場合はユーザーの心の機微に刺さるような設定や変更はできないです。
社内で使用するようなシステムであればUI/UX等にこだわりは少なく導入ハードルも低いため、社内向けのシステムはローコード・ノーコード開発ツールで開発を行い、対外的なサービスを作る場合はスクラッチ開発のほうが適していると思います。
Q,ローコード・ノーコード開発導入で失敗するだろうと思えるケースはどのような場合だと想定されますか?
プロジェクトの目的や企業の果たしたい目的は何かという部分を明確にせずに、ローコード開発ツールの導入をしてしまうケースですかね。
ツールを導入しただけでコストが下がる、といった簡単なことではないと思います。
何度も繰り返しになってしまいますが、プロジェクトの目的やツール導入によって何を実現したいのか、そこにローコード開発ツールが適しているのかという部分を見極めなければ、結局作り直しによる無駄なコストが発生してしまい失敗してしまうのではないかと思います。
【ポイント3】ローコード開発ツールを使いこなすポイント
Q,どのようなシステムがローコードでの開発に向いていると思いますか?
社内向けのシステムで、業務パターンが整理されているものはローコード開発に向いてると思います。業務の棚卸と業務の流れがしっかりと固まっていれば、ローコードツールでできることに当てはめて実現可能かどうかの判断がしやすいと思います。
Q,ローコード・ノーコード開発ツールを導入する際に、最低限必要なスキルはどのようなものでしょうか?
・業務設計力
どんな業務がシステム化の対象か、その業務がこのツールでシステム化できるかを判断するため。
・DB知識
導入時でなくローコード開発ツールでのシステム構築時に必要なスキル。
データ設計の知識は、(Pegaは)ツールを導入してもDBは作る必要がある
Q,ローコード・ノーコード開発ツールを扱う際に必要なDB設計の知識がない人が扱った場合に想定される問題点はどのようなものでしょうか?
これはローコード・ノーコード開発に限らずですが、DB設計ができないとDBでのデータ保持が不適切な状態になります。
DBの状態が不適切だと、データを参照するアプリ側の開発コスト・難易度に影響が出ます。
例えば、不適切なデータを適切に見せられるようにアプリ実装で工夫が必要になったりしてアプリが複雑になり、バグの温床、保守コストの高騰に繋がります。
そうならないために、従事するエンジニアの経験年数では5年ほどの経験値は必要だと思っています。
Q,逆にどのようなシステム開発がローコード開発に向いていないと思いますか?
実際に私の現場でもあったのですが、グラフやチャート、ビジュアルが動的なものを作る場合はローコード開発には向いていないと思います。
簡単なグラフやチャートは作れますが、若干手を込んだものにしようとすると細かい設定変更ができません。その場合はスクラッチ開発のほうが向いているため、私の現場もローコード開発ではなくスクラッチ開発で作っていますね。
Q,ローコード開発でお客様に貢献できたことはどのようなことでしょうか?
私の現場でもまだローコード開発ツール導入中のため導入が進めば期待できることとしてお答えしますが、
お客様の開発体制(情シス)内における開発技術・知識の標準化ができると考えています。
エンジニアのスキルセットに依存しない開発ができ、知識が平均化されることで以下のようなメリットにつながるかと考えます。
・社内でのナレッジシェア・蓄積が加速しやすい
・運用、保守コストの低減
・新規要員参入後の習得コストの低減
ローコード・ノーコード開発ツールは気軽に取り入れられ、メリットも多いツールだと思います。
しかし、ツールの導入、アウトソース、内製化はどれもシステム開発の手段ですのでその前段の「システム開発の目的」を明確にしなければ手段を選び間違えてしまい、無駄なコストが発生してしまうということはシステム開発においてどの手段をとっても共通していると今回の経験を経て感じました。
私のローコード開発ツール導入の経験を活かして、よりお客様へ貢献していけるようにエンジニアとしてこれからも技術の向上をし続けていきたいと思います。
執筆者
リビルダーズ編集部