RPAツールを使う前に考えたいこと

このブログは「RPA（ロボティック・プロセス・オートメーション） Advent Calendar 2023」の１日目 の記事です。<br>
[≫ 明日の記事はこちら](https://note.com/kerdy/n/nab30f504ae94 "RPA Advent Calendar 2023 ２日目の記事")

https://qiita.com/advent-calendar/2023/robotic_process_automation


# 最近 自動化について実感した大切なこと
私はRPAに携わって現時点で４年以上経ちます。
いろいろな自動化の案件を担当させていただきましたが、最近実感したことを情報共有したく記事にすることにしました。

:::note info
技術をビジネスに適用するときには2つのルールに目を向けよう。
**第一に、効率が良いオペレーションを自動化すると、さらに効率が上がるということだ。
第二に、非効率的なォペレーションを自動化すると、さらに非効率になるということだ。**
:::

これはMicrosoft社創業者ビル・ゲイツの言葉なのですが、案件を通じてこの名言のとおりだと思うことを何度か体験しました。
RPAツールを利用しての自動化で起こちがちな内容ですので、皆様の今年の自動化の振り返りにご活用いただければと思います。


# 非効率な処理の自動化は何故ダメなのか
今年RPAツールを利用しての自動化でよくあった案件が、
**Excelの表のデータをシステムに入力＆登録**して欲しいという内容でした。<br>
ここだけ聞くと、よくある自動化の依頼内容ですし、
何が「非効率な処理」なのか疑問に思われるかもしれません。
中には上記のような処理を自動化した経験がある方も多いかもしれません。<br>
さて、ここで少し考えてみましょう。
上記の案件で自動化が難しい部分はどこだと思われますか？<br>
「システムに入力＆登録」については、意外と難しくない場合が多いと思います。
RPAツールにもよりますが、だいたい要素の情報がツールの機能で取得できることができるので、なんとか自動化することが可能です。<br>
この問いに対する回答は「Excelの表のデータ」からのデータ取得です。
では何故こんな回答になるのか？
それは、Excelの表が<font color="Orange">**人間が見ることを想定**</font>した形式であることが多いからです。<br>
言い換えると、<font color="Red">**RPAで自動化するには非効率なデータの状態**</font> であることが、
ひいてはRPAのロボットの非効率な作成方法をとらざるを得なくなり、
RPAのロボットの保守管理も非効率になる、ということです。

## １．具体的にはどんな状態なのか？
では一体、どんな表が「RPAで自動化するには非効率なデータの状態」なのか？
以下の図に示してみました。<br>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/aba96368-6f71-8cac-cc9b-2dfa53005b05.png)
<br>上記の表の場合は、元データを活用するためには赤枠の情報を取得しなければなりません。
実際には、その他の情報（支店名や商品名や売上月など）も取得する必要がありますが、
今回は赤枠の部分のデータを順番に取得する手順を考えてみました。<br>
取得手順を文章化したものが下図の左側になります。<br>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/defd8ce4-2f60-474d-a5de-a3d51c7470a7.png)
<br>見ていただいても分かるように、かなり複雑なロボット作成になりそうだということが想像できるかと思います。
右側の表は、左側の表をデータベース形式で表現した内容になります。
こちらの方が単純なロボット作成になりそうと実感いただけるかと思います。<br>
さらに実感いただけるよう、上の処理手順をフロー図にまとめたものが下図になります。<br>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/20b20bbe-0b79-fcdc-4b30-8bce7aef0373.png)
<br>上図でも分かるように、左側のフロー図は繰返し処理や分岐を組合わせたり、判断することが多い処理になっています。一方右側のフロー図は、繰返し処理のみで判断することが少ない処理になります。<br>
これをRPAツールでロボットを作って処理させた場合は、当然右のフロー図の方が判断することが少ないぶん早く終わります。

## ２．非効率な処理の自動化でどんな問題が起きるのか？
ただ、非効率な処理を考え直すのは、かなり面倒な作業だと思います。
では、**よく検討せずとりあえず非効率な処理を自動化した場合**、何が起きるか。
自動化を内製化で挑戦した会社で起こった課題をご紹介します。<br>
まず、処理が複雑すぎて逆に「**属人化**」が起きました。
ロボットの処理内容を修正する場合に、適切なコメントやドキュメント類がないので修正者がさじを投げ、結局は作成担当者やSIerに修正依頼をされるパターンが多かったように思います。<br>
次に、複雑な処理でエラーが頻発すると「**保守作業の負担増**」が起きました。
作成したロボットの処理内容を読み解くにも時間がかかり、保守作業に時間を取られることで他の業務に支障が出て困っているという話もよく聞きました。<br>
最後に、上記体験が積み重なると「**RPAに対する疑念**」が出てくることがありました。
結局「属人化」や「保守の負担」が増えれば、RPAに関わりたくないと思う人も増え、結局RPAは必要なのか？という疑念につながります。<br>

## ３．非効率な処理の自動化は本当にダメなのか？
しかし、**現実の業務はそう単純ではない**ので、処理を効率化できないものは確かにあります。<br>
私が経験した案件でも、いろんなご提案もして時間をかけて検討した結果、非効率な処理の状態でも自動化するしかないという結論が出た場合もあります。
そしてその業務を自動化したこともあります。
もちろんその結論に至った経緯を関係者が十分理解されているので、業務が滞ることが無いよう、今後起きうる課題に対する対策を十分にとることができました。<br>
* 属人化しないようドキュメントを整備して引き継ぎを十分に行う
* 保守に時間がかからないよう運用ルールを決めておく
* エラーが出た場合の担当者を決めたり予算を確保して外部に修正を委託する
* 作成時に困ったときに相談できる部署を作ったりポータルサイトを準備しておく
* 使用するアプリケーションの機能を調査して最大限活用する
* RPAの必要性を再認識してもらうためのDX人材を育てる　　　…… etc.

これらの対策をとっているお客様は、自動化がずいぶん進んでいると感じています。
またサポート対応にお伺いしたときも、ヒアリングが短く済み十分な作業時間が確保できるので、結果的に効率のいいロボットを作成することができると実感できることも多いです。<br>
なのでこの課題に対する回答は「十分に準備すれば解決できる」と言えます。


# まとめ － 自動化する前に「入力」を意識しよう －
ここまでの内容で、**RPAで自動化するには非効率な状態だと、その後の作成や保守も非効率になる**ということが実感いただけたかと思います。<br>
これらの経験を通じて、
自動化の初手でしっかり行うべき作業は**業務や運用ルールの見直し**
であることを再認識しました。<br>
その中でも特に大切なのが、処理を始める前の「<font color="Red">**入力**</font>」だと感じています。
なぜなら業務改善の最終結果が、INPUTに反映されるからです。<br>
今回の記事でのINPUTとは、RPAが処理するデータにあたります。
INPUTを見直すには、以下の点に留意する必要があります。

* データの構造を整理　　　 … RPAがデータを効率的に取得することができる。
* データの整合性をチェック … データの不整合によるエラーを防ぐことができる。
* データの意味の明確化　　 … RPAが正しく処理を行うことができる。

データの整備については、以下の総務省のサイトが参考になります。
参考：[統計表における機械判読可能なデータ作成に関する表記方法](https://www.soumu.go.jp/main_content/000723626.pdf "データ作成のルールの参考にどうぞ！")（[総務省](https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html "総務省のサイト") 2020/12/18）

全ての業務を見直せない場合でも、INPUTの部分を見直せばかなりRPAの効率化やエラー頻度を減らすことができます。

この記事が、さらなる改善の機会になれば幸いです。
最後までお読みいただき、ありがとうございました。


# ＜参考＞効率のいい自動化を実現するために
業務改善するために取るべき具体的なやはり自分で見つけていくしかありません。
ただ、見つけるためのヒントは色々ありますので、以下にご紹介いたします。<br>
まずは業務改善に用いられるフレームワーク「ECRS(イクルス)」について考えてみましょう。

:::note info
**E**　Eliminate（排除する）
**C**　Combine（組み合わせる）
**R**　Rearrange（再配置する）
**S**　Simplify（簡素化する）
:::

１番目に行う業務改善は「業務を止める」ことです。
作業自体が無くなれば、別の必要な業務に時間を充てることができます。<br>
２番目に行う業務改善は「業務を組み合わせる」ことです。
作業まとめることでかかる工数やコストを減らせる可能性が出てきます。<br>
３番目に行う業務改善は「業務を再配置する」ことです。
人員を最適な場所に再配置したり、業務の手順を見直すことで改善することができます。<br>
４番目に行う業務改善は「業務を簡素化する」ことです。
上記の方法で改善できなかった業務を、なるべく簡単な手順に変えることで改善を目指します。<br>
しかし、こうしたフレームワークを使用する前に、以下の作業を行う必要があります。

:::note warn
現状の棚卸　…　まずは情報がないと分析ができない
課題の分析　…　何が問題で解決の優先順位をどうするかを決める
対策の立案　◀　ここで**ＥＣＲＳ**を使用する
対策の試行　…　対策を実行して情報収集し次回の対策のためのフィードバックをする
:::

上記作業をさらに具体的に行うのであれば、以下のYes/Noチャートを基に現状の棚卸と課題の分析を実行してみると分かりやすいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/b7cb4797-da52-9749-97ac-443e253924e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/61981081-77fe-2758-6a39-54adaa44408c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646663/c240eccc-1082-cf69-71cb-141000366a97.png)

引用：[**RPAって何？今年も考えてみる～まだまだ誤解ばかり～**](https://note.com/charadenmitz/n/nf8648e2878c2 "noteの記事に移動")（2021/12/01）

上記のYes/Noチャートは [RPACommunity](https://rpacommunity.connpass.com/ "イベント参加のサイト") の主催のMitzさんが提示しているものです。
RPACommunityでは業務改善のための様々なヒントも公開していますので、ここから情報を得ることも可能です。<br>