RPA導入における心得とプロセスのコツ~UiPath導入現場から~後編

RPA導入における心得とプロセスのコツ~UiPath導入現場から~後編RPA導入における心得とプロセスのコツ~UiPath導入現場から~前編」では、RPA導入プロジェクト現場から得られた3つのRPA導入心得をお伝えしました。本記事ではより開発者向けの具体的なコツや注意点について、導入プロセスに沿ってお話します。

1.導入プロセス①:要件定義/ヒアリング

1.1 60点のロボットを目指そう

前述したように現在のRPAの導入は手探り状態から始まることが多いです。最も業務内容を知っているユーザですら、業務の全容を明確なルールとして理解して説明できることは多くないでしょう。

また、これらと業務の間にギャップを作らないためにも、可能な限り、実際の業務を見学させていただくとよいでしょう。また、既存の似たタイプのロボットを使って、デモを行うことは双方の認識の違いを埋めるために効果的です。

また、マニュアルが存在する場合も100% マニュアル通りに業務が遂行されている事例はあまり多くありません。この様な曖昧な状態の中でも業務を遂行できるのが人間の優れた点であり、業務のすべてをいきなりロボット化(=ルール化)しようとすると大変です。そのため、100点のロボットをはじめから作りに行くのではなく、60点のロボットを作りに行くことを目指してくださいRPA開発は一般のシステム開発に比べてスピーディです。まず最低限必要な品質の60点を確保してから、70点、80点と高めていけばよいのです。

どのように60点を目指すかですが、以下の3点に注目してください。

業務において、以下に注目しながら、現状(As-Is)とあるべき姿(To-Be)の業務フローを作成します。

①達成したいことは何か

②絶対に起こってはならないことは何か

③起こってはならないことが起こりそうになった場合、どのように回避するか


2.導入プロセス②:設計

2.1 データの流れを把握しよう

ロボット目線で業務を認識するために、業務フローの各プロセスについて、どのようなインプットとアウトプットがあるのか、また具体的にどのような処理がなされているのかデータフローダイアグラム(DFD)を書いてみると良いでしょう。これらの処理の流れを明確にすることで実装の難しそうな点や起こり得そうなエラー等も具体的に見えてくるでしょう。また、技術的に自動化が難しい場合は、インプットファイルの変更や、一部を人間の手によって行う形にするなど、運用面で対策を行います

加えて、この時点で設計書を作成、ユーザに説明し、作業範囲の認識合わせを行います。これはロボットの改修が必要になった際にその内容が保守にあたるのか、追加機能になるのかを判断する材料にもなります。

2.2 保守・拡張性を意識しよう

プログラム全般に言えることですが、RPAにおいても保守、拡張性は非常に重要です。そのため、設計時には以下の3つのポイントを押さえておく必要があります。

① エラーが起こった場所を素早く特定できること。

② 処理ロジックの入れ替えが行いやすいこと。

③ 設定値の変更が行いやすいこと。

まず、①を実現するためには、一定のルールでログを生成すること、ログにエラー原因のメッセージを残すこと、ソースコードにコメントを残しておくことが必要です。これらは非常に簡単なことですが、現場では実装されていないロボットをたくさん見てきました。

②に関しては、処理ロジック間の結合性を弱めることです。UiPathにおいてロジックはシーケンスという単位で表されますが、各シーケンスにおいて何を達成するのかを明確にしておき、1つのシーケンスに多くの処理を詰め込みすぎないことや変数のスコープを意識することが重要です。さらに気をつけるべき点として、同じ処理を繰り返し記述しないことが挙げられます。原則としてシーケンスのコピーアンドペーストを行うべきではありません。シーケンスからはワークフローを抽出することが可能ですので、複数回同じ処理が必要な際はワークフローを抽出し、ループと組み合わせた処理を行います。このように記述してあれば、一部を修正するだけで、一括で影響範囲全体の修正が可能です。実際にこれらのルールに基づいてリファクタリングを行ったところ、ソースコードが30%削減されるということがありました。

③に関しては、設定値をロボットのソースコードに直接記述しないことです。定期的に更新が必要な値やユーザの都合によって変更や微調整がありえそうな設定に関しては、ソースコードには変数として記述し、別ファイルを参照するという設計がおすすめです。多くのRPA製品がそうであるように、UiPathにおいても開発用のUiPath Studioと実行用のUiPath Robotは別ライセンスになっており、多くの場合、本番環境においてはRobotのみが利用可能です。そのため、軽微な修正を行うだけでも開発環境でロボットを修正し、本番環境へデプロイ、という操作が必要になります。設定値を別ファイルに切り出しておけばこれらの手間を省くことができます。ただし、設定値ファイルのセキュリティには注意は十分に払ってください。


3.導入プロセス③:製造

3.1 簡単なプログラミングを理解しよう

UiPathを含め、多くのRPA製品の多くはプログラミングレスでロボットを作ることができることをセールスポイントにしています。確かにそれは事実です。一方で、プログラミングに関する知見の有無はロボットの品質において明らかな違いを生むでしょう。

この理由は、2つあります。1つは、設計思想です。これについては簡単にですが、前項で触れました。もう1つは、クラスやメソッドを利用することで、処理を簡潔かつ柔軟に記述でき、誤作動しにくく、メンテナンスの行いやすいロボットを構築しやすいことです。UiPathでは.NET frameworkでこれを行うことが可能です。

なお、一般的な業務の自動化であれば、必要とされるスキルはそれほど高いものではありません。クラスという概念を知っており、調べればそれらのメソッドを利用できる程度であれば問題ないかと思います。参考に、よく使うクラスの例を以下に挙げておきます。String、 Dictionary、 Datatable、 List、 Exception。特にStringとDatatableのメソッドはよく利用するので一通りどんなことができるのかを知っておくと非常に便利です。

また、多少応用的な内容にはなってしますが、UiPathではVisual BasicのコードやPower Shellのスクリプトを呼び出すことも可能ですので、通常の処理でどうしても手の届かない部分に関してはこれらを利用して処理を行うことも可能です。

3.2 RPAプロジェクトの財産である共通部品を活用しよう

1つの企業に対して、RPA導入プロジェクトを進めていくと、違うロボットで共通の処理を行うことが少なくないことに気付くでしょう。たとえば基幹システムへのログインやWebストレージへのアップロードなどはその一例です。UiPathではロボットの実行中に別のロボットの呼び出しを行うことが可能ですので、共通の処理を小さなロボットとして、切り分けておくことをお勧めします。こうしておく事で、品質の担保されたロボットを他のロボットの部品として使いまわすことができ、開発スピードの向上が期待できます。また、システム側に変更があった際にも共通部品に修正を加えるだけで本体のロボットに修正を加えることなく、変更へ対応することが可能です。共通部品が大規模導入において威力を発揮することは言わずもがな、将来的な内製化を行う場合にも有効であると考えられます。

加えて、この考え方は、メインロボットの基本的な仕様についても適応できます。プロジェクト開始時に、設定値の読み込み、トランザクションの取得、エラー処理などの全員が共通で利用する処理を1つのロボットとしてまとめたフレームワークを立ち上げてしまうと良いでしょう。これによって、基本仕様が統一され、メンテナンスが俗人化を避けられます。個人的には、UiPath製のエンタープライズ向けフレームワークであるReFrameworkを活用するのがおすすめです。

なお、フレームワークに関しても定期的な見直しを行い、常に最適化を行っていくとよいでしょう。業務自動化を進める中で得られる各業務のナレッジに加え、これらの共通部品を蓄積してくことが、RPAプロジェクトの財産となります。


4.おわりに

RPA導入プロジェクトへの参画を通じて、RPA導入は導入を行う側にとっても、貴重な経験となると感じました。通常のシステム開発では別々の人間が担当するコンサルティング的なプロセスからエンジニア的なプロセスを同じ人間が一気通貫で行えることは、他のシステム開発には無い醍醐味であると強く感じます。

最後になりますが、弊社バーチャレクス・コンサルティングでは、RPAの導入のご支援に加えて、現場経験を積んだ講師によるワークショップも開催しておりますので、ナマの技術をハンズオンでお届けすることが可能です。これによって、導入後の内製化のご支援も可能です。RPAの活用方法はアイデア次第で無限に広がります。弊社とともにRPA Journeyへと漕ぎだしてはいかがでしょうか

<RPAソリューション提供サービスについて>
導入・活用支援を行っております。詳細は以下をご覧ください。
http://www.toolhouse-vxc.com/solution/rpa/ 

<実践型「UiPath」ワークショップセミナーについて(東京・大阪開催)>
現在「UiPath」の技術者育成を目的としたワークショップ形式のトレーニングプログラムを定期開催中です。詳細や日程は以下をご確認ください。
http://www.toolhouse-vxc.com/solution/rpa/rpa-uipath/

contact_b.gif


saiki.jpg

執筆者紹介:
ビジネスインキュベーション&コンサルティング部
佐伯 恭平(さいき きょうへい)

新卒で入社以降、チャットセンター設立支援をはじめとしたCRM領域のコンサルティングに従事。
現在はRPA導入案件に従事し、要件定義~設計・開発・運用までを一貫して担当する。