RPAってナンデスカ？

# RPAってナンデスカ？

この質問、RPAを語る上で、意外と核心を突いていると思います。

たとえば、「放置状態のPCに、何かをやらせる」手法・技術などで言えば、

- スクリプト
- マクロ
- 自動化
- バッチ

等、いろいろな用語・方式・技術があります。

その中で、「RPA」の立ち位置は、何なのか、と考えてみたとき。

たとえば、「使用している技術」という観点では、自動化やバッチ処理と、さほど変わりません。
「適用範囲」でも、多くは、スクリプトやマクロと、類似しています。

では、RPAがRPAである所以は、何でしょうか？

最初に、結論を書くと、「既存の技術を、組み合わせて、新しい価値・概念を創造している」のが、前述のような、スクリプト等との違いで、RPAの特徴と、考えられます。

この記事では、その具体的な意味について、記載していこうと思います。

# Robotの定義

RPAは、Robotic Process Automationの略語です。ここは、Blue Prism社（現在はVista社に買収されました）が、定義・提唱した用語なので、異論は出ないと思います。

上記の、文脈として、Processは、業務プロセスを指しています。また、Automationは、自動化です。
これらも、比較的、ITや、業務効率化、あるいは情報工学などの分野では、一般的に使われる用語で、意味の補足は、さほど必要ないと考えます。

問題は、"Robotic"の解釈、つまり、Robotとは、どのようなものを指すのか？です。

「ロボット」というと、日本では、フィクションの「ロボット」の、イメージが強いと思います。
たとえば、鉄腕アトムやドラえもん、ターミネーターのような、人間に近い感情や動作をするものだったり。
マジンガーＺや、ガンダムのように、大型で、人が乗り込み、操縦するものだったり。

実在の機器だと、ルンバのような掃除ロボットや、Pepperのような汎用よりのロボットが、馴染み深いでしょうか？

とはいえ、RPAでのロボットは、ほとんどの場合、前述のような、物理的なロボットではありません。基本的には、ソフトウェアです。
もしかしたら、今後、人間のように画面を見て、キーボードやマウスを操作する、ロボットが作られ、RPAに適用されるかもしれません。ですが、2021年現在、そういう製品や機器は、今のところは販売されていないので、ハードウェアによるRPAの可能性は、いったん無視します。

少し前置きが長くなりましたが、ロボットのイメージとしては、「人間の代理として」動くこと、は共通認識たり得ると思います。
フィクションの例で言えば、思考・行動も含めて代替する、鉄腕アトムやドラえもんのような存在と、あくまで人間が操作するものの、その機能を（主に大きさや、力などで）拡張する、マジンガーZやガンダムのようなパターンがありますが、どちらも、方向性はやや異なるとはいえ、「人の能力を機械により再現・拡張し、（限定的な場合もありますが）人間の代理として、機能している」点で、共通しています。

では、RPAの、ロボットに、その点を置き換えると。これも、RPAを提唱した、Blue Prismの概念として、「デジタルレイバー」という、ピッタリのものがあります。つまり、RPAのいう、ロボットは、デジタル労働者（labor）として、人間の代理で、機能することにあります。

更に深掘りしてみましょう。

今のところ、RPA、というよりは、コンピューターは、本質的には、創造的な業務は、できません。
たとえば、デザインを行うにしても、既存の良いとされたデザインから、学習して、新しく「良いと思われる可能性が高い」デザインを作ることは、できます。
あるいは、乱数での生成で、人間が「これは新しい、良いデザインだ」と、感じるものを、出力する可能性はあります。
しかし、コンピューターが、ゼロから判断し、良いデザインを良いデザインと認識して、出力するような、高度な作業ができるには、もう暫くかかるでしょう。

かわりに、ルールが定められている中での、反復的な操作は、コンピューターにも行えます。むしろ、コンピューターは、人間に比べて、疲労しにくい、デジタルデータにおいては誤認識がない等の、利点があります。

但し、「ルール」も、厳密さや、精度に、ある程度の幅はあり、人間が考える「ルール」と、コンピューターが判断する「ルール」には、差異があります。
わかりやすい例で言えば、文字認識機能である、OCRは、たいていの場合、人間の眼で読み取る精度には、敵いません。あるいは、自然言語（人間が、普通に使う言語）の、意味を解することも、制限があります。
つまり、「文章を読んで、その指示に従う」といったルールは、人間には可能ですが、コンピューターには、簡単にはなし得ません。今のところは。

それでも、単純な計算作業など、コンピューターが理解できる「ルール」であれば、コンピューターは作業を行えます。そして、それを「仮想的な労働者」として、管理できることが、RPAの肝になります。

# Robot（デジタルレイバー）の意味と価値

次に、ロボットを、デジタルレイバーとして管理できることの、意味と価値を、いくつかの観点から、説明します。

## 内部統制

たとえば、自動化の技法とは異なる観点で、内部統制という要素が、組織（企業など）の業務では、発生します。すなわち、仕組み作りや、その遵守の確認・維持です。

前述のように、人間には、自然言語を理解し、従う能力がありますが、コンピューターにはありません。つまり、社内規則などを、文章で作成しても、コンピューターに、それを遵守させることは、できないのです。

また、最初に挙げた、「スクリプト」や「マクロ」、あるいはただの「自動化」や「バッチ」処理にも、それ自体に、内部統制へのサポート機能は、まずありません。

しかし、RPAを実現するソフトウェアは、通常、管理・監視機能を備えています。
そのため、直接的な（自然言語による）内部統制への対応こそ困難にせよ、人間の指揮下で、一元的に管理されることで、**組織のルールに、則ったことを担保したまま、人間と協調して**、業務がこなせる（プロセスを遂行できる）、というメリットがあります。
（裏を返せば、上記のような機能がない「（自称）RPAツール」は、社内ルールの遵守などを考えない社員と同じで、かなり問題があることになります）

つまり、内部統制のプロセス・手順の中に、RPAの存在を、人間と同じレイヤーで、組み込み、検証できることは、RPAの価値となります。
また、プロセスの、変更履歴なども、管理できますので、そちらも併せて、内部統制面での、メリットは、無視できません。


## コスト管理

次に、コスト管理の観点で、考えてみましょう。
人間と、協調動作するパターンもありますが、基本的に、RPAソフトウェアは、（物理的か、仮想上かはともかく）PCを使用します。協調動作するパターンは、1台のPCを、人間が複数人で操作するケースと、似ていると考えられます。
また、特にRPAが得意とする、単純作業においては、業務の成果は、定量化しやすいです。つまり、**RPAを使うか、人間が作業するかの、コスト比較が容易**という点が挙げられます。

人間にとっては、時として、シビアな観点になってしまいますが、「人がやる方が安いか、ロボットにやらせる方が安いか」を、常に確認しながら、運用できる点は、無視できません。

この観点については、スクリプトや、マクロ等でも、ある程度の比較は可能です。但し、それぞれは単機能になるため、1つのPC上で動くロボットに、適宜、事前に定義された複数のプロセスを、業務の状況に応じて処理させて、その上で効率・成果を管理する、といった運用を、支援する機能はありません。
RPAツールは、ダッシュボード等で、ロボットごとの動作状況を管理することで、ロボットの稼働率や、生産性を確認できます。（できないとしたら、これまた、RPAとしては「どんな作業をしたか、きちんと報告できない社員」と同じで、問題を孕んでいることになります）

## プロセスの可視化

基本的に、RPAソフトウェアの、実行単位は、「プロセス」です。だからこそ、Robotic **Process** Automationなのです。（OSの管理する「プロセス」ではありません。ビジネスプロセスです）

一般的に、個々のプロセスには、多数の細かい「操作」や「判断」で成り立ちます。これを、何かしらの方法（多くは、いわゆる「ノーコード」や「ローコード」的な手法）で、RPAでは、ユーザーが定義し、その上で、業務プロセスを遂行させるために、実行します。

つまり、経論すれば、RPAソフトウェアに対する認識で、よくある「既存ソフトウェアやツールを操作するのがRPAソフトウェア」というのも。
導入の、容易さだけでなく。人間が行う、業務プロセスとの整合性や、確認のしやすさや。プロセスの変更時に「人間と同じように」変更を、受け入れられるという、メリットがあります。


# RPAは、簡単ですか？

さて、ここまでで、RPAは、ただの「アプリケーションの操作を、代行するツール」に留まらず、人間と同じように、監査や、業務プロセスの遂行、コスト管理ができる、存在であることを、書いてきました。

よくある、RPAの、セールストークに、「プログラミングより簡単」というのが、あります。

誤解を恐れずに言うなら、**RPAは、プログラミングより、遙かに難しいです。**
それは、プログラミングという、作業は、あくまで「プログラムの作成」であるのに対して、RPAを、理解し、運用するには、業務プロセスの把握と運用、内部監査の対応、コストマネージメント等、様々な要素を、理解する必要があるからです。

「RPAツールを、使って、プロセス（または、プロセスの一部）を、自動化する」という、作業だけに、絞れば、プログラミングより簡単ですが、それは、RPAという概念の、一部でしかありません。

そして、最初に例示した、マクロや、スクリプト等との、比較についても。
ここまでの情報で、そもそも、適用範囲が違うので、意味がないことが、伝わるのではないかと、思います。
単純に、プロセスの自動化を、行うための、工数や精度、技術的な難易度だけで、比較することに、価値はありません。

# RPAは、技術的には目新しいものがない？

はい、ありません。ですが、組み合わせで、新しい価値を、創造しています。
ですので、「RPAは、技術的に新しい要素がない、バズワード」というのは、前半は正しくても、後半は正しくありません。

# 最後に

この記事で書いた、RPAの、あり方・使い方は、**極端に言えば、理想論です。**
実際の運用で、最初から、この全てを網羅して、導入するのは、至難と言って良いと思います。つまり、現実的ではありません。

それは当たり前のことで、多くの技術や、ツールを使う中での、現実は、得てしてそのようなものだと、思っています。
Windowsにしたって、WordやExcelにしたって、機能を全て、完全に使い倒している人というのは、そうそう居ないでしょう。

だからといって、RPAの価値、つまり「ただの自動化ではなく、**デジタルレイバーとして、人間と同じフレームワークに乗せて、運用できる、ソリューションである**」ことを、見失っては、RPAの価値や、どのように使えば良いか、あるいは、何を目指すべきかを、比較したり、語ったりはできません。

どうか、安直に「RPAは自動化のこと」とか、「RPAは業務改善のため」という、全体像の一部しか見ない、比較や宣伝に、流されず。
最終的に「RPAが、提供できる価値と、そのためのコスト」を、理解し。
そのビジョンと、組織の性質や、投じられるコスト、最終的な規模感を、加味して。RPAの導入の要・不要を検討して。
必要なら、製品を比較・検討した上で、その性質も加味しながら、導入していくことが、RPAの価値を、最大限に生み出すことになる点を、お伝えしたいと、思っています。