RPAにプログラミングの知識は必要か?
RPAを導入し、ロボットを作成して運用するためにはプログラミングの知識が要らないわけではありません。正確には「RPAはプログラムを書かなくてもロボットを作れる」という言い方が正しいように思われます。
さらには、一部のRPAツールやセミナー、関連本の中には「プログラミングの知識は不要」とうたっているものも存在します。それらを見てみると、その意味は「一度業務を覚えさせたら、あとは業務をロボットがやってくれるから」「ロボットは部品を組み合わせれば作成できるので、プログラミングの知識は必要ない」という理由とともに説明されています。
しかし当社では、プログラミングの基礎的な知識は「あった方がよい」と考えています。なぜかというと、RPAのシナリオやロボットの作り方とプログラミングには共通点が数多くあるからです。
導入から運用に至るまでの過程において、プログラミングの知識があった方がよい理由とは?
RPAはただ導入するだけでは業務を自動化できません。まずはシナリオやロボットを動かすためのロボットファイルを設計・開発し、自社の業務をRPAに覚えさせます。そして作成したロボットを実行環境にインストールし、管理ツールで設定を行います。これがロボットを実行するまでの一連の過程です。
シナリオやロボットの開発とは、ソフトウェアの開発と共通点があり、ほぼ同じ工程をたどります。そのため、プログラミングの知識がある人はそうでない人に比べて、この導入から運用までの一連の過程をスムーズに行える可能性が高いと考えられるのです。
それでは、プログラミングやRPAのシナリオ・ロボット開発には具体的にどんな工程があるのかを、この2つを比較しながらご紹介します。
1.要件定義、開発
ソフトウェアの開発をする際には、必要となる機能や仕組みを決定します。これが要件定義と呼ばれるものです。RPAでシナリオやロボットを作る際にも、自動化したい業務の内容や範囲を決定し、どのような形で業務を自動化するのかという作業が必要です。
また、RPAを導入する際にはRPAのみを利用して業務効率化を図るのではなく、既存のアプリケーションや社内システムも併用することも検討すべきポイントです。そのため、RPAのこれらの開発や運用の知識を持つ人材がRPAの導入に関わることが求められます。
2.開発
実際にRPAのシナリオやロボットを開発する段階においても、プログラミングの知識は必要です。自動化する作業も、単に「Aという項目を見つけたらBを入力する」というような単純なものだけではないでしょう。複数のプロセスを組み合わせたり、複数の条件から入力すべき項目を判断したり、画像認識を経てロボットに判断させたりといった高度なロボットを作成するプロセスはプログラミングと通じるものがあります。
3.テスト
ソフトウェア開発においてテストはとても重要です。なぜなら、ソフトウェア開発にはバグがつきものだからです。これはRPAのシナリオやロボット開発も同じです。
RPAツールでシナリオやロボットを作成後にも、実際のデータで実行する前にテストデータを用いてテストを行います。そして、本来入力されるべきではない文字や数字が混入されないか、シナリオやロボットが他のデータを用いて作業していないかなどを確認します。この作業を行わないままRPAを運用してしまうと、データの破損やロボットの停止などの重大なバグが起こってしまう可能性があります。これらのリスクを発生させないためにも、プログラミングの知識や経験は必要です。
4.保守・運用
ソフトウェア開発における保守・運用は、エラーが起こった時のみに発生するものではありません。業務のプロセスが変わったり、社内システムや基幹システムに変更があったりしたら、それに合わせてエンジニアはソフトウェアのメンテナンスを行います。RPAにもこれと同じことが当てはまります。
エラーが発生した際、プログラミングの知識がないと対応できない
RPAを導入し、実際にロボットを操作しているとエラーは必ず発生します。なぜかというと、先にも述べたようにRPAはデスクトップ上のアプリケーションや社内システムを利用しており、それらにエラーが発生すれば連動してエラーが起こります。
RPAは事前にプログラミングされたことのみを実行するので、エラーが起こった際の処理をプログラミングしておかないとエラーを実行し続けてしまいます。そのため、何か起こった際には手作業でエラーを修正したり、RPAの利用をストップしたりしなければなりません。
このように、RPAを設定する際には作業手順そのものだけではなく、エラーが起こった時にどんな処理をするかまでを教えなければなりません。また、エラーが起こった時の処理は例外処理と呼ばれるものですが、例外処理は複雑であり想定されるケースも多岐にわたります。
RPAは導入後も定期メンテナンスが必要となる
RPAツールとは他のアプリケーションや社内システムと同じく、定期的にメンテナンスを必要とします。また、パソコンの環境やOSのバージョンアップに伴ってメンテナンスが発生することもあります。
その際に、同じロボットを複数作成して稼働させていたとすれば、全てをメンテナンスする必要があります。エンジニアはそんな時のために、類似する処理は共通化して一元管理しています。同じような処理は共通化して何度も手を動かさなくて済むように対応するのです。
RPAを導入する際には、どんなプログラミング言語の知識が必要か?
それでは、RPAを導入・運用するにあたってあるとよいプログラミング言語を紹介します。
VBA(エクセルマクロ)
VBA(Visual Basic for Apprications)は、マイクロソフトのMicrosoft Officeシリーズの製品に搭載されているプログラミング言語です。少し詳しい方であれば「VBAはエクセルの操作をするものでは?」という疑問を持たれるかもしれません。
確かに、多くの企業ではデータ転記やレポート作成など、エクセルの操作効率を向上させるためにVBAを導入しているというケースが多いように思われます。特にエクセル上で行われる作業をプログラミング言語化したものは「マクロ」と呼ばれますが、マクロの作成はRPAのロボット作成と近しいものがあります。
VBAはエクセルの操作をするためのツールにとどまりません。VBAでIEなどのブラウザ、外部アプリケーションやWeb操作を行うこともできます。RPAとVBAやマクロとの違いは、Microsoft Officeのみの作業に対応するものと、それ以外のツールを用いる作業に対応できるものということです。
そのため、Microsoft Officeだけでなく複数のアプリケーションが関連する業務をRPAに任せたいという場合にもVBAの知識が活躍します。VBAは入門書も数多くあり、勉強方法も多く共有されていますので、とっつきやすい言語であるといえます。
GAS
GAS(Google Apps Script)はその名の通り、Googleが提供しているプログラミング言語です。GメールやGoogleマップなどGoogleのサービスを連携させたり、自作のアプリケーションを開発することも可能です。いまやビジネスの場でも使われることが多くなってきたこれらのGoogleのサービスを利用した定型業務を自動化させたい場合、GASの知識が求められます。
GASはWeb開発に欠かせない「JavaScript」という言語をベースに開発されているため、JavaScriptの知識があれば応用できます。しかし、GASを一から勉強するためには前提知識としてJavaScriptの知識が必要になるため、初心者には少々ハードルが高くなります。学び方は、専門のサイトや動画が数多く公開されているので、これらを参考にして基礎知識を得るとよいでしょう。
Python
Pythonは初登場が1991年と、プログラミングの中では歴史のあるものです。しかし、コードがシンプルであり、さまざまなプログラムを少ないコードで記述できることから、いまだに数多くのWebサービスやアプリケーションの開発の際に用いられています。RPAでロボットを作成する際、連携させたいサービスやアプリケーションがPythonで開発されていた場合、こちらのプログラミング知識が必要です。Pythonの学び方は、専門の書籍や動画、サイトなどもありますが、かなりの専門的な知識を求められるため、スクールなどで学ぶというケースも多いようです。
プログラミングができる人材が少ない企業がRPAを導入するにはどうしたらよいか?
大手企業であればプログラミング人材がすでに社内にいるというケースが多く、RPA導入に関しても問題なく進められることでしょう。
しかし、中小企業や人材確保が難しい企業でプログラミングの知識をもつ人材が少ない、あるいはいないという場合、RPAの導入はどうすればよいのでしょうか。
繰り返しになりますが、プログラミング知識があった方がRPAの導入やロボットの開発はスムーズに進みますので、そのような人材がいた方がよいといえます。そうでない場合は、上記のプログラミング言語を一から勉強するという方法もありますが、技術者の育成には膨大な時間とコストがかかります。システム開発部との調整や中途採用などで人材を確保するという手段も有効ですが、人材を獲得するコストは大変なものです。
その余裕がない会社の手段として、外部の会社に委託したり、支援サービスやコンサルティングを依頼するという方法があります。
この方法のデメリットはコストがかかることですが、上で述べたようにエラーが発生した際や定期メンテナンスに対応することが難しいことを考えると有用な手段といえます。「RPAの導入を検討しているがプログラミング人材の確保が難しい」という悩みを抱えている担当者の方は、ぜひこのサービスを検討してください。
導入だけをプロに任せるのは少し危険
とはいえ、一点気をつけていただきたいことがあります。それは、導入の部分だけをプロに任せるのは少し危険だということです。上記で述べているとおり、保守やメンテナンス、トラブル対応に対応する人材が導入部分のに携わっていないことは、大きなリスクを招きます。
プログラミングが分かる社内人材を育成する必要性
それではどうすればよいかというと、支援サービスやコンサルティングを利用しながら、プログラミングが分かる人材を社内で育てることが求められます。プログラミングに限らず、特定のスキルを持った人材を育成することはコストや時間がかかるものです。
しかし、このコストを省いたがために後に大きなトラブルを招いてしまうようでは元も子もありません。トラブルをある程度で社内で対応できることは、リスク管理にもつながります。
定型業務の時間削減を希望する企業担当者の方は、RPA導入を検討する際に外部サービスの利用や人材育成を含めた幅広い視点に立って検討をすることが求められます。導入に関して困ったことや分からないことがある方は、当社にぜひお気軽にご相談ください。