RPAに自動化を任せるとなぜ簡単になるのか

2020/10/26 コラム



 パソコンの操作を自動化するには、RPA (Robotic Process Automation:ロボティック・プロセス・オートメーション) の他にもExcelマクロ、PythonPower Shell等、昔から様々なツールが存在する。RPAで自動化するとなぜ自動化が簡単になるのか、いろいろなことが言われているが、細かい機能比較ではなく一歩引いたところから俯瞰して考えてみることにする。

 

RPAとノーコード/ローコード開発ツールの違いは?

RPAと無料自動化ツールの違いは?

RPAとマクロ/VBAの違いは?

 

考慮するポイントは主に3

 ツールによる自動化の比較を行う際に、よく比べられがちなのは「自動化ロジックを作成する開発ツールの性能比較」である。ただし、いまなぜ現場で業務の自動化が求められているのかということを考えたときに、開発ツールの比較をするだけでは不十分である。そもそも現場の自動化を行う際に最も大変なのは、自動化業務を選定するための業務整理や社内調整・説明、および体制の構築であり、これに全体の工数の約8割がかかると言われている。この部分に大きくかかわってくるのが、プロジェクト管理や業務整理の補助機能であり、これらの性能もとても重要になってくる。

 

ロジックを作成する観点から~プラットフォームと独立した抽象度の高い命令方法

 まずは世間で一番よく引き合いに出される開発ツールの比較から入ろう。一般によく言われるのはプログラミングができなくてもRPAだと構築が可能で、見た目がコーディングスタイルではなくてフローチャート形式でわかりやすいからだ、ということである。

 この説明は間違えではない。が、少し表面的である。たしかに初心者にとってプログラミングのコーディングスタイルは取っつきやすいものではない。しかし、単純に一行のコードがフローチャートの一つのステップになっただけでは、最初の見た目が違うだけで、本質的にやっていることは同じである。つまり、プログラミングスキルがいらないことにはならない。

 たとえば、Excelリストの連絡先にメールを送る仕組みを考えてみる。Automation Anywhereではとても簡単に実装でき、ループとメール送信アクションの挿入でほぼ完成してしまう。ものの4分もあれば実装可能だ。一方、プログラミング言語 (VBAの例) では、ループとメール送信コマンドを実装するのに結構時間がかかるのと間違えを犯しやすい。ループでは、たとえば”N=N+1”といったカウンターを追加するコマンド、読み出した値のアドレスを変数で指定するところにバグが入り込みやすい。メール送信コマンドはOutlookExcelから呼び出すために40行くらいのコードを書いたり、オブジェクトの参照設定を行う必要がある。

 メール送信コマンドでは、プログラミング言語で40行分のコードがフローチャートのひとつのステップに収まっている。ループについても3行のコードがひとつのステップに収まっている。内部では同じことをやっているが、RPAの方ではそれが隠蔽されていて 抽象度が高くなっているのである。別の言い方をすると、難しい部分が「部品化」されているとも言える。

 「抽象度が高い指示を出す」とは、人間が通常の業務指示を出すように、ひとつひとつの処理とはかけ離れた指示をすることである。たとえば「スライドをPowerPointで作ってPDFにしてメールで送信して」という作業をひとつひとつ指示するのではなく「~への提案進めておいて!」といった具合である。コンピュータとは、そもそも本来は「XXX番地のメモリに1を書き込む」とか、「レジスタAとレジスタBに入っている値を掛け算する」といった計算機的な命令しか受け付けない。これをオペレーティングシステムや高級プログラミング言語など、いくつかのレイヤーを経て抽象化の度合いが高く人間でも処理の意味が理解できる粒度で命令ができるようになっている。

 さらにはプログラマーではなく現場のノンテクな従業員でも理解できるレベルになるには、もうレイヤー必要で、先ほどのRPAのメール送信コマンド例のように「40行くらいのコードを書く替わりに1つのメール送信コマンドで命令できる」ことが求められる。このようなレベルの実装が典型的な作業に対してどの程度用意されているかでRPAツールとしての難易度が変わってくる。

 

 そして世間一般のRPA x AIに対する期待値はもっと抽象度が高く、最終的には「~への提案進めておいて!」とか「あれやっておいて!」のレベルで求められているかもしれない。

 

管理をする観点から~大規模展開でもプロジェクト管理できるツール群

 そして、RPA導入前には見落としがちなのが、RPAプロジェクト自体を管理する工数である。自分のデスクトップPCだけで自動化をするのであれば不要であるが、企業として成果を出すためには多くの組織でRPAを採用して業務効率化を進めるプロジェクトの立ち上げが必須となる。その時にRPAツールで作成したロボットの管理をする仕組みがないと、後々破綻してしまうだろう。

 

野良ロボットを発生させないために気を付けること

 

 RPAプロジェクトの組織内での立ち上げには、さまざまな調整事と準備が必要となる。そして、それを支えるITインフラである情報共有ツールや管理ツールが必要となってくる。

 RPAポータルなどの情報共有ツールは、組織で使われているグループウェアがあるであろうから、それを使うことで十分賄うことができる。一方、管理ツールはRPAに特化した専用の仕組みが必要であり、これを持っているのが「サーバ型RPA」といわれるタイプのRPAツールである。

 管理ツールには、作成されたロボットを保存しておくリポジトリ、ドラフト/正式版の別を分ける仕組み、バージョン管理、アクセス権限管理、実行するためのデバイスやキュー・プールの管理、スケジュール管理、パスワードの安全な保存の仕組み、実行ログ取得の仕組み、など多岐にわたる。RPAツールを選択する際には、ここが開発ツールと並んでもうひとつの重要な比較ポイントとなってくることを忘れてはならない。

 

RPAの運用にセキュリティ機能は必須

 

 管理ツールがないと、ロボットの動作を人間が手作業で管理しなければならなくならず、ロボットの動作を人間がExcelに手作業でまとめて報告する業務を行っていたといった本末転倒なことが発生することもあるので、注意が必要である。

 

業務整理をする観点から~現場業務を紐解く補助ツール

 また、RPAの展開を進めていくと、そのうちにRPAを適用できる業務が上がってこなくなる現象が起こる。RPA推進チームは現場にヒアリングをかけるわけであるが、その際に人伝の会話だけで行っていると、不正確な情報しか出てこなかったり、何が本質的な問題なのかがわからなくなることがある。

 そのようなときに役立つのが、現場ユーザーが行っている操作を録画して分析するツール (プロセスディスカバリ・タスクマイニング)や、使っている業務システムのログを収集して分析するツール (プロセスマイニング)を使って、生のデータを入手する方法である。入手した生データにAIの技術を使うことにより、より効率化出来るポイントを割り出したり、自動的にロボットを作成したりすることもできるようになる。

 

RPA対象業務の洗い出しをする「プロセスマイニング」と「プロセスディスカバリ」の違い

 

 このような補助ツールが使えるかどうかも、RPAを選択するうえでの検討事項となってくるだろう。

 

まとめ

 以上、見てきたように、自動化したい業務が「抽象度が高く簡単になっている」しくみを持つRPAの開発ツール、RPAプロジェクトを支えるインフラとなるRPA管理ツール、そして効率化すべき業務自体を見つけて効率化を行う支援をする補助ツール、という3つのアイテムをうまく導入することで、自動化プロジェクトがより進めやすくなるはずである。RPA導入を検討する際には、気に留めておくことをお勧めする。