RPA(Robotic Process Automation)は、近年ビジネスプロセrスの自動化において大きな注目を集めています。
しかし、RPAを導入にあたって「プログラミング言語の知識は必要かどうか?」という点について疑念を抱く方も少なくありません。
IT人員は不足しがちであると同時に、会社規模によってはIT専門人員を置けないケースもありますが、エンジニアがいないとRPAツールは導入できないのでしょうか?
結論からお伝えすると、RPAを導入する際にプログラミング言語の知識が原則不要です。
本記事ではその理由と、その一方で必要とされる場面・役立つプログラミング言語情報について解説します。
RPAの導入にプログラミングは「原則不要」
まず前提として、RPAの導入の際にプログラミング言語が必要か?という点については「原則不要」が前提と考えておきましょう。
UiPath・WinActor ・BizRobo!など、主要なRPAツールソフトウェアが、1台のPCへのインストールから導入可能であると同時に、現在はクラウドサービスによるインストール不要の導入も可能です。
さらに、実際にRPAの本質部分である、デジタルレーバー(=ロボット)を自動で動かすことについては、シナリオ・ワークフローと言われるロボットが動く筋道・操作手順を作成する必要があります。
このシナリオ・ワークフローを作成して自動化するには、プログラミングは不要です。
特に、UIを工夫した特徴的なRPAツールでは、ドラックアンドドロップでもワークフローの作成ができるものもあります。業務の自動化をドラッグアンドドロップで行えるわけですから、導入の技術的なハードルは高くありません。
上記から、導入~通常業務での利用にプログラミングは「原則不要」と考えておいてよいのです。
エンジニアがいないからRPAを導入できない、業務が自動化できないというのは間違いと考えてよいでしょう。
RPAでプログラミング言語を必要とする場面とは?
ところが、導入から運用の際、トラブルシューティングのために「プログラミング言語があると強い」という場面は登場します。
また、ツール開発・高度なカスタマイズでプログラムを書かなければ目的が果たせないものなどは、ソフトウェア開発専門のエンジニアの仕事であり、プログラミング言語ができないと難しくなります。
つまり、RPAツールを購入し、カスタマイズなしで利用する・ソフトウェア開発行為を伴わない場合は、プログラミング言語が不要ですが、ツールそのものの開発・カスタマイズを行う・ツールの保守を行うといった場面では、プログラミング言語が必要ということになります。
RPAツール開発
ツールの開発には、プログラミング言語に関する知識およびシステム開発の知識が必要です。「開発」とはここでは、RPAツールを一つのシステムとして設計し、くみ上げる行為を言います。
高度のソフトウェアに関する理解と知識が必要であって、プログラミング言語の知識はその一部と言ってよいでしょう。システム開発には分業がつきものですので、プログラミングを実際に行う人員は一部にすぎません。
しかし、設計やプロジェクトマネジメントといったRPAツール開発の業務全体に関わる人に、プログラミング言語の知識がないのではスキルが不足です。
ところで、日本の大企業のRPAツールに意外に多いのは「自社開発」RPAツールです。自社で自作でRPAを作っています。
これは自社の業務に合わせて、RPAツールを開発したものです。だからといってこれらの企業において自社で開発したものではなく、自社に合わせて外注で開発しているものがほとんどです。
委託開発を得意としている富士通や、日立ソリューションズなどが、外注先の代表例です。
ツールのカスタマイズ・UI改変
一から自作でとまではいかなくても、UIを自社の業務にあわせて誰にでも使いやすくしたい、あるいは、自社の業務により合った便利な機能の追加・変更をしたいとなると、カスタマイズが必要です。
この際、カスタマイズやUI改変もプログラミング言語の知識がないと、難しくなります。
ツールの運用・保守
まず、RPAツールには保守が必要です。ソフトウェアのエラーの修正・バグ修正などは、典型的にプログラミングの言語がわかる人員が行う業務です。
また、RPAツールには、サーバで多数のデジタルレーバーを管理する種類のサーバ型RPAツールがありますが、サーバのメンテナンスなどもここでいう保守の一部です。
運用は保守と違い、技術的な運用と、規則やオペレーションのルールの問題などの非技術的な運用の問題があります。前者に関しては、どれだけのことがRPAツールでできるか、限界を見極めるという役割のエンジニアが当たる必要があるでしょう。
つまり、こうした業務もプログラミング言語の知識が基礎となって行われることが多いのです。-
シナリオ・ワークフローの作成は例外もある
シナリオ・ワークフローの作成は先ほどご紹介した通り、プログラミング言語の知識は必要ないのが原則です。
しかし、オープンソースソフトウェアなどで、プログラミング言語の知識を有しているユーザーを前提としているものは、導入からシナリオ・ワークフローの作成にプログラミング言語の知識が必要な倍委もあります。
Excelのマクロ(VBA)程度で済むもの、もう少し高度なC+、C#などを知っていると使いやすいものなどがあります。
既存アプリケーション・基幹システム・AIなどとの連携
API連携のみでRPAツールと連携できる場合はプログラミング言語の知識は多くの場合不要です。簡単な設定の処理のみで連携し、データを共有したり、あるいはかかるシステム等の上でRPAの操作を行うことができます。
ただし、カスタマイズ・設計変更を要するような場合、あるいはネットワークの改修などが必要になる場合など、連携には無数の課題が生じる可能性があります。
簡単にはできない連携には実際にプログラミング言語を知ってコードが書ける人の助けが必要になると考えられます。
ただ、これも外注の作業でまかなうことは可能です。
自社で必ずしも言語がわかる人員を用意する必要はない
このように考えると、RPAを導入に際して「プログラミング言語の知識は基本的に不要」と言えるでしょう。
その後の運用・保守については言語が必要となるシーンが出てきますが、必ずしも自社でITの専門人員を用意する必要はなく、外注などを上手く活用するといいでしょう。
代表的なRPAツールを利用している場合は、市場全体でITエンジニアの人員が不足しがち、RPA向けのコーディングができる人も多くはない、といっても、ベンダー経由でパートナー企業を紹介してもらうなど、さまざまな方法が考えられます。
ただし、いくらIT人員がいないといっても、運用がある程度の規模になりますと外注にすべて任せることはかなりの予算が必要であること、管理の問題は自社でおこなうほうが何かと安心であることから、人員の確保をしておいた方がよいでしょう。
オススメなのは、外注で運用・保守の面倒を見てもらいながら、ベンダー検定を受けてもらい、自前の人員を養成する、あるいは、わずかな数だけでもエンジニアを採用しておき、外注とのコミュニケーションにあたってもらうことです。
特に外注と会話ができると、自分たちでできることと、外注に頼んだ方がよいことの切り分けが非常にスムーズであり、限られた予算を効率的に使えます。
役立つプログラミング言語一覧
以上でご紹介した通り、自社でプログラミング言語の知識が必須というわけではありませんが、例えば外注に発注するときなど、どんな言語ができるエンジニアにお願いするか、概略を知っておくと便利です。
また、各言語がどのように使われるかの基礎知識としても役立ちますので、言語とRPAツール開発・シナリオ開発などの場面でどのように使われるか、簡単にまとめました。
C+,C++, Python, Java, JavaScript
これらはシステム開発の中心となる開発言語です。また、ウェブベースのアプリとしてRPA開発を行う際にはJavaScriptのプログラミング知識が必要となります。
Google App向けのGAS、あるいはこれにHTMLを加えた知識があると、Webアプリ開発に、UI開発までかなり自由度が上がります。
Pythonは、AI・データの処理に向いているシンプルで使いやすい言語ですので、今後はより利用範囲が広がるものと考えられます。
AIとRPAの連携には今後欠かせないプログラミング言語の知識になるものと考えられます。
.Net、フレームワークとそこで利用される言語
RPAツールの開発環境を整える上で、.Netを使うことや、RobowareのようなRPA用のフレームワークを利用すると、開発が効率化できます。
.Netの場合は、各開発言語の.Net版の知識があるとより便利と言われています。
VBA
VBAは、Excel マクロを作成する際に使用する言語です。RPAと自動化の点では共通していますが、
・PCの操作を自動化する=RPAツ―ル
・数値の変換・置換を行う=マクロ
と双方は作用が異なります。
しかし、データの処理などは、VBA+RPAで行うと便利なことが多々ありますので、特にシナリオ作成の場面で知っていると便利なプログラミング言語の知識です。
例えばデータのピックアップはマクロで行い、並べ替えまでを行い、さらにRPAで入力を自動化する、といった一連の流れで業務時間を削減する効果が大きくなります。
HTML
HTML言語は、Webアプリ開発(特にUI開発)の際、また、データを抽出して、エラーをなおすときなどの運用の際に、使えるプログラミング言語です。
HTML5の知識があると、シナリオ作成の際にもWebのデータを取るのに効率化の効果がアップするとの意見もあります。
記事まとめ
- RPAツールの導入にはプログラミング言語の知識は必須ではない
- 運用・保守・ツールのカスタマイズないし開発にはプログラミング言語が必要となる
RPAツールは、UIの工夫やAI技術との組み合わせ、あるいはクラウド化により、非エンジニアでもメンテナンスをあまり気にせずに導入できるものも増えていますが、活用はエンジニアの手を借りると幅が広がることは間違いないでしょう。
エンジニアとのコミュニケーションに、この記事を活かしていただけますと幸いです。