【RPA】フロー系とリスト系のメリット、デメリット

RPAツール選定の際によく話題になるのが、ロボットへの命令を作っていくユーザインターフェイスのタイプである。これは使用対象者の持つスキルや好み、組み立てる論理の数などによってどれがいいのか変わってくるものかもしれないが、個人的見解からそれぞれの方式を評価してみた。

# ユーザインターフェイス: 3つの方式
ユーザインターフェイスには3つの方式が存在する。

* **フロー系**: フローチャートを組み立てていく方式である。マウス操作でフローチャート部品をドラッグ＆ドロップして論理を組み立てていくことができる。論理の各部品のプロパティに詳細を記載していくことになる。
* **リスト系**: 命令がリスト形式で一覧になっている方式である。こちらもマウス操作でコマンドをドラッグ＆ドロップして論理を組み立てていくことができる。リスト内の文字列はキーボード操作では変更できず、常にダイアログボックスやマウスでの操作となる。
* **コーディング系(リスト系と区別)**: リスト系と見た目が似ているが、あえてリスト系と区別して記載した。こちらは命令をキーボードで記載していく必要がある(入力支援機能はあるものもある)。**コードはキーボード操作で自由にいじれてしまう**。いわゆるプログラマーが行う「コーディング作業」だ。個人的にはこの方式を採用するツールをRPAと呼んでいいのかどうか疑問である。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/8ff2ad87-b4d3-ccd4-8b11-07e76edac18a.png)

それぞれ以下のようなRPAツールが採用している。全体の数としてはフロー系のほうが多いようである。

**フロー系**

* [WinActor (NTT-AT)](https://qiita.com/tags/winactor)
* [Kapow (Kofax RPA)](https://qiita.com/tags/kapow) / [BizRobo! (RPAテクノロジーズ)](https://qiita.com/tags/rpaexpress) / [SynchRoid (ソフトバンク)](https://qiita.com/tags/synchroid)
* [UIPath](https://qiita.com/tags/uipath)
* [BluePrism](https://qiita.com/tags/blueprism)
* NICE
* [Asteria Warp Core](https://qiita.com/tags/asteria)
* Verint RPA

**リスト系**

* [Automation Anywhere](https://qiita.com/tags/automationanywhere)
* [RPA Express (WorkFusion)](https://qiita.com/tags/rpaexpress)
* ipaS (デリバリーコンサルティング)
* AUTOブラウザ名人 (ユーザックシステム)

**コーディング系**

* [Selenium (オープンソース)](https://qiita.com/tags/selenium)
* [Sikuli (オープンソース)](https://qiita.com/tags/sikulix)
* [HeartCore Robo](https://qiita.com/tags/heartcorerobo)

**参考: スクリーンショット**

WinActor (フロー系)
![winactor.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/7ae937ab-e278-de95-9f69-650afa62d880.png)

BizRobo! (フロー系)
![bizRobo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/8343956d-8f9c-de57-f1fb-94680ea33dca.png)

UIPath (フロー系)
![uipath.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/c3730f2e-06ae-ed5c-cce6-8d1d864c4375.jpeg)

BluePrism (フロー系)
![blueprism.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/99744f69-27e1-6b61-71da-3cbf18d8e145.png)

NICE (フロー系)
![nice.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/36d54577-c727-69f9-909e-b90cb592c32d.jpeg)

Asteria Warp Core (フロー系)
![asteria-warp-core.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/e3157e94-eeeb-3dd9-3a38-b215b3069c20.jpeg)

Verint RPA (フロー系)
![verint-rpa.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/4738a634-e749-fd9f-8d67-ffaf9598d3ab.jpeg)


Automation Anywhere (リスト系)
![automation-anywhere.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/920741ed-3ab4-eda9-e5ed-849e61a16dc4.jpeg)

RPA Express (リスト系)
![rpa-express.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/a2663701-0678-d3de-019f-a9485b03ab0b.jpeg)

ipaS (リスト系)
![ipas.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/2951011f-4451-ad28-6ccc-c0c26f9e3da5.jpeg)

Autoブラウザ名人  (リスト系)
![auto-browser-meijin.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485186/90d9e215-0fb1-daf5-5e60-9a87a3ff247a.jpeg)

フロー系もリスト系も表示しているものは本質的には同じである。また、どちらもマウス操作でドラッグ＆ドロップで論理をくみ上げていくところも同じである。ユーザインターフェイスは好みもあるので一概にどちらがいいとは言えないが、フロー系は短めのステップの時に重宝しそうだ。一方、リスト系は長めのステップでも見やすく、実は情報量も詰め込める。個人的には慣れてくるとリスト系のほうが全体を把握しやすくわかりやすく感じる。

## フロー系のメリット・デメリット

### メリット

* 数ステップであれば全体の流れが見えて初心者にも取っつきやすく感じる。
* 分岐がある場合に、視覚的に論理を組み立てて把握することができる。
* スクリーンショットがある場合、部品の中に埋め込んで視覚的に流れを表現できる。


### デメリット

* 10ステップ以上あったり、複雑な分岐が多くあると全体が見渡せない。
* 部品に記載できる情報量が少ない。その部品でどういうことをやっているか全部は表示できず概要しかわからない。

## リスト系のメリット・デメリット

### メリット

* 1行に入る情報量は多い。いろいろなプロパティを行の中に記載できるので何をやっているのかがわかりやすい。
* 条件分岐があっても常に一覧で表示されるので見やすい。
* 10ステップ以上ある長めの論理でも全体が見渡せる。

### デメリット

* デザインにもよるが、一見、コードのようで初心者は取っ付きにくさを感じることがある。
* 条件分岐がどのようになっているかは、書かれていることの細部を見て理解する必要がある場合がある。
* スクリーンショットがある場合はリスト内では一覧されない。


# プロパティへの自由入力方式と選択方式
実は、ユーザインターフェイスを考える上では、フロー系かリスト系かよりも影響が大きいものがある。それは**プロパティに命令をどれだけ自由に入力できるか**である。自由に入力できたほうが良いことであると思うかもしれないが、実はRPAツールを使う対象者になっているノンプログラマーにとっては、**自由度があると何を入力していいのかがわからなくなってしまいかえって使いにくくなってしまう**。入力支援の仕組みがあるものもあるが、キーボードで命令を打ち込んでいかないといけないものは、一通りプログラミング、コーディングを理解しているプログラマーでないと難しい。

どれくらいの自由度があるかは、最終的にはどういう対象者にRPAを作ってもらうかにかかわってくるので、これはよく見て検討したほうが良いと思う。

## 自由入力方式のメリット・デメリット

### メリット

* プログラマーにとってはできることが広がる。制限なくいろいろできる。
* 開発ツールと同等に扱うことが可能。

### デメリット

* 知識のない人は何を入力していいのかわからない。
* 使いこなすのに高度なプログラミングの知識を必要とする。開発ツールと同じになってしまう。
* デバッグが大変になる。エラーが出たときに解決まで時間がかかることが多い。

## 選択方式のメリット・デメリット

### メリット

* 初心者にとっても惑わずに入力が完了できる。
* エラーが出ても見るべきポイントが限られている。初心者にもデバッグがしやすい。

### デメリット

* 選択肢が制限される。
* プログラミングができる人にとってはまどろっこしい、物足りなさを感じる場合がある。

たとえばUIPathは「フロー系・自由入力方式」、Automation Anywhereは「リスト系・選択方式」となり、使い勝手や対象者がだいぶ変わってくる。組織で使うにあたって、どのような対象者が使うのかをよく検討したうえでツールを選んだほうが良いだろう。