"一度にいろんなことをやらない"って?
具体例を交えたほうがわかりやすいと思いますので、次のような業務をRPAで対応するケースで考えます。
(想定ケース)
Excelに記載されているデータをWEBフォームに入力して登録する業務を自動化したい。
ただし、いくつかの項目は編集して入力する必要がある(例えば、電話番号のハイフンを抜く、など)。
こういったケースの場合、大きく3つの処理に分けることができます。
- Excelデータの読み込み
- 入力データの編集
- WEBフォームへの入力
この場合、"一度にいろんなことをやらない"とは、WEBフォームへの入力処理を行う領域では、Excelの読み込みやデータの編集を行わず、入力処理のみを実装するということです。
このように、ある処理を行う領域では、その処理のみを実装するという意識を持つことが、わかりやすいフローを作成するためには重要です。
具体的なフロー例
"一度にいろんなことをやらない"を意識しなかった例と意識した例はそれぞれ次のようになります。
ここでは、RPAツールとしてよく使われている"UiPath"でフローを作成しました。
意識しなかったフロー
単純に処理をRPA化させた際に作りがちなフローで、一つのブロックの中にすべての処理が実装された形になっています。
ひとつのブロックに実装されているため、折りたたんで表示した際に全体像を掴むことができません。
またすべて展開した場合でも、階層が深くなりがちで処理が込み入ってくるほど複雑さが増していきます。
意識したフロー
"一度にいろんなことをやらない"を意識したフローは、次のような形になります。
折りたたんだ際には、各処理がそれぞれの領域で分かれているため、全体の処理の流れが掴みやすくなります。
また、展開した際も階層が浅くなり、どこでどんな処理を行っているかが理解しやすくなります。
実装する際も、それぞれの担当領域が分かれているため、"一度に考えないといけないことが少なくなる"、"ひとつのことに専念できる"というのもメリットのひとつだと感じています。
一方でデメリットとしては、"重複する処理が発生しやすく、処理効率が低下する可能性がある"ということです。
今回の例でいえば、意識しなかったフローではExcelデータの行ループが1回だけです。
しかし、意識したフローではExcel(データテーブル)の行ループが2回になっています。
そのため、ループを2回行っている分だけ意識したフローのほうが処理に時間がかかるでしょう。
この点に関しては、「可読性と処理効率のどちらかを取るか?」を天秤にかけて判断します。
Excelにどれだけのデータがあるのかを考慮したうえで、求められている要件(処理時間など)を満たしているのであれば、むやみに処理効率を追い求めるよりも、今後の運用・保守を見据えて可読性を取るのが良いと考えています。