ローコード開発(Low-code development)

「ローコード開発(Low-code development)」

データ活用やDX成功に必要な考え方を、各種キーワードの解説で理解できる用語解説集です。
今回は、今後のビジネスの現場におけるIT利活用において重要な要素になると考えられる「ローコード開発(Low-code development)」について考えてみましょう。

ローコード開発(Low-code development)とは

【くもラジ】「ノーコード」「ローコード」「ノンプログラミング」ってどう違うの?(3分49秒)

Vtuberのくも子とハルカが、今話題のIT情報をわかりやすくお届けします。この動画では、「ノーコード」「ローコード」「ノンプログラミング」の違いをお伝えします。

ローコード開発(Low-code development)あるいはローコード開発環境とは、従来のプログラミングのようにフルにソースコードを書いて開発する代わりに、少量のコーディングやGUI上の操作だけで、アプリケーションなどを開発することを可能にするものです。
ビジネスにおけるITの必要性が高まる一方でITエンジニアが不足している状況を解消する手段として、開発生産性を高める手段として、あるいは限定的なプログラミングスキルでも開発を担えるようにする手段として、注目されています。

従来:「まずエンジニアが必要」「開発に時間がかかる」

従来、本格的にITを活用しようとすると、まずプログラマを確保して、エンジニアに開発作業を依頼することが基本的に必要でした。本格的なプログラミングによる開発は時間がかかり、ビジネスで生じる多くの要望に対して、ITシステムの開発作業がニーズを十分に満たすことは多くの場合には難しい状況がありました。

本格的な技能を持ったエンジニアの確保は容易ではなく、エンジニアが時間をかけてシステム開発を行うことは、ビジネスのコスト増にもつながります。さらには、ITで何かを出来るようにするたびに開発に時間がかかってしまうのでは、ITシステムがビジネスの要望に十分に応えられなくなり、ビジネスのスピードも落ちてしまいます。

このような状況から、開発生産性を向上させること、迅速なシステム開発を実現すること、あるいは限定的なプログラミングスキルでもシステム開発を可能にすることが求められていました。

そこで注目されるようになったのが、ローコード開発環境です。少量のコーディングをするだけで開発作業ができる、あるいはGUI上での作業を併用することにより開発作業を効率化できる手段として活用されるようになりました。

ローコード開発の例

ローコード開発は様々な分野で活用されています。

UI開発での活用:アプリケーションの「見た目」を効率的に開発

本格的なコーディングをしなくても「ユーザインタフェース部分」を作成できることを売りとしているローコード開発環境が伝統的に存在します。

ユーザインタフェース部分とは、例えばWindowsで動作するデスクトップアプリケーションにおいては、ウインドウやウインドウ上の入力部分やボタンなど、アプリケーションの見た目の部分のことです。

例えばWindowsがまだ初期の時代には、Windowsアプリケーションを開発しようと思ったなら、GUIを表示し動作させる部分についてもプログラミング言語でOSの機能を直接呼び出す手のかかる記述による開発をする必要がありました。開発に手間がかかって生産性が悪いだけでなく、ソースコードを読んだだけではどのような外観のアプリケーションを開発しているのかわかりづらくなっていました。

そこで整備されるようになったのが、「少量のコーディングを行うだけ」でGUIの開発ができる、あるいは「GUI上でビジュアルに見た目をデザイン」して補助的にコーディングをするだけでGUI部分を開発できる環境が整備されるようになります。

同じような問題は当然、スマホアプリの画面表示、WebアプリにおいてWebブラウザ上にHTMLで表示される部分の作りこみにおいても存在します。さらには現在においてはWebアプリとスマホアプリなどマルチプラットフォームのアプリケーションのリリースなど、複数の環境向けにアプリケーションをリリースする手間を解消したいニーズもあります。

ローコード開発には、このようなソフトウェアの「見た目」の部分の開発を効率化・迅速化するものや、ハイスキルなエンジニアでなくても直観的にユーザインタフェース部分の開発を可能にする取り組みがあります。

データベースやそれを用いたアプリケーションの開発

「FileMaker」や「kintone」あるいは「Microsoft Access」などのような、本格的なコーディングを必要とせず、素早く効率的に、データベースを作って運用し、データベースを用いたアプリケーションを開発することを可能にする取り組みがあります。

コーディングをほとんど必要としない方針で作られており「ノーコード」にも分類されうるような方針のものから、プログラムコードを書く前提は残されているが、限定的なコーディングで効率よく開発できるようになっているものもあります。

各種開発フレームワークなどもローコードの一種とみなせる

全て自分でコーディングする場合と比べて少量のコーディングで効率的に開発できる、あるいは高度なスキルが無くても開発を可能にするような取り組みは、プログラミングに関連して多くなされてきました。

古くは、低水準の開発言語(アセンブラなど)に対して高水準な開発言語(COBOLやBASIC)を用いるようになったこともそうだと言えます。最近においても、Webアプリケーションの開発におけるWeb開発フレームワーク(例えばRuby on Railsなど)や、ゲーム開発において活用が進むゲームエンジンも、少量のコードでの効率的な開発を実現する取り組み、あるいは開発の難易度を下げる取り組みであるとみなすことができます。

ノーコードやローコードと聞くと、スキルのない人向けの簡易なものだという印象もあるかもしれません。しかしながら、特にローコード開発環境については開発生産性を高める手段として整備されているものが多く、むしろハイスキルなエンジニアや本格的な開発案件にとっても、スキルを必須な領域や高付加価値な領域で効率よく発揮するための、効率化手段や補助手段として活用の余地があるものだと言えます。

ローコード開発のビジネス的なインパクト

ローコード開発環境の活用が、ビジネス側から見てどのようなメリットがあるか考えてみましょう。

ITシステムを迅速に柔軟に開発できる

全て本格的にコーディングをする場合(スクラッチ開発)と比べて、開発が短期間で実施できることや、開発後に機能変更や機能追加も迅速に実施できることが期待できます。IT投資が成果を生むまでの期間を大きく短縮し、必要な改修を続けやすいので、IT資産として価値の維持も容易になります。

ビジネスを取り巻く様々なことの変化の速度が高まっている時代において、ビジネスを支えるITシステムが変化に素早く対応出来るようになることは望ましいことです。

ソフトウェア開発のコスト減や人材確保のハードルを下げる

効率的にシステム開発ができることから開発コストを下げることが期待できます。また、ローコード開発環境によっては、フルセットの開発スキルを持っていないエンジニアでも開発で活躍できるようにすることがあり、人材確保を容易にすることがあります。

開発を行った後にシステムを担当する人員の引継ぎをするときにも、ビジネスで攻めに出るときに必要になる開発規模拡大のための増員についても、社内の人員をリスキリングするような取り組みにおいても、ITに関する人的資源面での取り組みをスムーズにできる可能性があります。

本格的なシステム開発(に近いこと)ができる

簡単に開発できることを謳う手段は各種ありますが、簡単さのトレードオフとして簡単なことしかできなくなりがちで、ノーコード開発ではそうなってしまうこともあります。一方でローコード開発では、通常のシステム開発に比べて大差ない開発を可能にしつつ、開発を大幅に効率化することや、開発に必要なスキルを低減することができることがあります。

ビジネスを担う本格的なITシステムでは、本格的な機能やしっかりとした動作が求められる傾向があります。ビジネスが求める水準を維持しつつ、開発生産性を高められる手段として期待できます。

ノーコードとローコードの違いから考える

「ローコード開発」と違いが分かりにくい言葉に「ノーコード開発」があります。似た状況で使われることもあり、実際どちらの言葉を使うべきかはっきりしない状況もあるように思います。

一般的には、ノーコードは「コードを書かずに済む」ことが重視されている状況で使われることが多く、ローコードは開発生産性の向上などが重視されている状況で使われていることが多いように思います。

こちらもご覧ください
用語集:ノーコード開発

「簡単かどうか」「開発能力が高いか」

ノーコードは「ソースコードを書かなくてよい」ことをその象徴として「簡単であること」をPRしていることが多いと思います。しかし、「コードを書くか書かないか」と「簡単かどうか」(あるいは「エンジニア向けかどうか」)」は、本当は話が別です。

ノーコード製品だけれどもプログラミング言語と同等の能力を持つものもあります。一方でソースコードを書くけれどもすぐに覚えられる簡単な文法だけで済むため、簡単に使えるローコード製品もあり得ます。

さらには「簡単である」ことは「能力が低い(開発できることが限られる)」こととイコールとは限りません。簡単に使える特徴を持ちつつ、使いこなそうと思えば難しいことまで出来ることもあります。

  • ソースコードの有無は「簡単かどうか」とは話が別
  • 「簡単かどうか」は「能力が低い(開発できることが限られる)」こととも話が別

開発能力や開発の自由度としてのソースコード

ノーコード開発環境の考え方においてコーディングは「難しいこと」の象徴で、無くなる方が望ましいものです。その目線においてはローコード開発環境とは、コードを不要にする取り組みが不十分な製品に見えることがあるかもしれません。

エンジニアではない人にとっては驚きかもしれませんが、エンジニアは「コードを書かなくてよい」「コードが書けないこと」ことを「マイナス要因」だと考えることがあります。なぜなら、必要ならば(いざとなったら)コーディングを行って解決できる余地がない不安な開発環境に見えてしまうことがあるからです。

  • コードを書ける余地があることは「開発で作れること」の自由度が高いこととして重視されることがある

しかしながら、コードを書けるからといって、開発の自由度が高いとは限りませんし、書けないから作りこみができない環境であるとは限りません。

  • 大事なのはソースコードの有無ではなく、「どこまで作れるか」とか「作りこみ能力が高いか低いか」のはず

「作りこみ能力」はエンジニアの力を伸ばす余地でもある

例えばノーコードで、簡単かつ迅速、低コストにシステム開発ができたとします。一見理想的に思えますが、スキルが無くても済む開発とは、エンジニアの成長を促さず、スキルの成長を促さないことがあります(開発の丸投げが悪いとされるのと同じ理由です)。

「どこまで作れるか」とか「作りこみ能力が高いか低いか」は、エンジニアが成長し、腕を振るって開発できる余地があることも同時に意味します。コーディングが出来る方が、組織としてはエンジニアの成長を促し、エンジニアにとっては自身のキャリアパスを有意義にできます。

  • エンジニアが腕を振るって成長でき、高度なことができる余地があるべき

しかし同じく、コードを記述できる開発環境かどうかとは、全く同じ話ではありません。

  • コードの有無と、能力の向上に応じた作りこみができる環境であるかどうかは同一の話ではない

エンジニアにとっても「コードがない」メリットがある

ここまで「コードを書けることの意味」について書いてきました。では、エンジニアにとって「コードがないこと」は意味が無いのでしょうか?

自分でコードを書きたい人でも、他人の書いたコードを喜んで読みたい人は多くないはずです。ノーコード開発には、ソースコードを読み解かなくても開発の意図が読み取れるメリットがあります。

例えば、GUIをビジュアルに開発できる環境では、どんな見た目のアプリを作っているのか見ただけですぐわかります。GUIでなくても、例えばデータ連携をGUI上で開発しているなら、Salesforceからデータを読み込むアイコンと、kintoneにデータを書きこむアイコンが配置されていたら、それだけで何をしているのか何となく解ります。

  • 腕のあるエンジニアにとっても、「コードがない」手段を組み合わせた方が、開発がシンプルでスムーズになることがある

ローコード開発が、生産性向上の実現に向けて目指していること

ローコード的な取り組みについて、再度整理してみましょう

  • 開発生産性を向上させる
  • 迅速なシステム開発を実現する
  • 限定的なプログラミングスキルでもシステム開発を可能にする
    -簡単に開発できて開発の敷居が低い方が望ましい(が最重視されていない)
    -一方で、作りこもうと思えば本格的な開発まで行える能力も備えることが望ましい
  • ソースコードを書く長所をうまく残してある
  • ソースコードを書かない長所ともうまく組み合わせられる

また、汎用のローコード開発環境よりも、何かに特化して作られたローコード開発環境が様々にあります。例えば、

  • ユーザインタフェース開発
  • データベース開発
  • システム間連携など外部との通信や連携処理

例えば、業務システムのビジネスロジックや安定稼働する基盤をしっかり作り込むが、ユーザインタフェースはローコード開発環境で効率よく作るとか、業務の変更が激しい部分は業務の現場にいるエンジニアが自らkintoneやFileMakerで開発するなど、用途や状況にあわせてローコード製品やノーコード製品を活用するなど、それぞれの都合にあわせた活用に取り組むことができるでしょう。

外部のシステムやデータとの連携処理を効率的に実現する「iPaaS」

このような開発を効率化し、ITシステムの柔軟な変更や迅速な開発を実現するにあたって、ぜひ考慮してほしいのは、多くのシステム開発で関係する「外部のシステムやデータとの連携処理」の効率化での活用です。

自分たちでスクラッチ開発して作ったアプリケーションはもちろん、例えばkintoneで内製したシステムにおいても、各部門の現場で活用されているExcelのデータを読み込まないといけないとか、Salesforceとのデータの出し入れが必要だとか、自社システムの外部とのデータ連携が必要になることがよくあります。

手作業でCSVファイルをあちこちと出し入れしているようなことは良くあり、それで当然だと思われていることもあります。しかし、そのような非効率を解消しようと通常のプログラミングで開発しようとすると、なかなか効率的な開発が難しいことがあります。データ連携ごとに違う接続先を技術的に調べて開発する必要があり、高速処理やエラー時のリトライ方法や安定稼働に関するノウハウもそれぞれ違います。

そこで活躍するのが自分たちでソースコードを書いて開発することなく、様々なクラウドやシステム、データを連携できる手段です。例えば「「EAI」や「ETL」、「iPaaS」と呼ばれる、「DataSpider」や「HULFT Square」などの「つなぐ」技術が活用できます。

GUIだけで効率的に連携処理を実装できる

通常のプログラミングのようにコードを書く必要がありません。GUI上でアイコンを配置し設定をすることで、多種多様なシステムやデータとの連携処理を実現できます。

「GUIで開発できる」ことは長所でもある

GUIだけでのノーコード開発は、実装されている処理が明瞭になります。例えば、Salesforceから読み込むアイコンと、kintoneに書きこむアイコンが配置されてあって接続されているのを見ただけで、おおよそどういう処理なのかは理解できます。

さらには、それぞれの接続先への連携に必要な技術的ノウハウは接続機能自体が備えているので、連携先ごとに技術的なことを自分たちで理解する必要がなくなります。高い処理性能、安定した稼働などの実現に必要なことも最初から作りこまれています。

連携処理の実装を効率化するだけでなく、保守開発や派生開発の際にソースコードを解読する大変な作業をする必要がなくなります。接続先ごとに個別の実装がなされているソースコードを読むことに比べると、読み解かなければいけないことは格段に小さくできます。

本格的処理を実装できる

「GUIだけで開発できる」ことを謳っている製品は沢山ありますが、そういう製品に簡易で悪い印象を持っている人もおられるかもしれません。

確かに、「簡単に作れるが簡易なことしかできない」「本格的処理を実行しようとしたら処理できずに落ちてしまった」「業務を支えられるだけの高い信頼性や安定稼働能力がなくて大変なことになってしまった」ようなことは起こりがちです。

「DataSpider」や「HULFT Square」は、簡単に使うこともできますが本格的プログラミングと同等のレベルの処理の作りこみもできます。内部的にJavaに変換されて実行されるなど本格的プログラミングと同様の高い処理能力があり、長年にわたって企業ITを支えてきた実績もあります。「GUIだけ」の良さと、プロフェッショナルユースとしての実績と本格的能力の両方を兼ね備えています。

データ連携の実装を任せられる「データ基盤」として必要なことが揃っている

多種多様なデータソースへの接続能力はもちろん必要になりますし、実業務をしっかり支えるためには大量のデータを処理できる高い処理能力も必要になります。その一方で、柔軟かつ迅速な開発能力も同時に重要になることもあります。

一般的には、高い性能や高度な処理の実現を求めると本格的なプログラミングでの実装や、利用が難しいツールとなりがちで、現場での使いやすさを求めると利用しやすいが処理能力が低く簡易な処理しかできないツールになりがちです。

さらに加えて多種多様なデータソース、特にメインフレームなど昔からあるITシステムや現場のExcelなどモダンではないデータソースへの高度なアクセス能力、クラウドなど最新のITへのアクセス能力も併せて持っている必要があることも望まれます。これらを自前で開発するとなると、これら接続先について技術的に理解する必要が生じてしまいます。ちょっと大変なことになってしまいます。

また、これら条件のいずれかを満たすだけなら多くの手段があるでしょうが、データ活用をうまく進めるためにはすべての条件を満たす必要があります。しかも、GUIだけで効率的に使いこなせる長所があり、プロフェッショナルツールとして高い性能や信頼性を兼ね備えている、そんなデータ連携の実現手段となると多くはありません。

長期間の実績がある

ノーコードやローコードの開発環境はもちろん、プログラミング言語や開発フレームワークにおいても、自分たちが開発に利用した道具が長時間維持されるのかは常に気になるところです。

流行のカッコいい技術であっても数年後にメンテナンスされなくなっているようなものを採用してしまうとすぐに困ったことになります。業務システムは長期間にわたって利用されることが多いですから、長期間のサポートが見込めることが重要になります。

DataSpiderはすでに20年以上、サポートされ開発が続けられている製品です。その間、企業のITを支える手段として利用され続け、その間に新しく登場した技術への対応など、必要な機能の強化が続けられています。

クラウドサービスであるiPaaSなので自社運用不要

DataSpiderなら自社管理下のシステムでしっかりと運用できます。クラウドサービス(iPaaS)のHULFT Squareなら、このような「つなぐ」技術そのもの自体もクラウドサービスとして自社運用不要で利用でき、自社での導入やシステム運用の手間がなく利用できます。

関係するキーワード(さらに理解するために)

  • EAI
    • システム間をデータ連携して「つなぐ」考え方で、様々なデータやシステムを自在につなぐ手段です。IT利活用をうまく進める考え方として、クラウド時代になるずっと前から、活躍してきた考え方です。
  • ETL
    • 昨今盛んに取り組まれているデータ活用の取り組みでは、データの分析作業そのものではなく、オンプレミスからクラウドまで、あちこちに散在するデータを集めてくる作業や前処理が実作業の大半を占めます。そのような処理を効率的に実現する手段です。
  • iPaaS
    • 様々なクラウドを外部のシステムやデータと、GUI上での操作だけで「つなぐ」クラウドサービスのことをiPaaSと呼びます。
  • ノーコード開発
    • ローコード開発との区別が解りにくいこともあるノーコード開発。コードを書かない前提ですが、ただコードを書かずに済む簡易なツールというわけではなく、ビジネス的な活用の意義や製品の性質も異なっていることがあります。

「つなぐ」取り組みに興味を持たれましたら

興味を持たれましたら、ITシステムやビジネスの問題を「つなぐ」考え方で解消する製品を実際に試してみてください。

「つなぐ」ツールの決定版、データ連携ソフトウェア「DataSpider」

当社で開発販売しているデータ連携ツール「DataSpider」は、長年の実績がある「つなぐ」ツールです。

通常のプログラミングのようにコードを書くこと無くGUIだけ(ノーコード)で開発できるので、ビジネスについて良く理解し、自社のサイロ化の具体的な課題についても把握できる業務の現場が自ら活用に取り組めることも特徴です。

簡易な連携できるツールは世の中に多くありますが、GUIだけでプログラマではなくても十分に使える使いやすさをもちつつ、「高い開発生産性」「業務の基盤(プロフェッショナルユース)を担えるだけの本格的な性能」を備えています。IT利活用の成功を妨げている「バラバラになったシステムやデータをつなぐ」問題をスムーズに解決することができます。

無料体験版や、無償で実際使ってみることができるオンラインセミナーも開催しておりますので、ぜひ一度お試しいただけますと幸いです。

用語集 コラム一覧

英数字・記号

あ行

か行

さ行

た行

な行

は行

ま行

や行

ら行

わ行

» データ活用コラム一覧

おすすめコンテンツ

Related Content

Return to column list