UiPathとは
まず初めに、私が抱いているUiPathのイメージについてお話させていただきます。
UiPathとは、業務を自動化するためのRPAツールです。
できることとしては、PC操作の自動化やデータの加工が挙げられます。
私は、業務とは構築されたシステム間の相互的なデータ交換であると考えています。
下記のような在庫管理プロセスがあったとします。
- 商品Aを1個購入する注文が入る
- 在庫管理システムへ商品Aの在庫を問い合わせる
- 在庫があれば、商品Aを1個発送する
- 在庫管理システムから商品Aを1個引く
作業者は、在庫管理システムから「商品Aの在庫」というデータを受け取り、処理を行います。
そして、在庫管理システムへ「商品Aが1個減った」というデータを渡しています。
そのため、私が考えるUiPathとは、「構築されたシステム間の相互的なデータ交換」を自動化するためのツールと言えます。
この認識を元にベストプラクティスを書いていきます。
#1 「作業」を自動化してもメリットはない
UiPathは「業務」を自動化するツールです。「作業」だけを自動化していては全くメリットがありません。
例えば、Aサイトからデータをスクレイピングしてきて、データをエクセルに貼り付けるといったものは「作業」です。
エクセルに貼り付けたあと、クライアントがエクセルのマクロを実行して、他部署へエクセルをメール送信していた場合、どうでしょう。
業務とは「データ交換」です。それを念頭に置くと、ここで挙げた例では「データの受け取り」と「データの加工」しか行っていませんので、「データを渡す」という作業が残っていることがすぐに分かります。
そして、クライアントのほとんどが「作業」と「業務」の区別をつけていません。
これが「作業」だけを自動化したワークフローが増えてしまう最も大きな原因です。
RPAの費用対効果を測る指標として、1日の削減時間と1日のワークフロー稼働時間があります。
1日の削減時間を1日のワークフロー稼働時間で割ってみてください。
10以下の場合、「作業」だけを自動化してしまっている可能性が高いです。
2以下の場合、UiPathを導入したメリットよりもコストの方が高くなっています。
「業務」を意識して自動化しているのに、10を下回る場合があります。
その場合は、もっと大きな規模の業務を自動化するべきです。
#2 自動化依頼は合理的に判断する
自動化依頼は毎日のように届きます。
そのため、開発するかしないかを決めたり、優先順位を決める必要があります。
まず、「作業」の自動化依頼は拒否しましょう。
そして、削減時間が大きいものから選んでいきます。
そうすると、特定の部課にワークフローが偏ることがありますが、それでいいんです。
会社全体で見たとき、費用対効果が最も高くなります。
費用対効果が認められず、採算が取れないからとプロジェクトが中止になったら元も子もありません。
冷たいようですが、合理的に自動化依頼を判断したほうが結果は良くなります。
#3 業務の手順は変わる
ある日、ワークフローがエラーを出して止まりました。
調査すると、ビジネス例外のようですが、要件にある内容と異なっています。
クライアントへ確認に行くと、きょとんとした顔でこんなことを言ってくるでしょう。
「今日から手順が一部変わりましたよ? あー、UiPathってそういうのダメなんでしたっけ?」
こんな事態が起こった時に平静を保てるかどうかはワークフローの作り次第です。
ワークフローの修正範囲が狭ければいいですが、修正範囲が広ければ大混乱になります。
ワークフローを作成するときは、修正範囲を如何に狭く設計できるかを考えなければなりません。
#4 業務の規模は拡大する
あなたは業務の自動化に成功しました。
クライアントは嬉しそうな顔をして、こんなことを言ってくるでしょう。
「次の工程も自動化してください」
ほとんどの場合、自動化依頼がくるのは大きな規模の業務の中のとても小さな規模の業務です。
その小さな業務が成功すれば、次は規模拡大というのは当たり前です。
ワークフローを正しく拡張できなければ、そのワークフローは将来的に「負の遺産」となり、
「メンテナンス性が悪いので、作り直しましょう」と言われることになります。
ワークフローを作成するときは、規模拡大があることを常に想定しなければなりません。
#5 UiPathだけの知識でRPAは不可能である
多くのRPAエンジニアは以下のスキルセットを持っていますが、多くの場合は「〇〇が使えるだけ」です。
- UiPath(または別のRPAソフト)
- MSOffice Excel, Word, Access, PowerPoint
- VB.NET
- Excel VBA
UiPathに関して言うと、以下の知識がある人はごくごく少数です。
- セレクターとは、デスクトップをルートとしたGUI要素の位置情報(木構造)をXML文字列で表したものであり、UiAutomationまたはMicrosoft Active Accessibilityによって実現している。
- UiPathのワークフローとは、Windows Workflow Foundationにカスタムアクティビティを加えたものである。
- UiPathでVB.NETが使用できるのは、.NET Framework上でVisual Basic Runtimeをサポートする機能があるから。
- UiPathのログ出力はNLogによって実現しており、NLog.configを編集すれば出力先や出力内容を変更できる。