ノーコード・ローコード開発ツールの出現により、「コードを書かない」または「最小のコード記述」でアプリケーションやシステムができるようになりました。開発の複雑化が進む現代において、コーディングを簡単にしたり、工数を減少させたりするツールとして広く注目を集めています。政府『DX白書2021』(IPA:独立行政法人情報処理推進機構社会基盤センター)でも、デジタルトランスフォーメーションの効率を上げるツールの一つとして着目されています。これから、さらにスポットを浴びていくと予想されているノーコード・ローコード開発ツール。今回はそもそもどういったものかといった概要から、メリットとデメリット(落とし穴)を紹介します。
1.「ノーコード」「ローコード」とは?これらの違いは?
ノーコード(No Code)とは?
ノーコード(No Code)はソースコードを全く書かずにアプリケーションを開発したり、Webサイトが構築できたりするプラットフォーム(ツール)や手法のことをいいます。プログラミング、コーディングに関する知識が全く無い非エンジニアでも、パーツやテンプレートを組み合わせてアプリケーションなどを開発できるのが最大のメリットです。
ノーコードで開発するメリット
非エンジニアでも開発できる
ノーコードでは、ソースコードを記述する必要が無いため、専門スキルを持たない非エンジニア人材でも開発に参画できるのが最大のメリットです。管理・業務部門での業務の効率化、自動化にも適しています。
小規模・単機能システムの開発が楽
ツールに用意されている機能を利用するだけで開発できるため、ノーコードは小規模なシステムや、単機能のアプリケーションなどの開発に向いています。
開発チームが不要のケースもある
ノーコードの場合、規模が小さければ、開発チームを構築しなくても、担当者がツールを利用するだけで開発が完了することもあり得ます。
拡張やメンテナンスが簡単
基本的に、ノーコードツールに用意されている機能を使って開発をするため、ツールに用意されているものを利用する場合、機能の拡張はとても簡単です。また、ツール側のメンテナンスはツールのベンダーが行うため、管理は必要最小限の手間で済みます。
ローコード(Low Code)とは?
ローコード(Low Code)は、プログラムコードをほとんど記述しないでアプリケーションやシステムの開発を可能にするプラットフォーム(ツール)や手法を指します。従来の開発手法よりも圧倒的にソースコードの記述量を減らして開発ができるのが特徴です。
ローコードのメリット
(ノーコードに比べて)拡張性が高い
ノーコードに比べて、ローコードではコード記述が可能なので、オープンAPIなどを利用することで柔軟に機能を拡張できます。
利用範囲(目的)が広い
ローコードはコードの記述が可能なので、ユーザー側で必要とする機能をニーズに応じて追加できます。そのため、ノーコードの場合に比べて、利用用途が広いといわれています。
既存システムと連携できる
ローコードツールの多くでは、他のシステムやアプリケーションとの連携が最初から想定されています。そのため、外部システムと統合したり、連携したり、権限設定したりすることができ、クラウド環境を利用したり、オンプレミス環境と接続したりすることができます。拠点や部署間をまたぐようなシステムの開発も可能です。
共通する「強み」
ノーコード、ローコードは、従来の開発に比べ、共通する「強み」を持っています。
設計・開発工数を抑えられることが多い
ノーコード・ローコードでの開発では、フレームワーク、データベース、ネットワークといったシステム構成を意識する必要はあまりありません。要件に対してそれぞれのパーツ(機能)をどう組み合わせるかを考えるのが基本となり、事前検討にかかる時間や開発にかかる工数(時間)の大胆な削減が期待できます。
インフラ管理の負担が小さいことがほとんど
ノーコード・ローコード開発ツール(プラットフォーム)の多くは、クラウド環境やサーバーといったインフラも"込み"で提供しているので、利用者は自社環境内に開発環境を構築する必要がほとんどありません。
また、ツール類はGoogle、Amazon、Microsoftといった世界規模の大手IT企業が提供しているものもあり、コストパフォーマンスの高い環境が得られるケースが増えています。インフラ整備はIT開発のなかでももっともハードルが高い領域といわれるため、開発経験が浅い企業にとって心強いと感じられる状況が整ってきているといえます。
2.世界的にノーコード・ローコードが注目を集めている理由
ノーコード、ローコード開発ツールが世界的に注目を集めているのは、どのような背景があるからでしょうか? その理由をいくつか上げていきたいと思います。
1.「エンジニア不足」の解消に役立つ
ノーコード・ローコード開発では、プログラミングスキルが無い人、専門的な知識が少ない人、経験不足の人でも、アプリケーション開発に貢献できる可能性が高く、スキルのあるプログラマーが自身の専門的領域に集中できるメリットがあります。
専門教育を受けていない非エンジニアをエンジニア化することも容易で、近年のエンジニア不足を解消するために、ノーコード・ローコード開発を取り入れるケースも増えています。
2.デジタルトランスフォーメーション支援ツールとして強力
上記の「エンジニア不足の解消」にも関わりがありますが、今、世界規模で進むデジタルトランスフォーメーション(DX)を推進するツールとして、ノーコード・ローコードは有力な選択肢の一つとなっています。『DX白書2021』(IPA)でも、DX時代の開発効率を上げるためのツールの一つとして着目されています。
デジタル化が遅れている企業・部門が急に大規模な開発を行ってDX化を進めるのは、コスト面だけでなく、「舵取り役」となるプロジェクトリーダーや開発チームがいないため、能力的に見ても難しいと考えられます。エンジニアが不足する状況で、短期間かつ低コストで現場ニーズに適合したデジタル化を推進し、DXへの歩みを進めるためにノーコード・ローコード開発を採用する自治体や企業が増加しています。
3.有力ツールが続々とリリースされている
このように世界的に注目を集めていることもあり、様々なノーコード・ローコードツールがリリースされており、活況を呈しています。これまでは海外製が多かったのですが、日本語が使える日本国産ツール「Click」(NoCode Japan株式会社)など、リリースが続いています。
最近では、Amazon Web Services(AWS)がノーコードツール「Amazon Honeycode」、ローコード開発ツール「Amplify Studio」、Googleがノーコードツール「AppSheet」、Microsoftがビジネス用アプリケーションを開発できるローコードツール「Microsoft PowerApps」などをリリース。Amazon、Google、Microsoftの参入で一気に認知と注目が広まりました。
4.将来性が高いジャンル
システム開発の複雑化が進み、今後しばらくはエンジニア不足の状況が続きます。こういった状況下では、エンジニアは専門性が高い、本来取りかかるべき領域に集中し、業務に関係するアプリケーションなどの開発はノーコード・ローコードツールを使って進める体制が整えられるようになっていく可能性が高いと考えられています。この意味で、ノーコード・ローコードジャンルは今後、大きな伸びが予測でき、将来性が高いジャンルだといえます。
3.ノーコード・ローコードの「デメリット(落とし穴)」は?
このように見てくると、メリットだらけに見えてくるノーコード、ローコードですが、実際にはデメリット(落とし穴)もいくつか指摘されています。ここでは、報道等で指摘されている点をまとめ、整理してみましょう。
1.制限・制約の「落とし穴」
開発の"自由度"が低いことがある
ノーコード、ローコードでは一般的な開発ツールより、開発ツール・プラットフォームから機能面で制限・制約を受けやすいといわれています。とくにノーコードでは、使用する開発ツールが対応していないことは、ほぼできないのです。また、ローコードではコードが記述できますが、開発ツールによっては仕様としてコードで対応できない部分があり、思わぬ制限を受けることがあります。
ノーコード、ローコードの導入に際しては、自社の細かい仕様やルールに沿った開発が可能かどうか、事前によく確認しておく必要があります。とくにデザイン面で制限が存在していることが多いので、細かくUI/UXを調整したいとか、完全に自社業務に対応させたいと考えている場合は注意が必要かもしれません。
大規模開発や先端技術、動的な開発が苦手
ノーコード・ローコードでは、基本的に開発ツールが対応していないイレギュラーな仕様への対応が苦手です。例えば、リアルタイムで情報を収集して集計するような「(株などの)リアルタイムチャート表示」といった動的コンテンツを取り扱うシステム開発を苦手にしていることが多いようです。
いわゆる最先端技術を取り扱いたい場合も苦労することがあるといわれています。大規模システムを開発するケースや、将来的にシステムを大規模なものに成長させたり、先端技術を取り入れたりする構想がある場合は、これまでのプログラミング言語・フレームワークなどを使った開発の方が上手くいく可能性があると指摘されています。
「資産継承」問題がある
これは、ノーコード・ローコードを使うメリットのちょうど"裏返し"ともいえる「落とし穴」です。ノーコード、ローコードでは良くも悪くも開発ツール・プラットフォームに大きく依存して開発を行います。そのため、インフラの管理といった領域は"おまかせ"で済んでいるのですが、何らかのトラブルや開発ツール提供企業の倒産などで事業継続が難しくなり、サービスが終了してしまうと、最悪の場合、作成したシステムやアプリケーションが使えなくなる可能性があります。
万が一の事態に備えているサービスもあります。ノーコード開発ツール『Bubble』は、サービス停止となった場合、ツールをオープンソース化すると文書に記しています。
Finally, we want to make sure you feel secure about building on the Bubble platform, so, although we plan to be around for a very long time, here's our guarantee: if for some reason we ever have to close down shop, we will release the Bubble source code under an open-source license so that you can set up your own Bubble server and keep your app running.
「Application & Data Ownership - Bubble Docs」より引用
2.セキュリティ・品質面での「落とし穴」
情報漏洩対策・セキュリティ対策はツールまかせになる
ノーコード・ローコード開発ツールのほとんどがクラウドサービスのため、データはクラウド上に保管され、情報漏洩対策、セキュリティ対策もツール・プラットフォームにまかせる形になります。クラウドへの接続が必要になる場合、企業・団体のポリシーによってはデータが持ち出せないため、ツールを利用できないことがあります。この場合、オンプレミスで利用できるツールを選択することになります。
「シャドーIT」問題を引き起こす可能性がある
これはメリットの裏返しともいえる問題です。ノーコードやローコードツールの利用により、開発が手軽になると、一部の部署内だけで動作する、管理部門・管理者が把握していないシステムが作成、利用されてしまう「シャドーIT」問題が発生する可能性があります。「シャドーIT」は情報漏洩、セキュリティのリスクを高めてしまうため、利用に際しては管理を徹底する必要があるのです。
属人化問題にも気をつける
「シャドーIT」に類似していますが、ノーコード・ローコードでは開発が手軽なため、作成者しか内容を把握していないアプリケーションやシステムが作られ、担当者の退職などによって、何がどう使われていたか把握できなくなるケースが想定できます。ツールの導入に際しては社内ルールを作成しておくことがポイントとなりそうです。
"ブラックボックス問題"がネックになることも
ノーコード・ローコード開発では、機能の大半をツールベンダーに頼る形になり、開発したアプリケーションやシステムについて動作確認以上に踏み込んだソフトウェアテストが実行できないことがほとんどです。開発に際し、何らかのテスト・品質に関する基準(内規)を持っている企業・団体などの場合、これが導入のネックになることがあります。
まとめ
ノーコード・ローコードツールを利用すると、非エンジニアが開発に加わることができ、さらに開発の効率化が見込めます。これは素晴らしいメリットです。しかし、ツールやプラットフォームによっては希望する仕様を満たせない可能性があるため、導入に当たっては、慎重に事前検討を行う必要があります。とくに、社内の品質、セキュリティポリシーに合致しているか、管理者の負担を大きく増やすことなく効率化を図れるかどうかを確認しておくことがポイントだと思われます。ノーコード・ローコードを上手く活用することで、開発効率の向上が望めそうです。