デメリットがあるなんて・・・ローコード開発の落とし穴とは?
近年よく耳にする「ローコード開発」。中小企業から大手企業まで様々な企業が導入していることもあり、ついついメリットばかりに目がいきがちなのでは? しかし、残念ながらローコード開発は万能ではありません。今回は、つい見落としがちな「ローコード開発に潜む落とし穴」と「落とし穴にハマらないためには?」について考えていきます。
今さら聞けない「ローコード開発」とは?
ローコード開発では、ソースコードを記述する代わりにGUI(Graphical User Interface)上で、ドラッグ&ドロップで直感的にパーツを組み合わせて作業を行います。一方で、必要に応じてソースコードを記述することも可能です。 少ないコードで開発できるため、その名の通り「ローコード開発」と呼ばれ、最小限のソースコードの記述でシステム開発を行うことを特徴としています。 これにより、従来型の開発のようにプログラマーのスキルに依存することなく、品質のバラつきを低減させることが可能です。
従来型の開発では基本的に「モック」を作成することがなく、手戻りや双方の認識齟齬、見解の違いが多く発生する傾向にありました。 しかし、ローコード開発では要件定義などの早い段階でモックを確認することができ、ユーザー部門側・システムベンダー双方で認識合わせをしながら開発を進められます。この点も大きな特徴と言えるでしょう。
特徴
ローコード開発には次のようなメリットがあります。
短期間での開発
一般的に、システム開発ではソースコードの記述が増加すると、それに比例してバグや修正が多くなると言われています。 前述の通り、ローコード開発は最小限のソースコードの記述で済むため、ゼロからソースコードを記述する従来型の開発と比較すると、コーディングとテストの工数削減が期待できます。加えて、ソースコードの量が少なくなることで、プログラムの不具合・不整合があった場合でもすぐに発見・迅速な対処ができ、短期間での開発が可能となります。
従来型の開発と比べ、高度なIT知識を要しない
従来型の開発では、高度なIT知識をもった技術者なしではシステムの開発が困難とされています。 しかし、人材不足が深刻化している昨今、人材の確保に難航してしまうケースも散見されます。 そこで活躍するのが、ローコード開発です。プラットフォームが提供する機能により、開発言語やデータベース構築などの高度なIT知識を習得しなくても、単純なアプリケーションであればすぐにでもシステム開発が行えます。 利用するプラットフォームによっては、アクセス権限管理やワークフローなど、ビジネスに必須の機能をもとから備えていることも。そのためローコード開発は、必要とされるIT知識のレベルを大きく下げられると言えるでしょう。
内製化によるコスト削減
システム開発の費用は、「工数×人件費」で換算されることが多いです。 まず1つ目に工数について、先の通り短期間での開発が可能なため工数削減ができます。 2つ目に人件費ですが、今まで外部に委託していた作業を、ユーザー部門などの非技術者でも開発・改修が可能になります。それにより、高度なIT知識をもつ人材を確保することなくシステム開発ができ、人件費の削減ができます。 結果的に、「工数削減×人件費削減=開発コスト削減」の実現が可能となります。
ローコード開発に潜む落とし穴とは!?
ここまでお読みいただき、「そんなうまい話があるわけ・・・。」と思った方も多いのでは? そうなのです。残念ながらローコードは万能ではないのです。ここからは、ローコードに潜む落とし穴についてお話していきます。
落とし穴① IT知識0だと複雑な開発は難しい
先ほど、「従来型の開発と比べ、高度なIT知識を要しない」とお伝えしました。しかし、この章では「IT知識0だと複雑な開発は難しい」と、矛盾しているような内容・・・。 どういうことなのか、詳しく読み解いていきます。
IT知識0でもできること
システム開発の費用は、「工数×人件費」で換算されることが多いです。 ローコード開発のプラットフォームの多くは、利用頻度の高い機能やパーツをあらかじめ構築し提供しています。 基本的にIT知識0でもできることは、「GUI操作を中心とした画面部品の配置や、処理設定の選択など、プラットフォームの操作のみで実現可能なこと」であると考えてよいでしょう。具体例は次の通りです。
- GUI操作を中心とした画面のデザインと簡単な設定による振舞いの設定
- 画面の自動生成(製品により自動生成の可否や自動生成できる画面は大きく異なります)
- GUI操作や簡単な設定によるデータベースの定義
高度なIT知識が必要なこと
では次に、どんな時に高度なIT知識が必要になるのか、具体例を見ていきましょう。
- ノーコードでは開発できない個社特有の複雑な機能要件の実装
- 障害が発生した場合の復旧作業
- 他システムとの連携
よってローコード開発は、プラットフォームの操作のみで実現できる容易な開発であればIT知識0でも実装可能ですが、それ以外の複雑な開発は高度なIT知識が必要と言えます。
落とし穴② カスタマイズの制約がある
ローコード開発は、IT知識0だと複雑な開発は難しいことは理解いただけたはず。しかし、裏を返せば「高度なIT知識があればフルスクラッチのように自由に開発できるの!?」と思った方もいるのでは?
実は、ローコード開発ではテンプレートが既に決まっている場合が多く、プラットフォーム内で許可された機能しか使用できないなど、操作に制限がかかっているケースが多々あります。仮に自らソースコードを記述できたとしても、多くの場合、プラットフォームが提供するパーツやコード入力可能範囲などの限られた中でのプログラミングしかできません。
利用するプラットフォームによっては、ソースコードの記述自体が推奨されておらず、サポートの対象外になることも。
また、カスタマイズをシステムベンダーに依頼した場合でも、何らかの製品の縛りがあるケースがほとんどで、フルスクラッチのようにはカスタマイズ性が高くないことが多いです。
落とし穴③ 想定より品質が低い
ローコード開発は、ソースコードを記述する部分が少ないため、バグが少なく品質も保ちやすいとされています。そんな中、「ローコードの実力以上の高品質」を期待してしまっているケースもしばしば見受けられます。 というのも、ローコード開発では非技術者が担当するケースが大半です。
それゆえ、テスト工程を軽視したり、そもそもどんなテストを行えばよいか分からないままリリースしてしまうことが想定されます。また、ある程度のソースコードの記述ができる環境が残されているため、リリース後に機能拡張や改修を試み、不本意ながら品質が低下してしまうケースもあるでしょう。
このように、もともと技術者が担っていた業務を非技術者が行うことで、低品質に陥るケースが考えられます。「ローコード開発=高品質」と思われがちですが、使い方によっては低品質にもなり得ることを頭に入れておきましょう。
落とし穴④ セキュリティ対策が不十分
ローコード開発では、利用するプラットフォーム自体にあらかじめセキュリティ対策が施され、不正な処理が行われづらくなっています。そのため、ユーザー部門側が自ら対策を行う必要がなく、セキュリティ対策の負担を軽減できます。
しかしながら、利用するプラットフォーム自体がセキュリティ対策を講じていたとしても、必ずしもその環境下で開発するアプリケーションのセキュリティが担保されるとは限らないことを忘れてはなりません。
また、注意が必要なのが、ローコード開発は良くも悪くも自由に編集できてしまうため、その部分は自らセキュリティ対策を行う必要があることです。カスタマイズした箇所は、プラットフォーム自体のセキュリティ対策ではカバーされないため、動作に不具合があった際でもユーザー部門側の責任になります。何か対策をしようにも、プラットフォームの内部はブラックボックス化しており、極めて難しいとされています。
ローコードは万能では無いことを理解する
ローコード開発は、近年大きく注目を集め、ビジネスでの活用事例も着実に増えています。確かに、従来型の開発と比較すると数多くのメリットがあります。
しかしながら、IT知識0であったり、高いカスタマイズ性を求めていると、なかなか上手く活用できないことが多いのが事実です。そして、要望を100%満たそうとすると、従来型の開発に立ち戻ってしまうケースがあることも忘れてはなりません。
ローコード開発のメリット・デメリットを十分に知った上で、許容できること・できないことを天秤にかけ、自社にローコード開発が適しているのかを十分に検討しましょう。
そしてなにより、ローコード開発は万能では無いことを理解し、過信しないことが重要です。
まずはスモールスタート!
ローコード開発の真骨頂は、「スモールスタートに適していることである」と言っても過言ではありません。 スモールスタートとは、まずは核となる機能のみを開発し、軌道に乗った段階で必要に応じて規模を拡大していくことです。そうすることで、トライ&エラーを繰り返しつつ、自社の業務によりフィットしたものが開発でき、目まぐるしく変化するビジネス環境にも迅速に対応できることでしょう。
一方、いきなり大規模な開発を行うと、非技術者が携わることが多いローコード開発では、開発範囲が広いがために要望をまとめきれないことが想定されます。また、リリース後に使いこなせず苦慮することも多いでしょう。そして、開発のハードルが高くなったがために、着手までの意思決定に時間がかかってしまうことも大きな問題となるでしょう。
そうなると、コスト・時間・労力などあらゆる面で高いリスクを背負うことになります。 また、何らかの実現・問題解決で開発を思い立ったはずが、当然ながらリリースされるまでは実現・問題解決されないままとなり、貴重なビジネスチャンスを逃すことにもつながります。
ぜひスモールスタートで、「小さく始めて大きく育てる」気持ちをもってローコード開発と上手く向き合いましょう。
要求分析/要件定義をしっかり行う
要求分析/要件定義は、ユーザー部門側が求めている課題・目的を明確にし、システムベンダーでは求められている機能を明確にする、双方の認識合わせを行う重要なスタート工程です。
要求分析/要件定義につまずくと、その後の全ての工程に影響が及ぶため、従来型の開発・ローコード開発に関わらずプロジェクト成功の鍵を握っていると言えるでしょう。
要求分析/要件定義では、現行業務とその課題を洗い出した上で実現したい業務フローや使用するシーンを検討したり、必要に応じて業務フロー自体の見直しを行います。 これにより、プロジェクトの工数追加が発生せず納期遅延を防げたり、リリース後の認識齟齬による大幅な改修を避けることができます。
スムーズにシステム開発を進めるためには、綿密に要件を整理することはもちろんですが、時に利用するプラットフォームの機能に要件を合わせる工夫も必要です。
ローコード開発の特性・メリットを活かしつつ、プロジェクト成功に向けて要件定義をしっかり行いましょう。
まとめ
ここまでローコード開発について、コストや労力の面でたくさんのメリットがある一方で見過ごせない落とし穴があることをお伝えしました。 リスクのトレードオフを考えると、「自社にローコード開発が合っているのかどうか分からない・・・。」とお悩みの方も多いのでは? そんな方は是非、ローコードを導入すべき?「診断チェックシート」のダウンロードを!
本資料では、チェック項目にいくつ当てはまるかによって、ローコードを導入すべきかどうかがすぐに診断できます。是非、ローコード導入の適否判断にご活用ください。
リンクレア独自のローコード開発プラットフォーム!
EZCraftご紹介ページはこちら >