【RPA】意外と困難な追加開発

こんにちは、営業・開発エンジニアの鈴木です。

業務の中でRPAロボット開発を行うことがありますが、ロボット開発をする、と言っても
いろいろなケースがありますよね。新規開発・保守開発・追加開発などが挙げられます。

新規開発はその名の通り、ロボットを一から開発する事で、業務の詳細ヒアリング・
ヒアリング内容をもとに要件まとめ・要件内容をもとに設計を行なって、それから
開発となります。上記の開発の中では一番工数が掛かってしまうと思われますが、開発の
流れ・手法・ロボット名などの命名ルール・お作法などを守った中であれば、自身の
開発しやすい方法で開発を進められるといった特徴があります。

保守開発は、既に稼働しているロボットに不具合があった場合、正常に稼働できるように、
あるいは小規模な機能を追加する際に一部修正するくらいの、一般的には軽微な改修となります。

こちらは修正規模も小さく、工数も多くは掛けずに対応できるかと考えます。

そして追加開発は同じく既に稼働しているロボットに、処理内容が追加される事に伴い
大規模な機能を追加するイメージとなりますが、この追加開発をする際に新規開発とは
違った困難に見舞われる場合があります。

■追加開発の難点

既に稼働しているという事は、誰かが開発したロボットという事であり、自分が過去に開発した、
開発した担当者がすぐ会話できる場にいるような場合は支障はないのですが、
開発を行った担当者が別部署に異動・既に退職済で担当者不在という事になると、
まずはロボット処理の把握に時間がかかってしまいます。

(設計書・仕様書といったドキュメントが残っていない場合はなおさらです)

となると、

ロボットの内容を手掛かりとして処理を把握する必要がある
 (リバースエンジニアリングとも言います)。

開発経験年数・開発環境の差によって開発の仕方も十人十色で、いくらRPAが
とっかかりのしやすい開発ツールとはいっても別な担当者が開発した内容もパッと
見てもすぐにわからない場合もある

・ようやくロボットの内容を把握できたとしても、ここから追加機能の実装を考えるのも
 元々の処理が複雑であればあるほど大変

(追加する箇所の前まで変数で値を保持しており、その値を使って以降の処理を使用
したり、処理の条件判定を行っていたりしますので、単純に処理を追加するといっても
追加する前と後で処理の不整合が起こらないようにする必要があります)

・ロボットで処理を行なうにあたり、読み込みが必要なファイル(入力ファイル)と結果を
出力するファイル(出力ファイル)のファイル数・種類が多い場合、処理内容の把握に
時間がかかってしまう

(入力・出力ファイルともExcelでイメージすると分かりやすいと思いますが、入力
ファイルはどこのフォルダ参照か、どのシート・どのセルを参照しているのか、
ファイルは読み込むだけなのか・更新しているのか、ファイルはどこに出力されるか、
 ファイル名は同じままなのか…などなど)

…といった点が困難なのかなと考えています。

軽微の修正ならまだしも、追加開発だと開発に着手する前に色々確認しないといけない
事があり、追加開発によってロボット稼働への影響、入力ファイル・出力ファイルを
慎重に確認しながら進めないといけません。

■利点もあります

追加開発の大変さについて記載してきましたが、苦労して実施した結果メリットとなる事もあります。

例えば、既存処理の解析を行ない処理の全体像を把握できますので、
無駄・非効率化となっている処理の発見と改修を行いやすくなります。

また、入力・出力ファイルの処理内容を把握する事で、実は使用しなくてもよいファイルがある事に気づき、
再度選定を行う事でさらに処理を効率・安定化する事にもつながると思います。

過去にもとあるお客様にて上記のような開発作業を経験した事があり、ロボットの処理も
やや複雑だった為、処理の把握にはかなり時間がかかってしまい、しかも使用する
システムのバージョンも更改されていました。

追加機能の実装をするだけでなく元々あった処理の部分も動作する条件・環境を整える
事も必要となり結構苦労したものでしたが、その分既存処理内容で気づく点もあり、結果
お客様に対してさらに効率化の提案ができました。

■追加開発を依頼する側も認識を

追加開発の難点と利点について書いてみましたが、いかがでしたでしょうか。

今回書いた話は開発を担当する側は勿論、開発を依頼する側も追加開発においては工数が
掛かってしまう事、難点だけでなく利点もある事をご認識いただくと、作業量・期間・
どんな作業が必要になるかなどお互いに理解して開発を進める事ができる
のでは無いかと思います。

昨今、RPAを導入して開発したが、その後の運用と保守が上手くいかず、結局放置した
ままになっているといった場合も実際に多いのではないでしょうか。

そして改めて稼働をさせるにあたり、現行処理の機能を追加しないといけない為、
対応を社内担当者あるいは外部に委託するといった開発ケースもあると思いますので、
ご参考いただければ幸いです。

最後までお読みいただきましてありがとうございます。