RPA導入について


##はじめに 

　以前ユーザ企業の外部ベンダーとしてRPA導入に関わった経験があり、そこで必要だと思ったものや感じたことについて記載していきます。
最終的にはSEとしての経験がない方にも分かりやすく説明をすることを目的にしているので少し説明がくどいかもしれません。
今後も随時RPAに対する意見も新ネタとしてアップしていく予定です。

###RPAとは
　人間によるシステム作業を自動化すること、もしくはその技術。
例えばExcelに一覧化されている、従業員のリストから社員番号を1件ずつ基幹システムに入力していき、
システム表示されている給与や部署などの情報を取得してまたインプットとなるExcelに記載する、など定型的な作業の自動化。
近年の働き方改革や流れの中で業務時間削減のための一つの手法として注目されている。
従来では費用対効果が上がらなかった業務や、システムで実現しようとすると大規模な改修が必要な作業を比較的安価に自動化できることにも注目に値する。
代表的なRPAツールとしては「UiPath」、「Automation Anywhere」,「Blue Prism」、「WinActor」、「BizRobo!（ビズロボ）」 などがある。
動きものを見ていただいた方が早いと思うので、下記に私が扱っていたUiPathで作成したロボが動いている様子をアップしておきます。
[UiPathでExcelデータを弥生会計へ入力](https://www.youtube.com/watch?v=HlpgK1r6NTQ)
###Excelマクロとの違い
　上記のようにと説明をすると「じゃあマクロでいいんじゃないの？」と思われそうなので、下記に違いをアップしておきます。
　私は全くの別物なんじゃないかと思っています。

| 項目　　　      　　　　　    　|       RPA                              |    Excelマクロ                      |
|:-----------------------------:|:--------------------------------------:|:-----------------------------------:|
| 扱えるシステムの範囲　        |  広い（ツールによってはFlashも扱える） |  狭い（Windowsアプリケーションのみ）|
| 大量計算           　　　　　	|  向いていない                          |  向いている                         |
| AI、OCRとの連携            　 |  可                             　　　 |  不可                               |
| ライセンス料                  |  かかる                           　　 |  かからない                         |
| 各作成物の一元管理            |  可能（管理ソフトの利用料金が必要）                |  不可                               |
| 必要とされるコーディング知識  |  少ない                                |  多い                               |
※OCR・・・紙の文書を読み取って電子データ化する技術のこと

マクロを扱える人がRPA構築し、Excelのみの計算で済むところはマクロ、システムとの連携が必要な場合はRPAとの使い分けをすることが望ましい。RPAツールからマクロの起動ができるので一連の業務をRPA＋マクロで代替することも可能。


###RPAを導入する流れ

１．RPAによる自動化対象業務の選定
　定型的でシンプルな業務、かつ作業件数が多いものを選ぶことが望ましい。費用対効果を上げるために、手作業で〇〇分以上かかっているもの、などの基準があるとよい。
・・・といきなり言っても思いつく人が少ないので、既に構築したRPAが動くデモ動画や実際に動いているものを見せてイメージを掴んでもらうことが大事。

２.RPAツールの選定
 扱いやすさ（必要な知識の量など）や、利用料金（ライセンス体系）、サーバ型（中央で一括管理、稼働状況が一目で分かる）なのかデスクトップ型（個々のPCで動く）なのか、自動化候補対象のシステムとの親和性を考慮して決めることになる。

３．ロボの設計
 　実際のロボの動きを決めるときに注意すべき点を述べておく。
　　**注意点①業務の詳細な把握**
　　　業務マニュアルがあっても、書いてあることをそのままロボで自動化していくだけではない。
　　　人はマニュアルに記載されていないことでも必要だと判断して独自に行っている場合がある。
　　　そのため細かい単位で業務を分解していく必要がある。

　　　筆者はマニュアルありの業務の自動化、マニュアルなしの業務の自動化の両方を経験済。
　　　マニュアルなしの業務の場合は、まずは業務概要を聞くことや実際の業務を目の前で見せてもらうことで流れを把握し
　　　それを簡単なマニュアルにまとめて更にヒアリングする、ということを繰り返した。
　　　　
　　　普段業務に携わらない人がロボ設計・開発を担当する場合、ユーザ側はここでも時間を使うことになるため、
　　「マニュアルや業務概要さえ渡せば勝手にいい感じのロボができてくる」とは考えない方がいいです。

　　**注意点②全パターンを自動化しようとしないこと**
　　全部の処理を自動化するのは、かけたコストに効果が見合わない。一定のパターンについては自動化せず手作業のままにしておく覚悟も
　　必要である。
　　例えば100人のお客様の申請受付をやる場合、2-3パターンくらいは特殊な対応が出てくるものである。
　　それらを無理やり自動化することにパワーをかけすぎるべきではない。
　
　　**注意点③業務の変更が必要になる**
　　ロボットは電子データしか扱えないため、人手かツールを使ってロボットが扱える形にデータを加工してあげること、が必要となる。
　　または処理効率化のために、業務手順の組み換えが必要となる。また複数人で行っており、かつやり方がバラバラになっている場合は
　　RPA化を機に統一することが欠かせない。
　　場合によっては、「この業務は本当に必要なのか？」という観点から業務そのものを無くしてしまうことや、チーム間の業務分担を変える
　　こともある。
　　業務変更のときには決定権者のバックアップが欠かせないため、そういった人を巻き込むことも大事となる。


###ロボ設計書の記載
後からどのようなロボを作成したか分かるようにするため、そして関係者との認識合わせをするためロボの設計書を記載する。筆者が思うに必要な要素は下記の通り。(アジャイル型開発の場合は先にロボ作成し、後付けで設計書を作成することもあります）
・自動化対象の業務概要
・ロボで自動化する前からロボ化後の業務の変更点
・ロボで利用するシステム
・業務フローチャート
・RPAでどこの画面に何を入力しているか、のキャプチャ付きの説明
・ロボの処理結果の確認の仕方

###ロボ開発
必要な処理を組み合わせて、挙動を確認しながら一連の業務の流れを作成していく。
実際の開発のためのTipsはこのQiitaにも沢山あるのでそちらをご参照いただければ、と思います。
私自身は設定系の数値は外に切り出してExcelで管理した方がいいと思っています。
テストについては小さく作ってテストし、また単位を大きくしてテストする、を続けていくことを意識していました。
このテストですが、ユーザ業務パターンを意識する、やデータなしなどの異常系を考えてあげる必要があります。

###稼働テスト、改良
開発に使ったPCと上手く動かない可能性もあるので、待機時間などの細やかな調整が必要がある。
また実際思っていた挙動と違った場合や、処理結果の見せ方を変えてほしい場合などは修正して再度動かす、ことになる。
この段階でロボの扱いについてもユーザに教えることになる。
始めから100点は目指さず、都度改良の意識で改良していくと、ロボがやっと本当の業務で使われることになる。自分たちでロボを育てていくイメージでいるとよい。

###保守、運用フェイズ
ロボで自動化対象業務に変更が発生した場合、ロボで操作するシステムに変更が発生した場合などは改修が必要となる。
またロボが異常終了した場合も改修が必要となるときがある。外部ベンダーに保守フェイズを任せる場合は、ユーザのＩＴリテラシーに応じて
保守契約を結ぶことになる。

以上です。
もちろん気をつけるべきことは、これだけじゃないので今後も記事アップしていきます。
初投稿です。読みました、だけでも何でもいいのでコメントをいただけると筆者がものすごーく喜びます:laughing: