今回はRPAエンジニアになって身についたと感じるスキルについて紹介したいと思います!
RPAエンジニアになって1年半ほどが経ち、身についたと感じるスキルはたくさんありますが、第1回目に紹介するのはプログラミングスキルです。
RPAに興味のある方やIT業界に興味のある方はぜひ参考にしてみてください^ ^
- RPAとは?
- プログラミングスキルとは?
- RPAエンジニアはプログラミングスキルを身につけることができるか
- 身についたと感じるプログラミングスキル
- 今後チャレンジしたいこと
- まとめ:RPAでもプログラミングスキルは身につく
RPAとは?
RPA(Robotic Process Automation)は人間が行っているPC業務をロボットが代わりに行うこと、またその概念のことを指します。
RPAを導入することで単純作業を自動化することができ、人手不足の解消や人が本来するべきクリエイティブな仕事に時間を使うことができるとして注目されています。
私は現在UiPathとWinActorというRPAツールを使って主に金融系の業務を自動化しています。
RPAエンジニアとして1年半ほど経ちますが、今では年間2000時間もの業務を削減するロボットを作ることができるようになりました。
実際にRPAを導入している企業は、エンジニア以外の方々も常に「自動化ができるか」という意識を持っており、日々RPAの持つ力を実感しています。
RPAについてより詳しく知りたい方は以前に書いたこちらの記事も参考にしてみてください。
RPAは今後AIとの組み合わせが期待されています。
実際に私もAIシステムとRPAを連携させる案件に携わっており、今後もまだまだ成長が期待できると感じています。
プログラミングスキルとは?
プログラミングを学ぶとコンピュータへの命令の出し方やコンピュータの仕組みを学ぶことができます。
プログラミングスキルというと様々なプログラミング言語を使ってコードをバリバリ書くというイメージが強いですが、それだけではありません。
プログラミングスキルは、現代では避けて通ることのできない
・コンピュータの知識を使いこなすスキル
・論理的思考法(ロジカルシンキング)を使って問題を解決するスキル
であると言えます。
プログラミングを学ぶメリットや必要性について詳しく知りたい方はこちらの記事を参考にしてみてください。
RPAエンジニアはプログラミングスキルを身につけることができるか
これからRPAエンジニアを目指している方の中にはプログラミングスキルを身につけることができるか不安に感じている方もいるのではないでしょうか。
結論から言うとRPAエンジニアは十分にプログラミングスキルを身につけることができます!
RPAは非エンジニアでもノンプログラミングでできるツールというのが売りになっていますが、「プログラミングができなくても大丈夫!」ということではありません。
RPAはコードを書く代わりに処理が組み込まれたブロックをパズルのように組み合わせてロボットを作っていきます。
条件分岐処理や繰返し処理などを使ってプログラミングを行うという点においては通常のプログラミング言語同じだと思います。
例えば、VBAで「正しい日付が入力されるまで処理を繰り返す」というロジックは以下のようなコードを書くことで実現できます。
VBAを知っている方からするとなんてことのないコードですが、
慣れていない方からするとやはり難しそうに見えると思います。
これと同じ処理をRPAツールのUiPathで作ると以下のようになります。
VBAで書いたコードと同じ処理をしていますが、図として見ることができるのでなんとなく理解できそうな気がするのではないでしょうか?
このようにRPAは直感的な操作で作ることができるという点で、他のプログラミング言語と違いがあります。
しかし、「どのようにパズルを組み合わせて目的を達成させるか」というロジックを考える点においては、プログラミング言語を使ってコードを書くことと違いはありません。
そして「どのようにパズルを組み合わせて目的を達成させるか」を考えることはそのままプログラミングスキルを身につけることに直結します。
私の場合、この直感的な操作のおかげで挫折することなく、ロジックを考えることに時間をかけて学習することができました。
身についたと感じるプログラミングスキル
具体的に私が身についたプログラミングスキルについて紹介します٩( ᐛ )و
設計能力
RPAエンジニアは基本的に直接お客さんヒアリングを行いロボットを作成します。
人間が行っている処理をどのようにPCで実現するのかを考えながらヒアリングを行うので、基本的なコンピュータの知識は必須となります。
当初はお客さんから要望を聞いても、どのようにそれをロボットで実現するのか全くわかりませんでした。
そこで、まずはとにかく自動化したい業務の流れを頭に叩き込んで理解するようにしました。
いきなりロボットを作成するのではなく、Excelに手順を細かく書き出してみたり、フロー図を作って構成を考えるという作業を続けていました。
細かく流れを書き出してみることで、RPAを使ってまずは何をしなければいけないのかが明白になり、徐々に開発がスムーズにできるようになりました。
慣れてくるとヒアリングを行いながら頭の中で設計図が出来上がったり、前に作ったロボットと共通点する処理が多くあることに気がつきます。
いつの間にか自分から様々な提案も行うことができるようになっていました。
1年ほどロボットを作って感じることは、設計の段階でしっかりとした構成ができていれば、とてもスムーズに開発が進むということです。
逆に設計の段階でしっかりと構成や仕様を決めずにロボットを作り出してしまうと、途中で混乱したりいつまでも終わりが見えない状態に陥ってしまいます。
設計に時間が掛かると遠回りをしているように感じるかもしれません。
しかし、時間をかけてしっかりと考えることで確実にプログラミングスキルは身につくと思います。
RPAエンジニアとしてどのような知識が必要になるかということは、ヒアリングを行いロボットを作るという流れを一通り体験すると徐々にわかってくるのであまり心配する必要はないと思います。
コンピュータの基礎知識が全くないという方はITパスポートの学習がおすすめです。
私がIT未経験からRPAエンジニアになるまでにしたことについては、以前書いた記事を参考にしてみてください^ ^
開発能力
設計が終わり仕様が固まるといよいよRPAツールを使ってロボットの開発を行います。
開発では条件分岐処理や繰返し処理などプログラミングの共通概念である知識が必要となります。
私はRPAの案件に参画する前にこのあたりの共通概念は学習していたので、そこでつまづくことはありませんでした。
しかし、実際にこれらの知識を使って処理を組んだことがなく、知識があっても全く使いこなせないということに気がつきました。
例えば「ファイルを開いて、データを1行ずつ読み込み、年齢が〇〇歳以上のデータがあれば別のファイルに転記する」という処理があった場合、条件分岐や繰返しの知識を使うことがわかっていても、どのような条件で何を繰り返せばよいのかが全くわかりませんでした。
これを理解するには、とにかく自分で作ってみるしかありません。
どれだけ簡単な処理でもいいので、自分で考えてロジックを組んで動かすことが大切です。
簡単な処理ができれば、次はそれよりほんの少し難しい処理を作ってみます。
これを繰り返すだけで、着実にプログラミングスキルは身につきます。
プログラミングの学習は始めが一番挫折しやすいと聞きますが、RPAは視覚的にも理解ができるので学びやすいと思います。
1年経つと私の場合、全てを最適な方法でというわけにはいきませんが、自分の持っている知識と経験でお客さんからの要望はほぼ全て応えることができるようになりました。
ある程度できるようになると、もっとシンプルにできないか、もっと効率よく組めないか、など自然と新しい技術を探すようになります。
RPAはプログラミング言語の習得にも役に立つ
RPAの仕事が始まる前のことですが、プログラミング言語を学習しようと思ってVBAにチャレンジしたことがありました。
初めてコードを書いて学習したのですが、さっぱりわからず早々に挫折したという苦い記憶があります。。
RPAエンジニアになるとほとんどの開発でExcelを使用します。
自動化したい処理の中にすでにマクロが組み込まれている場合もあり、VBAのスキルは避けて通ることができなくなってきました。
苦い記憶のあったVBAでしたが、再チャレンジで学習をすると不思議なことにとても理解しやすく感じました。
RPAでプログラミングの共通概念を理解したこと、試行錯誤してロジックを考えたことが他の言語を学習する上で役に立ったのだと感じています。
RPAエンジニアの現場ではVBAだけでなくVBS・VB.Net・HTML・C#・JavaScriptなど様々な言語を使用するケースがあり、これらの技術を学ぶことで色々な案件に参画するチャンスも生まれると思います。
これからプログラミング言語の学習を考えているけれど、どの言語を選べば良いかわからないといった悩みを抱えている方はぜひRPAも選択肢の1つとして考えてみてはいかがでしょうか。
問題解決力
RPAに限ったことではありませんが、エンジニアにとってエラーはつきものです。
RPAはすぐに開発ができたり、対応がすぐにできるというメリットがありますが、
処理で使用しているシステムに変更があれば、たいていの場合エラーになるなど不安定な面もあります。
そして、直接お客さんとやりとりをしているのでエラーが出るとすぐに自分宛に連絡が来ます。。笑
しっかりした設計を行ったロボットでもエラーは間違いなく出ると考えていた方が良いです。
そして、様々なエラーに対応することでプログラミングスキルの本質である問題解決力
を身につけることができます。
当初はエラーの問い合せが恐怖でしかありませんでしたが、今では全く予期していなかったエラーが出た場合でも、落ち着いて原因を1つずつ解明して解決することができるようになりました。
エラーが発生しやすい場所にあらかじめ対応する処理を組み込んでおくなどのスキルもだんだんと身についてきました^ ^
問題解決力はRPAだけでなく、日常生活でもかなり役に立つスキルです。
エラーが出たらチャンスだと思って前向きに対応してみてください!
今後チャレンジしたいこと
他の技術も身につける
この1年RPAを通してITに関する幅広い知識やプログラミングの楽しさを知ることができました。
RPAをもっと突き詰めたい気持ちも強いですが、他の技術を身につけることでRPAのスキルに還元されることは間違い無いと実感しているので、RPAだけにこだわらず色々な技術を身につけていきたいと思っています。
今はVB.NetやC#などプログラミング言語を並行して学習しているので、コードを書いた開発も今後チャレンジしたいです。
経営面も合わせて勉強する
もともと銀行員であった自分としては、技術だけでなく経営面も非常に興味があります。
RPAは業務効率化が一番の目的であり、企業側からすると結果が目に見えやすいので打ち合わせ時にお偉い方々が同席することも少なくありません。
今はロボットの開発者としてしか見られておりませんが、将来的には経営的なサポートやコンサルティングができて、さらにロボットを作ることができる人になりたいと思っています。
今年から始めた中小企業診断士の学習もモチベーションをあげて頑張ります٩( ᐛ )و
まとめ:RPAでもプログラミングスキルは身につく
RPAはプログラミング言語のようにコードを書いて開発をするわけではありませんが、プログラミングスキルの上達にとても役に立ちます。
プログラミングスキルを身につけるためには継続して学ぶことが本当に大切です。
私の場合はRPAを通してプログラミングの楽しさも知ることができました。
これからプログラミングを学習しようと考えている方の中には、何から手をつければ良いかわからずいきなり難しい言語を習得しようとするかもしれません。
まずは、プログラミングの楽しさを知ることが大切だと思います。
そしてプログラミングスキルは継続して学ぶことで必ず身につきます。
RPAはそんな方々にとってもとても良いツールだと思うので、ぜひ一度使ってみてください(^ ^)