Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

【初中級者向け】RPA開発における「人に優しい設計」とは!?(前編)

最近、RPAが頻繁に取り上げられるようになり、RPA開発に携わった経験のあるエンジニアも増えてきました。

一方、実際にロボットを1つ2つ作れるようになったものの、その先どうやってスキルアップしていけばよいのか、疑問を持っている方も多いのではないでしょうか?

そこで今回は、RPA開発初心者から中級者にレベルアップするために必要なノウハウを、メットライフ生命の宮 知秀さんにお伺いします!

 

宮 知秀(みや ともひで)さんとは?

メットライフ生命で、ロボティクス・エンジニアとしてRPA開発に従事。これまでにソフトバンク・ロボティクスのカスタマーサクセスの立ち上げや、生保系SIerとして生命保険会社の基幹システム開発に携わる。

 

 

無駄を削って高いパフォーマンスのロボに

宮知秀さん→大手生命保険会社のシステム開発などに携わったのち、ソフトバンクでpepperのアプリケーション開発に従事。その後、デジタルトランスフォーメーションに取り組むメットライフ生命保険にてRPA推進を行う現職に従事。

 

ーー宮さんのロボ開発におけるこだわりポイントを教えてください。

基本的には正しいインプットが来たら、正しいアウトプットが出ること、要は機能をきちんと作り込むことを優先していますね。

たしかにロボは人の業務を代替できますが、一方で処理に誤りがあると100%間違えてしまうので、そうなると意味がなくなってしまいます。

ただ、それだけではなくて、システム開発の分野で「非」機能要件と呼ばれるような、ロボのパフォーマンスやユーザーエクスペリエンス、セキュリティ、運用性のようなところの向上を意図して開発をしています。

 

ーーロボのパフォーマンスと言うと、何を指しているんですか?

ロボのパフォーマンスは、端的に言えばロボの処理に掛かる時間を短く保つことです。

例えば、保険業界は繁忙期があり特定の時期だけ大量に処理をこなさないといけないということがあります。

以前私が作ったロボをユーザーに使ってもらった時に、普段はトランザクション当たり2件〜5件、多くても10件くらいの処理量だったのですが、急に1つのトランザクションが200件以上だった日があったのです。そしてその処理に10時間くらいかかっていて、ヒヤッとしたことがありました。

というのも、この処理は当日中に完了させる必要があるので、期限を守るためには短時間で大量のデータを処理しないといけないと分かったんです。

で、聞いてみたら最大300件以上のもあるらしいと(笑)そのロボが稼動できるのが、9時から21時までなので、そうなると時間オーバーになってしまうんですよね。なので、パフォーマンスを改善、もしくは最適な状態に保つことを意識するようになりました。

 

ーーなるほど。パフォーマンスの改善というのは何をさせているんですか?

1件あたりの処理時間というものを見ています。

さっきの200件の処理であれば10時間掛かっていたなら、1件あたりの処理が2分くらいになります。だとすると、それを1分に半減させることができれば単純計算で総処理時間も半分になるので、とにかく1件あたりの処理時間をどれだけ短くできるかという点がパフォーマンスを向上させるポイントだと考えています。

 

パフォーマンス向上は緻密な作業の積み重ね

ーーどうするとパフォーマンスは向上するのですか?

これは実際にやったことですが、ロジックを整理することが重要です。

例えばBlue Prismはホストシステムという昔ながらの黒い画面にアクセスができます。ホストシステムにアクセスした時に画面を遷移するという待機時間があったりします。そのため無駄な画面を立ち上げないとか、画面にアクセスする場合は一回だけにするとか、Excelを立ち上げるのも効率的にするため先に立ち上げておくとか。そんな小さな工夫をどんどん入れていって処理時間を圧縮していくみたいな感じですね。緻密に変なアクセスをしているものを潰していきます。

 

ーー無駄な動きをなくすというのがポイントなのですね。

そうです!ロボはボトムアップな開発になるので、割とExcelにアクセスして、データを書き込んで、何かやって、、みたいな感じでチャチャっと作れるのですが、そうやって作ってしまうと最初から最後までロボが色んな所にアクセスしたりとかして無駄が出ます。最初にデータを取るところでシステムにアクセスし、システムへのアクセスはそこだけに抑えるみたいな形にしてあげるだけで性能が変わります。

ただこれは一度無駄を作り込んでしまうと凄く細かいので後から修正するのは結構大変なんですね。なので、最初に作り上げる時にパフォーマンスが高い状態をキープするのが大事だと思っています。

これはRPAに限らずですが、特に無駄なループ、無駄なファイルの読み書き、無駄なシステムへのアクセス、無駄な待機あたりがパフォーマンス劣化ポイントです(笑)

 

ーー開発者はただ作るだけでなく、使い勝手、つまりパフォーマンスも意識していかないといけないんですね。

あとは最後の切り札ですが、複数のロボが同じ業務をこなせるようにすることもしています。こうなるとロボを増やせば倍々に処理できる量も増やせてスケーラブルになりますが、今度は並列で動く弊害も出たりするので、どちらにしろ、しっかり設計してロジックを整理することが大事かと思います。

 

【初中級者向け】RPA開発における「人に優しい設計」とは!?(後編)に続く

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です