効流行り廃りの激しいIT分野のバズワードですが、ここ1年間で「ノーコード・ローコード開発」という言葉を耳にする機会が増えてきました。果たしてこのノーコード・ローコード開発は、多くのバズワードと同様に、一過性のブームで終わってしまうのでしょうか。もしくは、「当たり前の存在」になって特段騒がれることはなくなるのでしょうか。それとも、概念として生き残り、1つの開発スタイルとして定着するでしょうか。
Salesforceは、ノーコード・ローコード開発は特定分野の開発スタイルに最適な存在として、今後大きな存在感を発揮していくと見ています。そして、その分野の開発環境の整備を進めています。今回、この分野における日本カルミック株式会社様の事例として公開するにあたり、改めてノーコード・ローコード開発について読者の皆様に紹介します。
そもそも、ノーコード・ローコード開発とは?
「コンピュータは2進数を使う」と聞いたことはないでしょうか。もう少し噛み砕くと、コンピュータは電気信号のオフ(0)とオン(1)ですべての情報を処理します。クラウドで日々更新する顧客データベースも、スマートフォンの待受背景になっている愛犬の写真も、コンピュータは0と1の羅列として処理しているのです。ただ、それでは極めて専門的な知見を持ったごく少数の人間にしか理解できません。
より多くの人間がコンピュータに命令を伝えられるようにするためには、人間とコンピュータの仲立ちをしてくれる存在が必要になります。そうして生み出されたのが、プログラミング言語です。そして、プログラミング言語で書かれた文章をコードと呼びます。私たちの使っているソフトウェアは、コードの集大成と言えるものです。
このように、コードは人間にとってわかりやすいものとして誕生しました。とはいえ、コードを読み書きするためにはそれなりに勉強が必要で、すべての人間が使いこなせるものではありません。コンピュータへの要求レベルが高くなればなるほどコードは複雑になり、高度な専門性が求められます。
では、ノーコード・ローコード開発とは何なのでしょう。ノーコード・ローコード開発はそれぞれ、ソフトウェアを開発する際に「コードを書かなくても良い」、「コードを少しだけ書けば良い」という意味になります。コードを書かなくてもコンピュータに理解してもらえるわけですから、プログラミング言語を学んだ経験のないビジネスユーザーでも、簡単にソフトウェアを開発することができます。
基本的に、ほとんどの操作はマウスのみです。画面レイアウトを考えながら、ドラッグ&ドロップで必要な機能やロジック(コンピュータに処理をさせるやり方)を「設定」していくだけで、ソフトウェアを作ることができるのです。プログラミング言語がわからなくても、コンピュータに命令を伝えることができる。つまり、ソフトウェアを作れる人間の裾野を大きく広げられるテクノロジーなのです。
ノーコード・ローコード開発の実効性
狐につままれたような気分になってしまったかもしれません。10年程度ITにかかわったことのあるビジネスユーザーは、もしかすると苦い経験を思い出したかもしれません。かつて、主にWeb関連でWYSIWYGエディタと呼ばれるツールが流行りました。しかし、これは画面を描画するだけで、ほんの少し高度な使い方をしようとすればコードを書く必要がありました。GUIを描くだけでコードが自動生成され、データベースも自動で設計できるというツールもありました。しかし、思いどおりに動かすためにはそれなりに専門知識が必要でした。
「いま話題になっているノーコード・ローコード開発はそれらと何が違うのか」と疑問を持たれるのは当然かもしれません。また、「本当に、コードを書かなくても作れるのか?」、「どの程度までならノーコードでできて、何をしようとするとローコードになって、本格的にコードを書くのはどこからなのか?」、「運用に入ってからも専門家の支援は必要ないのか?」、など、さまざまな「?」が湧いてくるでしょう。
まずは、実績から見てみましょう。日本カルミック様は、1人のビジネスユーザーが、わずか3日間で社員の健康管理アプリケーションを開発しました。開発された方は、Salesforceのユーザーで、ベンダーマネジメントの経験もありましたが、自ら手を動かしてコードを書き、ソフトウェアを開発した経験はありませんでした。そして、今回の開発にあたっても、コードは1行たりとも書いていません。
かつて期待されて使ってみたものの、思うような結果を得られなかったツールとは違います。なぜこのようなことができるのでしょう。
Salesforceのノーコード・ローコード開発
Salesforceは、どこまでノーコードでできて、どこからローコードになるのか、について正直にお伝えすることにしています。そして、ノーコードでも、おそらく読者の皆様が考えておられるより相当高度なことができるという自負があります。
今回紹介させていただいた日本カルミック様では、社員の健康管理アプリケーションを開発されました。Salesforceに登録されたユーザーが、そのアプリケーションを使って、自身の健康状況を毎日入力します。これは、Salesforceのノーコード・ローコード開発環境で開発し、Salesforceを通して利用するソフトウェアです。ほかのシステムとの連携はなく、単体で稼働します。入力されたデータに基づいて、何らかの処理をすることもありません。ダッシュボードもご利用いただいていますが、これはSalesforceの基本機能として提供しているもので、そもそもダッシュボードの作成にコーディングは必要ありません。
このように画面を用いてデータベースに情報の出し入れを行う、データや画面の処理プロセスを実行する、ためた情報の分析を行う、これらの実装は十分にノーコードの範疇です。そして、ノーコードでやれることは、まだあります。大きなところは2つ。1つは、AIの実装です。SalesforceはAI機能をノーコード・ローコード開発で設定できるようにカプセル化して提供しています。そのため、クリック1つでAI機能を埋め込むことができます。もう1つは、APIによる他システムとの連携が、ある程度できるということです。この部分に驚かれる方は多いかもしれませんが、APIを用意しておけば、相手システムが大幅にカスタマイズされていない限り、基本的にデータは自由に取り出せます。そして、Salesforceはノーコード・ローコード開発で大量のAPIをサポートしています。
では、どこからローコード、すなわちコードを書く必要が出てくるのかについて紹介しましょう。コードが必要になるのは、Salesforceが標準機能として用意していないプロセスの処理が一連の簡単なロジックとして定義しきれない場合です。ノーコードでは画面を設計し、ロジックを処理フローとして設定するだけで良いので、たとえば「Aが入力された場合はAAを表示、Bが入力された場合はBBを表示する」などの簡単なケースはノーコードで十分です。
とはいえ、Excelでマクロを組まなければならないような処理や、複雑なロジックを設定したい場合などでは、コードを書く必要が出てきます。ただし、その場合でもゼロからコードを書いて作るより、コードを書く量は大幅に少なくなります。ビジネスユーザーが使いたい画面を作って、複雑な処理の部分だけを専門家に依頼する、といったやり方で、開発期間を短縮することも期待できるはずです。
まとめると、入力画面があって、データベースを中心に情報を入出力する仕組みの大半は、ノーコードで開発できます。その際に少し複雑な処理やロジックを噛ませたい場合は、ローコードになります。コーディングが必要になるのは、複雑な処理を実行させる、大量のデータ処理を行う、標準とは異なるユーザーインタフェースを構築する場合などに限られるようになるでしょう。具体的には、複雑なワークフローを伴う複数のシステムの連携、給与計算や需要予測に伴う大量のバッチ処理などです。
ノーコード・ローコードで開発したアプリケーションが運用段階に入り、改修が必要になると困るのではないか、と感じるかもしれません。ご安心ください。開発した人と同程度のスキルのある人なら、だれでも改修できます。保守も同様です。そもそもクラウドにありますから、ハードウェアやネットワークを気にする必要もありません。他のシステムと連携していて、その部分を専門家に任せた場合に限り、連絡先を把握しておくようにしてください。
Salesforceは、ノーコード・ローコード開発に力を注いできました。そもそも、Salesforceのアプリケーションでユーザーインタフェースのある部分は、すべて皆様にお使いいただいているものと全く同じノーコード・ローコード開発環境で開発したものです。これからもノーコード・ローコード開発の事例は次々に紹介していきたいと考えています。ご期待ください。