こんにちは。「忘れないで、ギター侍」と申します。
拙者は現在、タイトルにある「RPA」というものと日々向き合っております。
今回は「RPAって何?何ができるの?」をメインに体験や見解を交えながら、ロボ君へのインタビュー風に書いてみたいと思います。
■RPAとは
こんにちは!今日はよろしくね!
ロボ君、今日はよろしくね!
さっそくですが、RPAって何か教えてください!
Robotic Process Automation(ロボティック プロセス オートメーション)の略称だよ。
意訳すると、「人間がコンピュータ上で行っている定型作業を、ロボットで自動化すること」になるかな!
例えば、普段パソコンを使うときに何かを毎回同じ流れで進めることってないかな?
ある!あるよ!出勤データをまとめたり、会社の経費精算システムに当月の諸経費を登録するのは毎月のことだったりするし。
そうだよね。そういうことを僕に任せてくれれば、ちゃちゃっと解決できたりするよ!画面を触ってあれこれするような処理をそのまま僕に任せることができるんだ。
そういうのって単純作業というか単調だったりするんだけど、ミスできないものだから意外と集中力が必要だったりで地味だけど大変なんだよね、、、
僕は疲れ知らずで、決まったルールに沿って仕事をやり遂げられるよ。だから、ケアレスミスのようなものは無縁になる可能性もあるね。※ただ、予期しないエラーで止まってしまうこともあるんだ。そればかりは僕にもつきものなので、絶対ではないよ。
疲れ知らずというのはとんでもないパワーワードだね。僕らは食事・休憩・睡眠がないと働けないよ。
僕は人間のように意思や実体があるわけではないから、仮想知的労働者(デジタルレイバー)なんて言われたりもするよ。
RPAを使った仕事の自動化が注目されるのもわかる気がするよ!
■何に向いているか
じゃあロボ君、次は君がどういったことが得意なのか教えてもらえないかな。
そうだね、一定のルールに基づいて処理が進むものであることというのはポイントかな。例えば、毎回決まったファイルを開いて別のファイルに転記することができたり、とあるシステムからデータをダウンロードしたり、毎日決まった内容のメールを送信したりする場合など、一定の規則性があれば向いている可能性があるかな。
なるほど。規則性やルール(その場で判断するのではなく、常に決まったほうへ処理が流れる)というのが大切なんだね。他にどんなことができるの?
結構いろいろできるんだけど、ほかに取りかかりやすいもので言えば、「目の前の作業をそのままレコーディング機能を使って自動化」したり「データスクレイピング機能を使ってWebページ上にある表形式のデータなどを取得する」なんかがあるかな。
あー!何回も思ったことあるよ!「このWebページの表や情報がまるまる欲しい!」とか。これページまるっと引っこ抜いて使えないかな?とか。これは便利そうだね!
■個人的に便利だと思う機能
先ほどロボ君が紹介した「データスクレイピング機能を使ってWebページ上にある表形式のデータなどを取得する」ですが、これがなかなかに便利ではないかと思います。そのサイトにダウンロード機能がなくても、Webページの表やデータをファイルに落とし込むことができ(一定の規則性があるページが前提)、使い方によってはすごく便利なのでは?と感じています!例えば株や為替のチャートを自動で表にまとめることもできると思います。
少しでも興味のわいた方はよければ開発ツールをダウンロードしてみてください。(本稿ではUipath社の開発ツールを前提に記事を書いています。Studio – RPAによる自動化をすばやくデザイン | UiPath ←無料トライアル版があります)
また、RPAのことがよくわからなくても、レコーディング機能を使うとまるっと自動化できる場合もありますので、先にレコーディング機能によって自動で作成したワークフローを見ながら知見を深めるというやり方もアリです!
■ロボット作成時のイメージ
じゃあ次は、実際に作る様子を少し聞いてみたいな。
じゃあおおまかに説明してみるけど、その前に。フローチャートって聞いたことある?
それはもちろん。IT業界に限らずとも、仕事をどうやって進めるのかまとまった手順書なんかも同じようなものだよね。何をいつ、どのように、どうするということが一連の流れになって表現されているものというか。
そうそう。それがないと僕たちロボットはどう動けばいいかわからないんだ。それがレールになって、僕らはその上を走ってゴールに向かうんだよ。↓は実際の開発ツールの画面を貼ってみたよ。
Startって書いてあるところが処理の開始地点だね。その後ろにどんどん処理を足して作っていくんだ。ドラッグアンドドロップで実現したい処理(アクティビティ)を置いていく感じだよ。「ファイルを読み込む」とか「ファイルに書き込む」といった単位でアクティビティが用意されているんだ。それを組み合わせて作っていくことになるよ。
結構簡単そうに聞こえはするけど、プログラミング(コーディング)は要らないの?
うーん、まったく要らないということではないかな。言ってみればアクティビティが「ファイルに書き込む」というコードを代筆してくれているようなイメージなんだ。だから、あまり難しいプログラミング知識はなくてもいいかもしれないね。変数だったり、データテーブル(詳細説明はここでは割愛)の概念がわかっていれば、CSVファイルやエクセルにデータを書きだしたりもできるので、そういうところから始めてもいいと思うよ。
ローコード(コーディングが少ない)というのが特徴なんだね。でも変数とかの知識はIT業界なら必須だから、初めて勉強する人でもとっつきやすそうな気がするよ。
僕に関する記事が今はインターネット上にも増えてきてるから、きっと大丈夫だと思うよ。プログラム的な細かい書き方ももちろん大事だけど、やっぱり僕にとって一番大事なのはフローチャートだね。僕がどこで何をどうやればいいのかをちゃんと教えてほしいんだ。
ちょっと理解できてきたよ!人がやるのと同じように画面を操作したりできるからこそ、ちゃんと一つ一つの作業を分割して丁寧にフローを作ることが大切なんだね。
うん!よろしくね!
■AIと何が違うの?
よくAIも耳にするんだけど、RPAとの違いは何なの?
考えられるのかそうでないのか、単純だけどそれがすべてかな。AIは「人工知能」といわれるとおり、それ自体で判断が可能なもの。それ自体が様々なケースを学習し、記憶として蓄積し続け、置かれた状況下でもっとも適切な解を導くことができるのがAIなんだ。
なるほど。その場その場で考えて最適解を出すのがAIだけど、RPAははじめから決まった流れに沿って進むから、自分で考えているというわけではないんだね。
そうだね。だから、決まったことは僕がやるから、そこにある程度の臨機応変さを求めるならAIを僕の脳として使い、僕は言わば手足の役割をすることで、かけ合わせた使い方ができる可能性はあるよ。
■注意すべきポイント
しっかりと作りこんでしまえば、もうまるっとお任せして大丈夫なんだね。すごいねロボ君は。
いや、それはきっとやめておいたほうがいいよ。人間がミスするように、僕も不慮のケースでエラーになってしまって、動かなくなるときもあるんだ。やっぱり完璧というのは難しいんだよ。
そうなんだね。じゃあ、そういったことを想定せずにロボットに作業を丸投げしてしまうとロボットが停止してしまったときに、業務がすべて止まってしまうなんてことになりかねないってことだね。
うん。ロボットはあくまで補助的な位置づけで捉えるべきものであって、ロボットが動かないときは、その作業をきちんと人の手でリカバリーできるのかといった部分が重要だよ。
「ロボットが人の仕事を奪う」といったフレーズがよくあるんだけど、そういうわけじゃなさそうだね。
「何かを判断する」という工程がある以上はまずそんなことは起こらないと思うよ。やはり人の目がないと判断できないこともあるし、僕が止まった時のリカバリーは人がいないとできないから。
人と協同作業をするようなイメージで利用して初めてロボ君は真価を発揮するのかもしれないね。忙しいときに、よく「猫の手も借りたい」なんて言うけど、ロボ君の手を借りればいい気がするよ!
僕は数ある効率化の手段のひとつにすぎないよ。今ある単純作業などの定型プロセスをロボット化することで、よりその人がすべき重要な仕事へのフォーカスを可能にする手段が僕なんだ。
だいぶRPAのことがわかってきたよ。ありがとうロボ君!
いえいえ。
あと、絶対にできないわけではないんだけど、システム開発でよくある「データベースと連携して複雑な計算処理をして、その計算結果によって処理がいくつにも分岐する」みたいなフローはロボット化するのかどうか慎重に考えてもらいたいかな。僕にも得意分野とそうでないのがやっぱりあるんだ。
わかった!ロボ君が得意な分野を任せて、僕はもっと別のことに頭を使えるような意識で仕事をしてみるよ!ありがとう!
■最後に
RPAの開発は、その開発スピードが一般的なシステム構築よりも断然早くなるため、ちょっとした定型作業の効率化という点で利便性が高いというのが特徴になります。
実際に私がロボットを作成してみて思うことですが、処理の流れを正確に表現できるかどうかが非常に重要です。
「どのタイミングで、何を、どのように処理する、それがどういう結果になっていれば良いか」を見極めてフローチャートに落とし込むことができれば、後は開発・実装方法にしたがって組み上げていけば作ることができます。
フローチャートが書けるという能力は「基本設計」といったシステム開発時には不可欠なフェーズで必要な能力につながる部分が大いにありますので、磨いていけばその後のキャリアでも役立てることが期待できます。
また、プログラミングのことが良くわからない方でも、感覚的につかみやすい、比較的学習導入にも適した部分があるように感じています。
(今回は私も使用している「Uipath」社の開発ツールを解説に使用しました。
⇒オンライン学習サイト:UiPathアカデミー RPA無料学習サービス | UiPath)
がっつりコーディングを最初から学びたいという場合にはそぐわないですが、まずはフローチャートが書けるようになりたいといった人にはわかりやすいものだと思いますので、興味がわけばちょっとのぞいてみてもいいかもしれません。
開発ツールのインストールなども比較的簡単で、あまり面倒な設定なしにロボットを作り始めることができるので、そういった点も学習に向いているかなと個人的に思います。
以上、RPAについて書いてみましたがいかがでしたか。
RPAに関する認定資格もあるようで、今後キャリアの幅も広がっていくような分野なのかなと思った筆者でした。ありがとうございました。