見出し画像

RPAって?【前編】

本日は弊社RPAエンジニアよりRPAの世界を解説してもらいます。是非最後まで読んでみてくださいね。

----------------------------------------------------------------------------------------------

まず私は2016年の3月から半導体メーカーで働き始めました。それから4年間ほどはITに全く関係ない仕事をしており、その時点で私はIT系に行くとは全く思っていませんでした。

 転機が訪れたのは2019年の8月。その当時、私の会社は世界中に工場を持っており、その中でTOPの方がRPA(Uipath)の推進を始めるということで、元々理系出身だったのが決め手となり、RPAのディベロッパー兼リーダーとしての仕事がスタートしました。


 最初はアカデミーの勉強を受けましたが、後半の解説があまり分からかったのですが、作っていけばわかるだろうという気持ちで初めてのプログラムの作成を始めました。最初はグーグルでわからない所は調べつつ作成をしていきました。

今にして思えば最初にしてはコードが長い上に難しいプログラムを作成してました。ただ、それが功を奏したのか、一個目が出来上がる頃には基礎が身につき、次のステップへ進めるようになりました。


 
個人的な見解ですが、RPA自体は他のJAVAやPythonなどの言語と異なり、視覚的に分かりやすく、言語を入力するのではなく、オブジェクトという簡単にいえば【メールを送る】や【エクセルの情報を取得する】という一つのコマンドを配置し、繋げていくものなのです。

つまりはとっつきやすく、会社の工数を削減することに関しては人員の育成が簡単で、他の言語にはない優位性がありました。

 ただ、簡単かと言われれば他の言語よりは簡単だが他の言語同様、奥が深いものだと私は認識しています。段々と作っていくと難しいものを作るにはSQLの知識やVBAの知識が必要になってきます。SQLは分かりやすく言えばサーバーからデータを取得したり、サーバーにデータを保存する言語になります。

私の会社ではセキュリティーの関係でデータの取得しか出来なかったので、データの保存や更新ができる場合は、より短時間での稼働で結果を得られます。またVBAも同じで、例えば結果が画像でしか取得できない場合は、対象のセルに画像を埋め込むようなコードを書かないといけません。


 またRPA本体も中々奥が深く、難しいものではロジックを考えなければいけず、大変苦労しました。その場合は私はいつもノートに手書きで書き、頭からアウトプットして整理することでロジックを作成してきました。他の言語でも言えると思いますが、アウトプットすることで全体像やロジックを組めるので、割りとオススメの手法だと思います。

ここである疑問が生じます。
比較的簡単なものは初心者でも組めるので、RPAのディベロッパーを雇用する意味があるかという点です。これには私も明確な答えを持っていませんが、やはり三年以上やっていても毎回新しい発見や手法の改善があり、バグの起きないプログラムの作り方や、バグが起きた際の有事の対応などは長年やっていないと身につきません。


また私自身がPCの自作や大学でプログラムを学んでいたことに起因しますが、上達するスピードや適正の話もあると思います。それ故に小さい会社ではRPAを外注する会社もあり、大きい会社であれば自社で育てるという選択肢もあると私は思います。ただ、RPAもプログラミングの一種である以上、運用と保守が必要となってきます。それを次で解説します。

 私が作ったプログラムで一番功績を上げたプログラムは週30時間以上の工数を削減しており、とても重要なプログラムでした。リリースした当初から携わっていましたが、何度も改修しなければいけない繊細なプログラムでした。

簡潔にどういうプログラムかというと、LOTと呼ばれるシリコンウェハーが最高で25枚入ったものがあり、それが番号で管理されていました。それをエクセルに書き、マクロのボタンを押すと、出荷工程でSTOPがかかるというものでした。半導体は些細な設定ミスや装置の状態により、歩留まりが極端に下る場合が散見する業界です。

もし歩留まりが下がり欠陥があるものを出荷すると顧客からの信用を失うため、必ず出荷可能か精査する必要がありました。そういうことがあるとプログラムを使い、出荷工程でSTOPをかける訳です。


 そしてこのプログラムの何が問題かというと開発者は等におらず、ITの専門部署に聞いてもエラーの種類すら理解していないという点がありました。

つまり、私は専門部署の人以上にそのプログラムを理解する必要がありました。エラーの種類も多く、どうしてLOTにSTOPをかけられなかったのか、エクセルに入力し、使っている人に伝える必要がありました。

私はなんどもエラーを出すために色々な条件でエラーを出し、まだ見つけられてないエラーがあればその他として分類し、運用していました。

一年ほど運用をしていて、新しいエラーが出たら結果を示すエクセルに書くバグに内容を追加していたのですが、なんとここで新しいバグが発見されました。

一年も使っていたのに新しいバグが出るとは私も思えず検証した結果、それがバグであると証明され、改修を余儀なくされました。

エラーの内容はというとバッググランド実行される見えないチェックボックスにチェックが付いていないというバグでした。

これを発見したのも偶然ですが、やはりどんなに正確にプログラムを作っても意図しない、それこそ認識できないところでバグが発生したりするのです。


 私はこの経験からやはりプログラムの運用と保守を含め、素人ではこういうバグの発見や改修は不可能だと思い、餅は餅屋に任せろとも言いますが、ある程度プログラムに精通がある人でないと、RPAは取っつきやすいとは言え、プロに任せるべきだと思いました。

また話は変わりますが、RPAは一人では上達できないものだと私は考えています。

私の他にもう一人リーダーがおり、勉強会を開催することで、どういうプログラムの作り方が正解なのか、どういう手法があるかというのを新人だけではなく、ある程度プログラム作ったことがある方も新しい発見があり、月を追うごとに私や他のディベロッパーのプログラムの作り方も変わっていきました。

やはりチームで情報交換を行うと全員に恩恵があるので、RPAを作る際には一人で悩むのではなく、誰かに相談するという選択肢が必要であると思います。

前編はここまで!後編もこうご期待!






この記事が気に入ったらサポートをしてみませんか?