RPA開発は誰がする?
自社開発可能かや手法、ポイントについて解説
昨今、業務効率化ツールとしてRPAを導入する企業が増えています。今まさに導入を検討中で、RPAについてもっと知りたいという方も多いのではないでしょうか。RPAの開発方法や自社で開発する場合のメリットとデメリット、気をつけたいポイントなど、今回はRPAの中でも「開発」について詳しく解説します。
目次
RPAについて
RPAは、ロボティックプロセスオートメーション(Robotic Process Automation)の略語です。ソフトウェアロボットが人間に代わってPC上での作業を行ってくれるため、「仮想知的労働者」や「デジタルレイバー」と呼ばれることもあります。労働者人口減少による人手不足解消の有効手段としても、自動化によって業務を効率化するツールとしても、業界業種を問わず、さまざまな企業から注目されています。
RPAが最も得意としているのは、定型業務の自動化です。RPAでの自動化に適した定型業務の例を挙げると、請求書や注文書などの作成、日報や週報の作成、売上データの集計作業、振込作業などです。これらは定期的に発生する業務で、作業手順が変わらないという特徴があります。
RPAで自動化することで、業務スピードが上がったり、ヒューマンエラーの防止ができたりするほか、定型業務に割いていた労働力をコア業務に充当することで、生産性向上につなげることもできます。
RPAの運用について
RPAは、導入して終わりではありません。正常に作動しているかの確認、業務内容が変わった際の設定の変更など、より効果を上げていくための運用も重要です。そのため、RPAを導入すると同時に、社内にRPA運用体制の構築をする必要があります。RPA運用に関して、気をつけるべきポイントや運用を見据えた導入手順などについては、別のコラムがありますので、下記をご参照ください。
関連情報:
コラム「RPA運用を成功につなげるフローとは?失敗につながるケースも解説」
コラム「RPA運用におけるリスクとは?トラブルを回避するための対策も解説」
RPA開発について
ここからは本コラムのテーマであるRPAの開発について説明していきます。まず一般的にRPA開発は、開発手法の難易度によって「簡易型」と「開発型」の2種類に分けられています。どちらを選ぶのが良いかは、それぞれの企業の規模や社内環境、RPA導入の目的、対象となる業務などによって変わってきますが、まずは「簡易型」と「開発型」の違いや開発手順について確認しておきましょう。
開発手法について
簡易型の開発
簡易型は文字どおり、容易に開発ができる手法です。人がPCの画面上で実際に作業をし、その操作を記録。ロボットには記録した操作を再現させることで自動化します。そのため簡易型は「画面操作記録型」とも呼ばれています。
特長としては、プログラミングの知識が必要ないところが挙げられます。システム開発経験のある人がいないような部門が、自分たちでRPAの開発や運用を行う場合には、簡易型がおすすめです。
画面上での操作を記録するため、基本的には作業内容がシンプルな業務を自動化したいときに向いている手法ですが、記録した内容をカスタマイズすることで、複雑な作業も自動化することができます。ただし、その際にはプログラミングの知識が必要になります。
開発型の開発
開発型は、プログラミングでロボットを作成する手法です。そのため「コーディング型」とも呼ばれています。
一般的にRPAツールの開発画面には、「ライブラリ」と呼ばれるさまざまな機能がデフォルトで用意されています。この機能から必要なものを組み合われることで、ロボットの動きをシナリオとして設定します。しかし、自動化したい業務内容によっては作業が複雑で、「ライブラリ」だけでは対応できないことがあります。そういった場合には、プログラミングによって機能を追加することで対応します。
簡易型に比べると開発に必要な知識が多く、ある程度のスキルも求められるため、エンジニアがいる部門でRPAを導入する際におすすめの手法です。また部門ごとに管理運用するのではなく、エンジニアのいるRPA担当部門が、社内のRPAを一括で管理するような体制を構築する場合には、この開発型でRPAを導入すると良いでしょう。
なお、社内にプログラミング知識やスキルを持った人材がいないときには、RPAツールを販売している外部のベンダーに開発から運用までサポートしてもらうという方法もあります。
RPA開発の手順
業務の洗い出し
ここからはRPAを開発する際の工程について、順を追って説明していきます。
まずやるべきことは「業務の洗い出し」です。前述したとおり、RPAが得意としているのは定型業務の自動化です。「業務効率化を図りたい」、「省力化したい」と思っている業務が、RPAで自動化できるものなのか、できるとしてどこからどこまでの作業をRPAに任せることができるのかを知る必要があります。そのために、対象業務のフローを一つひとつ書き出すなどして、業務内容を可視化します。この段階で不必要な作業が発生してしまっていたり、非効率なやり方をしてしまっていたりと、作業手順上の問題が発覚することもあります。こういったときは、RPAを開発する前に手順の見直しをしておくようにしましょう。特に同じ担当者が長年その業務を行っている場合には、従来の方法のまま、ずっと決められた手順にしたがって作業をしていることが多く、長期間見直しをされていないことがあります。改めてより効率的な方法はないのかを客観的に検証しながら、整理をしていくようにすることがポイントです。
要件定義
業務の洗い出しができたら、次は要件定義です。要件定義とは、ソフトウェア開発などで使われる言葉で、達成すべき目的やそのために実装する必要がある機能などについて、プロジェクトを始める前に整理することです。これをしておくことで、プロジェクトの途中で目的を見失ったりするのを防ぐことができます。RPA開発の要件定義では、洗い出しをした業務の中で、どの作業を自動化するのか、それを実行するためにどういうロボットを開発するのかを決定していきます。RPAの設計書を作るイメージです。ここで重要なのは、全体としての最適化を忘れないようにすることです。RPA導入によって達成すべきは、企業としての生産性向上です。手間のかかる業務をRPAで自動化し、業務効率化を図ることは重要ですが、これは手段であって、目的ではありません。一つひとつにこだわりすぎず、会社全体としてどれだけ生産性向上につながるのかを意識しながらRPA導入後の姿を描き、それを要件定義に落とし込みましょう。
シナリオ作成
次は要件定義に基づいて、シナリオを作成します。RPAのシナリオは作業手順のことであり、ロボットは設定されたシナリオどおりに作業を行うことになります。業務の洗い出しのときに、作業工程を可視化できているはずなので、どのExcelファイルを開いて、どのセルに何のデータを入力するという風に、細かく操作の手順をシナリオにしていきます。条件によって処理を変える必要がある場合は、条件を明確にし、分岐後の操作をロボットがきちんと認識できるようにします。シナリオの作成の具体的なやり方は、RPAツールによって異なるため、ツールのマニュアルに沿って作成しましょう。
またシナリオを作成する際には、方針を決めておくようにしましょう。どのレベルの作業までを自動化するのか、もしエラーが発生してしまった場合には、作業をストップするのか、エラーの原因となった箇所だけを飛ばして作業を続けるのかといった方針が決まっていると、シナリオ作成を円滑に行うことができます。
動作テスト
シナリオ作成ができたら、次は動作テストです。動作テストにもステップがあり、「単体テスト」「結合テスト」「本番データテスト」「耐久テスト」の4種類あります。
最初は単体テストです。作成したシナリオを作業単位で区切って、設計したとおりに動作するかを確認します。
一つひとつの作業の単体テストが完了したら、次は作成したシナリオ全体を通して、一連の作業が途絶えることなく行えるかを確認します。これが結合テストです。結合テストの際には、イレギュラーが発生した場合にRPAがどういう挙動をするかも確認しておく必要があります。
次に行うのが、本番データテストです。その名前のとおり、実際の業務で扱っているデータを使ってテストを行います。もしエラーが発生した場合には、原因を突き止めて、シナリオを修正します。
最後は耐久テストです。データ量が多い場合や長時間の稼働をさせた場合に、処理スピードがどうなるのか、どの時点でエラーが発生するのかなどを確認します。実際のデータに比べて容量が2から3倍のデータを使用し、わざと負荷をかけてテストすることで、将来扱うデータが増えたときにも対応できる状態にしておきます。
メンテナンス
これは開発後の運用に関わるものですが、メンテナンスは定期的に行うようにします。RPAを導入した直後は、エラーが頻発することも珍しくありません。「失敗した」と思って諦めることなく、その都度対応しながら少しずつ調整していくことで、精度の高いRPAにしていくことをめざしましょう。また、メンテナンスの履歴は残しておくことをおすすめします。その後のメンテナンスや新たなにシナリオ作成をする際に、役立つ情報になります。
なお、シナリオとは別のところにエラーの発生原因があることもあります。システムやアプリケーションのアップデートによって仕様が変わったことで必要なデータが取得できなかったり、システム障害やネットワーク障害で連携がうまくいかなかったりといったケースです。こういった周辺環境の変化にも対応できるようにするためにも、メンテナンスは必須です。
RPA開発を自社開発でするメリット
コストを削減できる
自社で開発する場合の最大のメリットは、やはりコストを削減できることです。RPAを販売するベンダーに、業務の洗い出しやRPAツールの選定、シナリオの作成などの開発サポートを依頼すると、当然費用がかかります。RPAを導入する規模が大きければ大きいほど、コストはそれ相応に高くなります。しかし、自社内にいるエンジニアに開発サポートを任せられる場合、もちろんRPAツールを使用するライセンス料はかかってきますが、コストを抑えることができます。また、自社開発を行う際にしっかりとRPAに関する知識とスキルを身につけてRPAを扱える人材を育てておけば、運用サポートを外部に依頼せずに済むため、コストを削減することができます。
エラー発生時に迅速な対応ができる
上で説明したとおり、RPAはエラーが発生したときにはその原因を突き止めて、シナリオを修正するなどの対応をする必要があります。もしRPA開発を外部ベンダーに委託していて社内にRPAを扱える人材がまったくいない場合には、エラーが発生する度に外部ベンダーに対応を依頼することになってしまいます。ベンダーの状況によっては、すぐに修正対応ができないケースもあるでしょう。しかし、自社で開発していればRPAを扱える人材が社内にいるので、すぐに対応ができます。RPAに任せている業務をなるべくストップさせないことが、会社の利益につながります。また、エラー発生時に限らず、社内に人材がいればRPAの微調整もしやすくなります。
RPA開発を自社でするデメリット
もともと社内にRPAに精通したエンジニアがいる場合を除いて、自社で開発する場合には人材を育てる必要があります。ベンダーが行っている講演会や勉強会に参加し、導入するツールに関する知識を身につける必要があるため、着手するまでにかなりの時間がかかってしまいます。その後の運用も考えると、RPAを扱える人材は複数人いたほうがいいでしょう。この時間と手間が、自社開発の大きなデメリットです。また一定の知識を身につけたとしても、その道のプロである外部ベンダーに比べれば、開発自体にも時間がかかってしまう可能性があります。さらに、知識を習得したての人材に、コア業務へのRPA導入を任せることにはリスクもあります。
以上を踏まえると、初めてRPAを開発する際には外部ベンダーのサポートを受けつつ、それと同時に外部ベンダーから知識とスキルを吸収して、社内にRPA人材を育てていくのがおすすめです。
RPA開発を行う際のポイント
事前に開発の難易度を把握しておく
RPAの自社開発で失敗する事例の中で、開発に必要な知識や手間をきちんと理解できていなかったケースがあります。自社での開発の難易度を把握しておけば、外部のサポートを受けるか否かを適切に判断できます。ここでは、開発の難易度を測るためのポイントを3つ紹介します。
-
作業工数
まずRPAで自動化したい業務について、具体的な手順を書き出します。操作を行う手数が多ければ、それだけ開発ボリュームが増えるため、難易度は高くなると考えて良いでしょう。
-
処理時間
作業工数や取り扱うデータ量が多ければ多いほど、処理する時間が長くなります。それだけ負荷がかかってしまうため、エラーが発生する可能性も高まります。その中でも安定した処理を行えるRPAを開発するためには、やはり難易度が高くなります。
-
分岐の条件
条件によって作業内容が変わるときには、シナリオの分岐が発生します。分岐する回数や条件が多ければ、それだけシナリオは複雑化します。特に分岐した先でさらに細かく枝分かれさせている場合、1カ所シナリオを修正するだけでも、前後の分岐に与える影響を考慮しなければならないため難易度は高くなります。
開発者のレベルを把握しておく
一口にITエンジニアと言っても、得意とする分野や扱えるプログラム言語は違います。社内のエンジニアにRPA開発を依頼する場合、そのエンジニアがどれほどの知識とスキルを持っているかを把握しておかなければ、開発したいRPAの難易度に見合っているかどうかが分かりません。RPA技術の社内認定制度を創設することで、客観的な判断ができるようにします。それと同時に、開発後の運用体制を安定させるためにも、社内教育制度も創設しましょう。
RPA開発の事例
【事例1】ECサイトの商品情報更新業務
マーケティング会社であるA社では、消費者向けのECサイト比較サービスサイトを運営しており、下記の業務を日々手作業で行っていました。
-
各ECサイトにアクセスし、商品のJANコードを入力して検索
-
商品名や商品画像など、取得したデータをExcelに入力
-
ExcelをもとにECサイト比較サービスサイトを更新
-
在庫切れ商品などの情報を担当者にメール
この業務では各ECサイトにアクセスして3,000項目のデータを取得する必要があり、非常に手間がかかるという課題があったため、これらすべてを自動化するRPAを開発しました。毎朝6時に各ECサイトから商品データを自動取得し、Excelを自動で作成。9時にサービスサイトの更新を行い、担当者へのメールも自動で送信するようにしました。その結果、サービスサイトの更新時間の遅延がなくなったほか、人的ミスを減らすことに成功。さらに、商品の販売動向が把握しやすくなり、売上増にもつながりました。
【事例2】金融商品申し込み処理業務
生命保険会社であるB社では、金融機関の窓口で販売している商品の新規契約が増加する一方、人員を増やすにもオフィススペースの制約があり、費用対効果を見てもオフィスを広げるほどの利益が出ないという課題を抱えていました。
手作業で行っていたのは下記4つの作業です。
-
紙の申し込み書をOCRでデータ化
-
データ化したものをドキュメント管理システムに取り込み、CSVで出力
-
CSVデータをExcelに取り込み、記載漏れがないかを複数人でチェック
-
チェックが完了した申し込み内容を新規契約管理システムに転記
この一連の業務の中で、CSVデータからExcelへの取り込み、記載漏れチェックの結果のExcelへの追加、新規契約管理システムへの入力などをRPAで自動化。その結果、200人いた担当スタッフを20人に削減することに成功しました。また、人が介在しないことで不正を防止し、オペレーション証跡を残すことで内部監査にも対応できるようになりました。
【事例3】長時間残業者リスト作成とアラートメール送信業務
C社の人事部門では、長時間残業者を把握したうえで、問診票を送付するという業務を担当しており、下記のような業務を手作業で行っていました。
-
人事管理システムから条件を指定してCSVファイルを抽出
-
抽出したデータから長時間残業者にメールを送信
-
長時間残業者のリストを勤務地ごとに分割したうえで各上長にメールで送信
これらすべてを自動化するためのRPAを開発。毎月実施していた手作業を大幅に削減することができ、作業時間にして約75%減らすことに成功しました。人事部門ではこのように毎月繰り返すような業務があり、RPA導入に向いていることが分かります。
RPA導入後に起きがちな問題について
RPAを導入さえすればすべて解決というわけではもちろんありません。導入後に発生する問題への対策も考えておく必要があります。これに関しては、別のコラムで詳しく解説していますので、以下からご覧ください。
RPA開発なら日立ソリューションズにお任せください
上述したとおり、RPAの自社開発にはメリットもありますが、デメリットもあります。社内エンジニアのスキルに見合わない難易度の高いRPAを開発しようとして、RPA開発が頓挫してしまっては、そこに割いた時間と労力が全部無駄になってしまいます。業務効率化、生産性向上のためのRPAが、逆に会社の負担を増やしてしまうリスクを考えると、自社開発に少しでも不安がある場合には、やはりプロに任せるのがおすすめです。
日立ソリューションズではRPAツールを販売するだけではなく、さまざまな導入支援を行っています。数多くの実績と蓄積したノウハウがあるからこそ、各企業の課題や対象業務に合わせて、最適なRPA開発から運用体制構築までをサポートすることができます。詳しくは、下記リンクからご確認ください。
まとめ
本コラムではRPAを自社で開発する際に、頭に入れておくべき知識を中心に紹介しました。
RPAはプログラミング言語の知識がなくても導入することができる便利なITツールです。しかし、より高い効果を得たい場合や安定した動作を求める場合には、それなりに知識のあるエンジニアが必要です。まずはどの業務を自動化したいのかを明確にし、そのためのRPA開発はどのくらい難しいのか、社内のリソースで足りるのかを把握しましょう。そのうえで、自動化することで削減できるコストや見込める収益の増加と、開発にかかるコストを比較するのがおすすめです。自社で開発するのか、外注するのかを判断しやすくなります。
関連コラム
関連するお役立ちコンテンツ
-
Automation 360(旧:Automation Anywhere Enterprise A2019)
オートメーション・エニウェアが提供する最新のRPAプラットフォーム。
あらゆる種類のユーザーのニーズに対応する、完全Webベース・クラウド対応のRPAプラットフォームです。 -
RPA業務支援BPOサービスは、ロボット開発や社内問い合わせ対応、運用などのRPA推進部門の業務をまるごと代行するサービスです。 RPAの全社展開のボトルネックを解消し、RPA活用拡大を強力にサポートします。