BizRobo! ブログRPA関連のお役立ち情報をお届けします
RPAの開発を自社で検討しているが、具体的にどのような方法や手順で進めればいいのかわからない企業の担当者様も多いのではないでしょうか。
RPAの開発は、プログラミングを全くしない、あるいはほとんどしないで業務を自動化するソフトウエアのプログラム(ソフトウエアロボット)を作ることを意味します。
一度開発するとその後の運用やメンテナンスはそこまで難易度は高くありませんが、開発の難易度は自社に専門知識やスキルのあるエンジニアがいなければ難しいでしょう。
本記事では、RPAの開発方法や自社で開発するメリットなど、開発中心に解説していきます。下記で紹介しているサービスサイトの内容が開発の参考になる可能性があります。RPAツール『BizRobo!』のツールを参考にぜひご覧ください。
目次
1 RPAとは
RPA(ロボティック・プロセス・オートメーション:ソフトウエアロボットによる業務自動化)とは、RPAツールと呼ばれるソフトウエアを利用して、パソコン上での定型的な作業を自動実行する技術です。
オフィスワークに応用することで、まるで人を増やしたような効果が得られることから、RPAのことを「デジタルレイバー(仮想知的労働者)」と呼ぶこともあります。その特徴やメリットについては、以下の記事で詳しく紹介しています。
関連ページ:RPA(ロボットによる業務自動化)とは
2 RPAの開発方法
RPAはプログラミング言語なしでも使い始められる、いわゆる「ノーコード」「ローコード」の業務効率化ツールであり、その具体的な開発手法は大きく以下の2つに分けられます。
開発手法1:簡易型(レコーディング機能)
開発手法の1つ目は、自動実行させたいパソコン操作を人間が再現し、作業の手順や内容をソフトウエアロボットに覚えさせる方法です。
RPAツールを起動したパソコンの画面上で、クリックしたいボタンや、データを入力したい箇所、ペーストするデータのコピー元などを順番に指定していくと、その順番どおり自動実行するソフトウエアロボットが完成します。
このような人間の作業を記録し、ロボットに再現させる機能のことを「レコーディング機能」といいます。
レコーディング機能によるRPA開発は、最も簡単なことから「簡易型」と呼ばれており、担当者1人・端末1台の範囲で完結する単純な繰り返し作業を、手軽に効率化する方法として適しています。
レコーディング機能で作ったロボットは、さらにRPAツール上で簡単に修正することもできます。
“一発録り”のレコーディングで常に完璧なロボットができるとは限らないため(これはExcelの「マクロの記録」機能などでも同様です)、RPA開発におけるレコーディング後の修正は「できる」と同時に、多かれ少なかれ「やる」ものです。
したがって、レコーディング機能は「とりあえず手を動かせば、ソフトウエアロボットの大まかな骨格ができる仕掛け」と考えておけば間違いないでしょう。取っつきやすいものの万能ではないことから、レコーディング機能をあえて搭載していないRPAツールもあります。
ちなみに、レコーディング機能では、ロボットが操作箇所を特定する方法として、画像(表示されるアイコンなど)によるマッチングや、座標(画面隅からの距離)を利用します。
そのため、ロボットを実行するパソコンの画面表示設定(画面の拡大・縮小、外部モニター利用の有無など)が開発環境と異なる場合、ロボットにとっての手がかりが変化し、うまく動作しない可能性があります。
簡易型でのRPA開発では、実際の稼働時にこうしたトラブルが生じないよう、あらかじめ画面表示設定を統一するなどの対策を取っておくことが大切です。
開発手法2:コーディング型
RPA開発手法の2つ目として、RPAツール上の直感的な操作(メニュー選択、ドラッグアンドドロップなど)でソフトウエアロボットを作成する方法が挙げられます。
プログラミング言語でコードを書かなくても、それに近い自動化が実現できるのが、この手法の特徴です。
RPAツールが提供するさまざまな機能がコード代わりの役割を果たし、プログラミング未経験でもシステム構築に迫るレベルの開発ができることから、こうした手法は「コーディング型」と呼ばれています。
コーディング型の開発では、RPAツールの標準機能だけで相当高度なことができる上、特殊な処理が必要な場合はコードを書き加えてロボットを動かすこともできます。そのため、コーディング型の開発に対応するRPAツールでは「せっかく導入したのに、機能上の制約でやりたい自動化ができない」ということが、ほとんどありません。
また、コーディング型のRPA開発では基本的に直接コードを書かないものの、開発時の基本的な考え方がプログラミングと共通しています。
そのため社内でRPAを開発したい部門と、プログラミングの専門家(情報システム部門など)が認識を揃えやすいのもメリットであり、導入フェーズごとに組織内で柔軟に分業しながら、運用規模をスムーズに拡大しやすい手法といえるでしょう。
コーディング型によるRPA開発が大規模・柔軟な運用に適しているもう一つの理由として、「画像マッチングや座標指定を使わずに開発できる」、つまり同じロボットを異なる部署で使ったり、在宅環境から動かしたりしてもエラーが起きにくい点も挙げられます。
このようにコーディング型の手法は、レコーディング機能を用いる簡易型の手法よりも応用範囲が広く、また安定稼働できるソフトウエアロボットをつくりやすいメリットがあります。
ただ一方、コーディング型による開発では、プログラミング全般で求められる基本的なスキル、つまり「作業の手順や内容を整理して再構成する力」が必要となり、開発者に対する技術面での要求水準がやや高くなるデメリットもあります。
もっとも、コーディング型のRPA開発で求められるこうしたスキルは、2022年度から高校の必修科目となった「情報Ⅰ」の範囲にも含まれる基礎的な内容です。
RPAに限らず、業務のデジタル化が今後さらに進むことを考えれば、これを機に新たなスキルをマスターする価値は大いにあるといえるでしょう。
3 RPAを社内開発するメリット
ここまで見てきたとおり、RPAは普段のパソコン操作と同等の感覚からシステム構築に近いレベルまで、社内の技術力に応じたさまざまな難易度で開発にチャレンジできます。
そのため、外注に頼らない社内開発・社内運用が十分可能で、実際にそうした“内製化”を選ぶユーザーも珍しくありません。では、RPAを社内開発することで、どのようなメリットが得られるのでしょうか。
メリット1:コスト削減
RPAを社内開発して得られる第1のメリットは「コスト削減」です。具体的には
・RPAを業務の現場で直接開発してヒアリングなどを省ければ、開発工数が最小化できる
・システム構築として外注するような自動化の仕組みもRPAで社内開発できる場合がある
・IT部門などの支援を得て内製化できれば、社外に開発依頼した場合にかかる外注費がカットできる
などが挙げられます。
メリット2:社内にノウハウを蓄積できる
RPAを社内開発する第2のメリットとして「ノウハウを社内に蓄積できる」ことが挙げられます。
自社の実態に即した開発ノウハウを持つことで、いわば“かゆいところに手が届く”業務効率化ができるだけでなく、何らかの事情で一部を外注することになったとしても、全体をコントロールし、主体的な運用が続けられます。
すでに触れたとおり、RPAの開発運用から得られる知見には、あらゆるデジタル化の基礎となる内容が多く含まれています。組織のDX(デジタルトランスフォーメーション)、また社員のリスキリングの観点からも、RPAを導入する際は、できる範囲での社内開発をまず検討してみるのがよいでしょう。
メリット3:変更・修正が早く容易
RPAを社内開発する第3のメリットとして「変更・修正が早く容易に行える」ことが挙げられます。
RPAは自社内外のさまざまなシステムにアクセスする作業を自動化するため、接続先の改修(操作画面の配置が変わるなど)や不具合(応答速度が低下するなど)の影響を受けやすい特性があります。
特に問題なく稼働していたソフトウエアロボットが、そうした外部事情の影響で突然エラーを起こす可能性もあり、開発した後も調整・修正の対応が欠かせません。
また、業務改善に熱心で、作業手順を常に見直しているような職場では、ロボットに任せる作業の手順や内容も、頻繁に変わる可能性があります。
これらの場面で対応を外部企業に依頼すれば、完了までには時間も費用もかかってしまうでしょう。
RPAはツールの使い方が一通り分かっていれば、誰でも比較的容易にロボットを変更・修正してメンテナンス対応できます。したがって、常時社内の誰かがそれをできる状態まで習熟が進めば、きわめてスピーディーな自己解決が可能となります。
メリット4:現場に改善とDXの意識が定着する
RPAを社内開発する第4のメリットとして「業務の現場に改善とDXの意識が定着する」ことが挙げられます。
一般にRPAは、経理のような全社共通の事務処理から派生する比較的細かいタスクを自動化するのに用いられます。
こうしたタスクは、業務知識を身につけた担当者個人との結びつきが強いので、身近な業務を自ら自動化していく社内開発のアプローチは、スピーディーな開発はもとより、「あれほどつらかった作業から解放された」という、デジタル化への肯定的な評価や自信を現場にもたらします。
自ら手を動かして業務効率化できた成功体験を現場の多くのスタッフが得ることにより、「この作業もロボットにやらせたほうがよいのでは」といった建設的な提案が、ごく自然に出てくるようになります。
つまりRPAの社内開発は、業務改善やDXに“自分ごと”として取り組む組織文化を形成できるメリットがあるということです。
4 RPA開発の手順
では実際にRPAをどう開発するのか、順を追って説明します。
ステップ1:対象業務を選ぶ
最初に、RPAで自動化したい業務を選びます。対象となるのは、パソコンを使って繰り返し処理している定型的な作業です。
しかし、すぐ思い当たらない場合や、候補を増やしたい場合は、「自動化できるならしてほしい、面倒なパソコンの作業」を社内アンケートで募って、その中から選ぶのがよいでしょう。
ステップ2:自動化の範囲と手順を決める
候補として上がったパソコン上での定型作業の中から、RPAで自動化できる定型作業を切り出します。
具体的には、自動化する作業はもちろん、その前後で人が行う作業内容も明らかにし、またエラー発生時の対応手順も決めた上で、それらをフローチャートなどで可視化・文書化しておきます。こうすることで、開発後のメンテナンスやエラー対応が確実に行えるようになります。
自動化の範囲を決める際のポイントは、「技術的に可能な全作業を一度に自動化しようとしないこと」です。初めてチャレンジするRPAの社内開発に対し「つまずく」「もたつく」といったネガティブな印象が強まらないよう、まず簡単な部分だけを選び、手早く・確実に成功実績をつくることが大切です。
また自動化にあたっては、従来の作業手順をそのままロボットに置き換えるだけでなく、自動実行に適した手順に組み替えたり、要らない工程を省いたりといった見直しで最大限の業務効率化を図り、その成果もアピールすることが重要です。
ステップ3:ソフトウエアロボットの作成
自動化する作業の内容とその前後の手順が確定したら、いよいよRPAツールの開発機能を使ってソフトウエアロボットを作成します。
具体的な作成方法はRPAツールによって異なりますが、無駄な労力をかけないためには、自動処理したい作業で扱うシステムやアプリケーションにRPAツールが対応しているか、本格的な作成を始める前に一通りテストしておくのがよいでしょう。
なおRPAは、接続先のサーバーが混雑していて通常より反応が遅い場合などにエラーと判断し、以後の処理を停止することがあります。この場合、後続の作業を人がカバーするイレギュラー対応の可能性が高くなり、もし多発すると、業務効率化という目的からは “期待はずれ”の結果になってしまいます。
そうした事態をなるべく避け、また業務への影響を最小限に抑えられるよう、ロボットの作成にあたっては、以下のような配慮が必要です。
・作業速度とのバランスも考慮しつつ、処理待ち時間を多めに設定しておく
・複数工程にまたがる作業を繰り返すロボットは「工程ごとに全件処理してから次工程に進む手順」で作成する
・業務をカバーする担当者へのエラーメッセージ送信機能などを盛り込んでおく
ステップ4:動作テスト
ソフトウエアロボットが完成したら、想定どおりに動き、想定外の動きをしないことをテストで確かめた上で、ロボットを開発環境から本番環境に移して実稼働に入ります。
RPA開発時の動作テストとして、次のようなものが挙げられます。
・新規作成したロボットが単体で問題なく動作するか確かめる「単体テスト」
・既存のロボットなどと連携させる場合は、関係するロボット全体で問題なく動くか確認する「結合テスト」
・データの登録作業や更新作業を自動化する場合は、「テストデータでの処理テスト」
・将来的に大量処理や連続稼働が見込まれる場合は、直近の想定値より厳しい条件(2~3倍)での「耐久テスト」
ステップ5:メンテナンス
実稼働に入った後のRPAは、インストール端末のOSやウェブブラウザがアップデートした場合、操作画面のデザイン変更に対応するための修正が必要となる場合があります。
またすでに触れたとおり、自社内外のシステムにアクセスする自動化の場合は、接続先の状況に合わせてソフトウエアロボットの設定を随時調整するほか、自動処理を含む社内の業務手順を見直す場合にも対応する修正を行うこととなります。
RPAの導入についてより詳しく知りたい方は、下記もご参考ください。
5 RPAの社内開発で失敗しないコツ
これまでRPAを導入したユーザーの実例から、社内開発に失敗するケースには、いくつかの典型的なパターンがみられます。具体的には、
- 導入したRPAツールが目的に合っていない(機能不足、難しすぎるなど)
- いきなり大きな効果を狙い、達成できずに挫折
- 社内開発者のスキル向上が追いつかず、初期投資を回収する前に活用が頭打ちに
- 開発運用のノウハウを確立できず、外部に“丸投げ”する以外の選択肢がなくなる
などです。
失敗しないコツ1:実現可能な目標・計画を立てる
RPAの社内開発で失敗しないためには、まず「実現可能な目標・計画を立てる」ことが大切です。
RPAの活用方法には、パソコン1台だけの小規模な社内運用から、サーバーと接続した高度な社内運用、また開発運用の完全外注まで、さまざまな選択肢があります。
それらの中から自社の体制を選ぶには、RPAを導入する主目的(生産性向上、コスト削減、作業負担の軽減、社員のスキル向上、社内システムの補完など)をはっきりさせなくてはなりません。
目的を達成するため、中長期にわたって社内でどの程度RPAを活用したいかが明確になれば、自社に適した開発手法やRPAツールが、おのずと明らかになります。
そこで選ばれた開発手法やツールを、実際に社内開発担当の候補者に試してもらいましょう。
その結果、目的を達成できる実力がもしなければ、そこで社内開発を断念するのでない限り、社内開発力を強化する取り組みが必要となります。
具体的には、一定の技術水準をクリアすることを目標に、社内開発者を育成するための現実的なプランを立てることとなるでしょう。
社内開発者の研修には、RPAツールの提供元が公開している教材が利用できますが、研修やノウハウの吸収などで外部企業のサポートを得ることも有効です。自社で主体的にRPAを活用するためにも、社外の力をうまく活用することが大切です。
失敗しないコツ2:社内人材のリソースを確保する
RPAの社内開発で失敗しないための第2のコツは、「社内人材のリソースを確保すること」です。
システム構築に比べて簡単とはいえ、RPAの社内開発(特にコーディング型)を軌道に乗せるまでには相応の時間を要します。もし、RPA開発をDXの一環に位置づけるなどして専任の担当者を置くことができれば取り組みはスピードアップしますが、そもそもRPAは人手不足の解決策として選ばれるツールです。
実際には、既存業務の担当者に兼任させるか、そうでなければ完全に外注してしまうケースが、とりわけ中堅・中小企業では大半だと考えられます。
こうした実態の中でも社内開発を達成するには、リソースの確保に工夫が欠かせません。幸いRPAによる業務自動化では、使い始めてすぐ余力を創出できるので、この余力を社内開発の拡大に振り向けるのが現実的な解決策です。
例えば、「RPAの開発は外注し、管理のみ社員が兼任」という体制でスタートした場合でも、「当分の間、勤務時間の一定割合をRPAに充ててよい」と所属長が認めるなどして継続的に取り組めば、自動化が生み出した余剰時間で社内開発の割合を徐々に増やしていけます。
その次のステップとして専任担当者を置くことも現実的となり、より広範なDXに向けた環境が整うでしょう。
失敗しないコツ3:スキルを伸ばし、ノウハウを蓄積する
RPAの社内開発で失敗しないための第3のコツは、「スキルを伸ばし、ノウハウを蓄積すること」です。
「たまたまパソコンが得意な社員が、自分の業務について、現状のスキルで分かる範囲の自動化を実現する」のは、もっとも自然でシンプルなRPAの活用方法です。
それで業務を効率化できるのはもちろん素晴らしいことですが、いつまでもこの段階にとどまっていては、より大きな成果を逃すだけでなく、社員個人のノウハウを組織として共有できず、本人の異動や退職を機に、かえって混乱を招いてしまうおそれもあります。
そうした事態を防ぐには、RPAツールの開発元やパートナー企業が提供する技術資料・セミナーなどを利用し、より高度なツール操作が分かる人を増やすのはもちろん、社内の開発運用ルールを統一し、優れた活用ノウハウを学び合える環境を整えることが大切です。
こうした研修や体制づくりもRPA開発と同様、いずれ社内で完結することを目標に、導入当初は外部企業のサポートを受けて行えば、よりスムーズに進められるでしょう。
6 外注時にも社内開発の知見が役立つ
技術的な難易度だけで言うと、RPAは社内開発が十分に可能な技術です。もっとも、実際の判断では研修コストや習熟期間、本業との兼ね合いも考慮しなければならず、外部に委託して開発運用したほうが合理的というケースも十分ありえます。
ただ、かりに外注する場合でも、自社に最適な方法を判断して選ぶことが必要であり、そのためにはRPAの開発運用に関する一定の知見を持っていることが非常に重要となります。そこで、
- RPAツールの導入当初は、必要に応じてベンダーの支援を得ながら開発する
- ツール操作の知識と運用体制づくりのノウハウを社内に蓄積することを意識する
- 徐々に社内開発のスキルを高め、外部委託と使い分けられるようにする
ことを推奨します。
7 まとめ
RPAはノーコード・ローコードで開発できる業務自動化の技術であり、簡単なものから高度なものまで、自社の現状に合わせたツールと社内開発手法が選べます。
RPAを社内開発することで、コストの削減はもとより、業務の実情に合わせた迅速な変更や修正対応が可能となり、また社内にノウハウを蓄積して主体的に運用できるようになります。
最初から完全に社内開発することが難しい場合は、開発実務や研修で外部のサポートを受けながら社内開発者を育成し、現場で自己完結できる範囲を徐々に広げていくとよいでしょう。
関連ページ:BizRobo!ユーザーの声