こんにちは、わたあめです。近年注目されているRPA(Robotic Process Automation)というツール。
- 定型業務を自動化
- 人的ミスの現象
- 人件費コストの削減
良い事がいっぱいですよね!もちろん、RPAの導入効果は高いと思います。メリットも多いのは承知の上で、今回は敢えてデメリットを挙げていきます。
今回は、RPAツールを利用したことのあるシステムエンジニア夫のもちおの感想をまとめてみました。それでは、いってみましょう。
デメリット3選
1.イレギュラー処理に弱い
画面上のマウス操作の処理、意外とイレギュラーな画面遷移が発生します。
- Windows Updateやウイルスバスターなどの更新のお知らせ通知のポップアップ
- WEBサイトの更新でレイアウトが変わってしまう
- マウスオーバー(マウスが上に載った時)の挙動
こういった場合、RPAのシナリオ処理に組み込まれてないため止まってしまいます。変更が発生した場合に都度対応する必要があり、イレギュラーに手がかかる印象は強いです。
2.原因調査に時間がかかる
シナリオ実行中に"なぜ途中で止まったのか"が原因究明に時間がかかりました。(プログラムのデバッグと比較しての話ですが。)
RPAでは、待機時間を多めに考慮することが多いです。例えば、ロード時間等の停止時間を考慮して作成するときです。WEBブラウザの画面でロード時間を考慮する場合、表示時間が早いときもあれば遅いときもありますよね。通常シナリオを作成するときには、遅い方+バッファを考慮して待機時間を設定します。待機時間に余裕を持たせるので、一回一回の実行に時間がかかり、シナリオの動作確認時に地味に時間がかかるなと感じました。
また、先に述べたイレギュラーが発生して止まることもあり、シナリオが悪いのか、たまたまイレギュラーで停止したのかの判断もなかなか切り分けが難しかったりしました。ズバリの原因にたどり着くに意外と時間がかかりました。
3.結局、システムエンジニアが必要になる可能性がある
RPAではプログラミングの知識は不要!ということも謳われていますよね。もちろん間違いではないと思います。プログラミング言語でいちからプルグラム作成するより、感覚的・視覚的に分かりやすいと思います。
ただ、複雑な処理を行う場合は、条件分岐や繰り返し処理などのロジックを組む知識・経験が必要だなと感じました。
もし、シナリオが複雑で組むのが難しいできない場合、思った通りに動作しない場合は、結局外注することも多いみたいです。もちろんプログラムをスクラッチ開発するよりも費用は抑えられます。ですが、自分たちで完結できると思って導入すると余計に費用がかかる可能性があるという事を念頭に置いておいた方が良いです。
RPAデメリットの解決案(個人的な考え)
デメリットを3つ挙げましたがそれぞれのデメリットに対して、こうしたら良いのでは?という解決案(というか思い)を述べます。以下番号は上記デメリットそれぞれに対応しています。
1.イレギュラーでシナリオ停止は「あり得る」と思う
心持ちの話になってしまって恐縮ですが、プログラムは完璧にこなさないと「チッ」という思いが出てきてしまいますよね。
でも、RPAは状況が変わると(ポップアップが出てきたり、画面構成が変わったり)戸惑ってしまうと理解・周りに説明しています。人と同じでいつもと違うと時間がかかってしまうということを念頭においておくと良いかなと。
2.原因調査に時間がかかるのはある程度は慣れる
原因調査に時間がかかると書きましたが、RPAを使い始めて結構経ってくると、何でシナリオが停止してしまったのか、パターンができて原因究明の時間も短くなりました。
さらに、RPAシナリオを考えるときにも「ここには待機時間を入れておいた方が安心かな」という、エラーを未然に防ぐということも少しだけできるようになりました。
3.担当者にシナリオを作ってもらい、教える立場とテンプレシナリオを作成する
RPA導入時、「こういうシナリオ作ってください」という依頼がよくきました。初めの頃はシナリオ作成していたのですが、メンテナンスが追いつかないという事が起こり始めました。
シナリオはシステムエンジニアが作るものという意識を改めてもらい、担当者自身が自分の解決したい業務のシナリオを作るように促しました。
もちろん、「はい、やってください」では周りもとっかかりにくいので、「教えるので、隣にいますので」ということを伝えシナリオ作成を依頼しています。そうすることで、トラブル時に担当者自身が対処できるように。
もうひとつのポイントとしては、最初から最後までシナリオで実現しようとしないこと。RPAを導入すれば勝手に業務が解決するんでしょ!と夢見がちなことになりますが、人間の手作業と自動化業務を組み合わせて、小さな単位で業務をRPAに任せるということが重要だったなと思います。
シナリオの単位が小さければ、小さいほど初心者にも短時間で出来上がります。そこから広げていけば良いのかなと思ったりです。まずはハードル低いところから。
あと、普及に役立つのはシナリオのテンプレを作成することです。モジュール的な扱いで、「メールを送信する」「共通システムにログインする」など、使い回しがしやすい業務についてはテンプレ化することで普及率を高めています。(少しずつですが)
RPA大きなメリットだと思うこと
おまけで、メリットについても少し話したいです。SE視点では、プログラム言語で表現するのが難しい処理の実現には大きなメリットだと思っています。
具体的に思いつくのは、アプリケーションを縦断するような処理はプログラミング言語で表現するのが難しい処理です。それを無理やりGUI側から実行できるのが素晴らしい。
例えば、メールの内容をシステムに入力するような処理。メーラーと独自システム、違うアプリケーションの連携を行うプログラムを作成するのは結構ハードルが高いんです。それをGUIの操作から、プログラムを作成するより簡単に処理を組むことができるのは非常に助かりました。
RPA導入・普及をやってみて思うこと
RPAって導入すれば、勝手に業務が終わって最高!!みたいな未来をみがち(私もでした)でしたが、一気にはそれは無理なんだなと思いました。
業務を担ってくれる担当者ではなく、単純作業の一部を少しだけ手伝ってくれるアシスタント、教えたこと以外はできないスペックの人材くらいの認識で付き合うのが良いのだと思いました。
さいごに
誰でも簡単に処理を自動実行できるのがRPAという印象でしたが、意外と壁があるなという印象もあります。導入時は自動化したい処理がRPAツールによる自動化に向いているかどうかを十分に検討した方が良さそうです。
わたあめは、RPAという言葉を最近知りました(遅)色々調べた結果、Pythonでシナリオを書きました。なんだかんだコードっぽいところに戻ってしまう私です。