Salesforceとローコード開発

田中宏樹氏:さて、ここまでローコード開発やシチズンデベロッパーがいかに開発に参加してくるのかというところをご紹介しました。では次に、Salesforceをどのようにご活用いただけるのかというところに入っていきます。

Salesforceは基本的には顧客関係管理システムです。CRMと言われるサービスです。

特徴として挙げるのであれば、いくつかの側面はありますが、例えば、企業のマーケティング部門や営業部門、サポート部門など異なる部門で顧客に関する情報を共有して一貫した顧客体験を提供できるようになります。また、定期的なアップデートを通して、セキュリティ対策や最新テクノロジーをすぐにビジネスに適用できるようなかたちで提供しています。

この「すぐにビジネスに適用できるようなかたち」というのが非常に重要で、Salesforceは新しいテクノロジーを提供するときに「この機能をつくりました。APIを提供したので使ってくださいね」という出し方はしません。APIを出したところでビジネスユーザーはそのまま直接APIを叩くわけではないため、設定1つで有効化でき、そのまま使えるようなかたちで提供する。これがSalesforceの新機能の提供方法です。

エンジニアはもっと自由に使いたいのでしょうが、機能をそのままこのように使ってくださいと言われるため、ビジネスとしては相当助かっていると言われています。これによってお客様のデジタルトランスフォーメーションへの対応をサポートして、ビジネスにおける成功を支援する統合型のCRMソリューションになっています。

そのなかで、私たち開発者が使うような開発プラットフォームがあります。それがこの丸の右下にある紫の「アプリ」ですね。「Customer 360 Apps」といわれるものになります。

Customer 360 Appsとは何なのでしょうか? ローコードでもコーディングでもアプリケーション開発が可能な開発プラットフォームです。このプラットフォームによって開発期間を約57パーセント短縮できたというデータもあります。

一般的なエンタープライズアプリケーションで必要とされる機能やセキュリティ対策を標準装備しているので、信頼性の高いアプリケーションを高速に開発するためのエンタープライズ向け開発プラットフォームと言えます。

Customer 360 Appsのアプリケーション開発

では、そのような開発プラットフォームでのアプリケーション開発とはいったいどんなものなのでしょうか?

こちらがCustomer 360 Appsのアプリケーション開発の基本的な考え方です。まず左から、ノーコードでアプリケーションを構築して、ローコードで機能を拡張します。そして、プロコードで複雑な要件にも対応するという流れが基本になります。

今までローコードと言っていましたが、ノーコードというのは本当に設定ベースのアプリケーション構築の手法です。これだけで、データベースのほか、データ操作のためのロジックやUIに必要なソースコードを全部自動生成してくれます。また、ユーザーごとの権限設定やAI、ブロックチェーンなどの最新技術の利用でさえもノーコードで構築できるのが、このAppsです。

ローコードは、先ほどからご説明しているとおり、コードを書かずにロジックを構築して、例えばSalesforceで言えば、処理の自動化などを行う方法です。ほかにも、何らかのイベントに応じて実行されるロジックであったりバッチ処理などのソースコードを自動で生成してくれるというものでもあります。また、ウィザード形式で順番にデータを入力していく画面であったり、ガイダンスの作成もできます。

そして最後のプロコード。Salesforceではノーコードやローコードという言葉に対して、コーディングで開発することをプロコードと言います。プロフェッショナルコーディングの略です。このプロコードを使えばUI/UXを高める画面デザインだったり複雑なデータの操作もできるようになります。

このように、できるだけコーディングの必要性を減らしていくというところでアプリケーション開発を高速化していくのがCustomer 360 Appsの特徴です。

デモで見るローコード開発

それでは、少しデモをお見せします。こちらSalesforceのログインしたあとの画面です。

Salesforceでは業務ごとにアプリケーションを構築できますが、アプリケーションは、左上の「アプリケーションランチャー」を押すと開きます。例えば、営業の方が使う「セールス」アプリケーションであったり、サポートの方が使う「サービスコンソール」などのアプリケーションもあります。

「セールス」アプリケーションを開いてみると、ホーム画面があったり、取引先などのデータを見ることができます。これはリストで表示されるのですが、1つを選択すると詳細が出ます。非常に基本的な画面構成ができあがっているのがおわかりいただけると思います。

それでは、今回はアプリケーションを作ってみます。想定としては、人事部から勤怠管理のアプリケーションがほしいと言われました。今は紙でタイムカードを切っているので、それを電子化したいという要望があったとします。Salesforceはもちろん勤怠管理というアプリケーションを提供しているわけではないので、これから作っていきます。

まずは設定からアプリケーションマネージャを開きます。アプリケーションマネージャはアプリケーションを作るときのスタートポイントになりますが、ここのリストに今使えるすべてのアプリケーションが出ています。これで1つアプリケーションを作ってみましょう。

今回は勤怠管理なのでアプリケーション名も「勤怠管理」としましょう。これでアイコンなどを設定できるのですが、今回はそのままいきます。アプリケーションの見せ方などの設定もありますが、このままどのようなデータを扱うかを入力します。

勤怠管理なので、別にお客様のデータを扱う必要はありません。今回は「タイムカード」というデータを使いましょう。これで選択して、今度は誰がこのアプリケーション使うか聞かれます。勤怠管理は全社員が使うと思うので、全員選択しましょう。これでアプリケーションの構築は完了です。まったくコーディングをせずにアプリケーションが作成できました。

それではアプリケーションを見てみましょう。先ほどのアプリケーションランチャーを開くと、ここに「勤怠管理」というアプリケーションが出ています。開いてみましょう。

そうすると、先ほど選択したタイムカードというデータのタブが出てきます。私は管理者権限で入っているので全員のデータが見えてるんですけれども、通常は自分のデータしか見えないようになります。

営業の方が勤怠を入力するときは、同じようにこの勤怠管理アプリを開いて、ここから新規として、誰のタイムカードなのかを選択したあとに、今日の出勤時間を入れましょう。このような形でデータの導入ができるんですが、例えば9時出社して保存します。そうするとこのようなデータができましたね。

勤怠管理に機能を追加する

アプリケーションとしては基本的な機能もありますし、勤怠管理もできますが、毎朝勤怠管理アプリ開いて入力するのは面倒です。そのため、各部門で使っていたアプリケーションに、それぞれ直接タイムカードを入力できる画面を挿入してみましょう。

この画面に追加した場合は、編集ページ以下のアプリケーションビルダーという機能を使います。Salesforceの各画面は、それぞれコンポーネントと呼ばれる部品を組み合わせて作っています。そのため、どんどん組み合わせを変えることで業務に合った画面を作っていくことができます。

ここに、今回は勤怠を入力するための画面を作ります。ドラッグ&ドロップして保存して戻ると、このように画面ができます。これによって、営業の方であったりほかの方でも、直接勤怠を入力できます。

例えば先ほど9時といいましたが、やはり10時だということで、「次へ」を押すと、タイムカードの更新フローが走って完了となります。そうすると、もちろん先ほどの勤怠管理のほうでリストを見ると、私のデータが出勤時間10に変わってますね。これが、アプリケーション間でデータを共有している、業務間でデータを共有しているという状態になります。

一応この画面を見ておきましょう。先ほどのセールスのこの画面をどのように作ったかです。もちろんこんな画面はSalesforceは提供していないので誰かが作っているんですが、それはSalesforceのフローという機能を使って作っています。フローというのはいわゆるローコード開発です。

このようにいくつかのいろいろな要素を組み合わせることによって、画面とそれによって行うロジックというものを作り出しています。

例えば、今日のタイムカードを取得します。このように出勤時間、退勤時間を入力するコンポーネントでできあがってます。最後に、入力したら今度はレコードを更新して確認画面、タイムカードを更新しましたという確認画面を入れて、画面を作っているわけです。

画面を作ったりレコードを更新するであったり、または画面の遷移みたいなところをコーディングで作っていくと、やはり開発も設計も大変ですし、テストも大変になってきます。こういったものを使えばこんなにシンプルにすぐに小さな機能も追加していくことが可能です。

ただ、まだこれでも時間を入力するのが面倒くさい、ボタンを押したらその時間で打刻してほしいというようなリクエストがある場合はローコードではできないので、開発が必要になります。

今追加したコンポーネントは排除して、「タイムカード登録」という開発で作ったコンポーネントを用意しておきました。これを置くと、このようにすでにプレビューが見えます。「出勤しました」であれば出勤したときに押したら出勤時間を打刻してくれる。「退勤します」というときに退勤ボタンを押すという流れになります。

これで実際に動きを見てみましょう。先ほど出勤したので、今度は退勤を押してみます。退勤を押すと、成功したらこのようにメッセージを出すことができます。そして、もう一度勤怠管理を見てみると、14時44分です、この時間で退勤を打刻することができました。

このようにユーザーのエクスペリエンスを上げていくために開発するということは、いくらローコードを推しているセールスフォース・ドットコムとはいえ、必要な開発であると考えています。

テンプレートを組み合わせてUIを作成

そして、開発したものがどんなものかをお見せすると、SalesforceではLightning Web Componentsと言われる技術を使っています。これはWeb標準のWeb Componentsと技術をもとに作るので、基本的にはテンプレートであったり、基本的にはHTMLとカスタムエレメントの組み合わせでUIを作っていくことになります。

template、lightning-card、このあたりはSalesforceが提供しているcustom componentです。lightning-buttonを見て、そのbutton要素に対してonclickハンドラを使って、handleStartWorkingというJavaScriptの関数を呼び出しています。

それがどこに定義されているかというと、こちらのLightningElementを継承した、TimeCardSubmitterというクラスです。ここでhandleStartWorkingという関数として、その中でupdateStartTimeという関数を呼び出しています。

このupdateStartTimeというのは上でインポートされる関数になるのですが、インポート元はSalesforceのサーバサイドのコントローラです。TimeCardControllerというサーバサイドのコントローラにあるupdateWorkStartTimeメソッドを呼ぶという記述を、このように宣言的に行うことができます。

実際にはTimeCardControllerを見てみると、最初に現在実行中のユーザーと今の日付を取得します。そして、既存のタイムカードがあればそれを取得してきて、なければ作るという処理をします。

このあたりはローコードでやっていた処理をコードに移してあげるだけです。そして出勤時間を設定してタイムカードを更新するというような処理を書いています。

このようにコーディングもかなりすっきりと書けるようになりますし、Lightning Web Componentsという技術もぜひ注目していただければと思います。

これからの開発者に求められる働き方とマインドセット

さて、以上でデモは終わりになりますので、スライドに戻ります。

以上を踏まえて、これからの開発者に求められる働き方とマインドセットについても触れておきます。

左から、より高速なアプリケーション開発を推進していくことが求められています。テクノロジーの進化に合わせてユーザーの期待はやはり上昇し続けています。ビジネスもこれに適応していく必要があります。迅速に最新のテクノロジーをビジネスに活用していくには、同等のスピードでアプリケーションを開発する必要があります。そのためにも、コーディングに頼らずにローコードを選択するということもご理解いただければと思います。

そして、シチズンデベロッパーとの協業です。シチズンデベロッパーと協業して効率的にアプリケーション開発を進めていくことが期待されています。今、慢性化した人材不足からいち早く脱却して、より自由で楽しい開発環境に身を置けるようにしていきたいのではないでしょうか。開発者は自身の作業をいかに減らせるかというところをがんばって、より大きな課題でスキルを発揮することが求められています。

最後が一番重要です。やはりコードは絶対に書くのをやめてはいけません。ローコードローコードと言っていますが、あくまでも開発スピードを上げるための手段でしかありません。やはりテクノロジーの進化を追いかけてより良いものを生み出していくのは開発者の仕事です。

コーディングが適していることとローコードが適していることの両方をよく知っておくことが一番重要になってきます。コーディングとローコードを理解して最速でアプリケーションを構築できる開発者になることが、みなさんのご自身の市場価値を上げていくことにつながると考えています。

Salesforceのプラットフォームとコミュニティ

以上が、Salesforceが考えるこれからのアプリケーション開発と、その中で開発者がどのような働き方になるのか、Salesforceのプラットフォームをどのように活用いただけるのかというところの紹介でありました。

最後に、本日お話しした内容を今の業務であったり今後の業務であったりキャリア形成にご活用いただくためにも、こういったものをご紹介させていただいて終わりにします。

まずコミュニティです。国内のコミュニティと書いていますが、Salesforceのコミュニティは非常に活発に活動してくださっています。そういった活動の中で本日ご紹介した働き方をしてくださっている方はたくさんいらっしゃいますので、ぜひそういった方と交流をしていただいて、ご自身のシーンではどういった働き方ができるのか、どういった開発ができるのかということをご相談いただけるような場になればいいと思います。

そして「Trailhead」というものもあります。Salesforceは教育にも力を入れているので、こういった無料のオンライン形式で学べる学習ツールがあります。もちろんSalesforceの製品について学べるんですけれども、そのほかにも、AWS、モバイルアプリの開発方法、プロジェクトマネジメント、企業のブランディングなどのコンテンツも学べます。ぜひご活用いただければと思います。

最後にオンラインコミュニティです。オフラインでなくオンラインのコミュニティもあります。こちらでSalesforceの最新情報であったりオンラインコミュニティなどを確認していただければ、と思います。また、わからないことを質問すればすぐに返信があるので、ぜひご活用いただければと思います。

このようにSalesforceは社内外から多くの方に支えられて今までも成長してきました。最後に再度感謝の気持ちを述べて終わりにさせていただきたいと思います。どうも、みなさん、今日はありがとうございました。

(会場拍手)