Rso's Jotter

日々の開発の知見のメモやその他雑記

RPAが嫌いなエンジニアが多い理由

システム開発者のみならず、PCなどで事務作業を行なっている人はRPAという言葉を 最近よく聞くかと思います。

RPAとは Robotic Process Automation(ロボティック・プロセス・オートメーション) の略で、 主にPCを使用したデスクワークを自動化して効率化することを指します。

数年前からこのワード自体は耳にしていたのですが、近年ニュースでRPAによる効率化の事例やら、 RPA用のツール導入の話をよく耳にするようになりました。

RPAの導入事例として、例えば以下のようなニュースがあります。

innovation.mufg.jp

www.itmedia.co.jp

他にも検索したらいくらでも出てきますが、大手の金融機関が事例としてよく挙がっています。

また、RPAのツールとして、以下のようなツールが有名です。

www.uipath.com

rpa-technologies.com

winactor.com

RPAを推進する理由としては、定型的な作業はロボットにやらせて効率化し、 より知的な作業をヒトがやるということが大抵挙げられています。

RPAが嫌いな理由

上記のRPAを推進して効率化すること自体はなんら悪いことではないのですが、 RPAツールがあまり好きではない、関わりたくないと言うエンジニアが一定数います(皆がそう言うわけではないですが)。

私もRPAの話を聞くたびに何かモヤっとするものがあり(RPAによる効率化推進自体は悪いと思っているわけでは無い)、 このRPAツールおよびその推進活動が好きになれない理由を周りのエンジニアの言っていることを含めて少し考えてみました。 私が思うに、以下のような理由があるのではないかと思います。

  • 実態としてはExcelマクロやUWSC のような 昔からあるようなPCからの操作を覚えさせて自動実行する仕組みなのに、自動化プログラムをロボットと称してあたかも最新の技術のように謳っていること。
  • APIがあればもっと簡単に自動化することが可能なのに、APIが無いが故に古いシステムの古いUIの挙動に合わせた実装を強制されること。
  • コード記述不要のGUIのみで開発可能、と謳っているところがほとんどだが、エラーハンドリングなど考慮するとGUIのみでの開発がとても煩雑になること。

私が思うに、本当にプログラムで自動化したいなあら、API を用意すべきだと思います。GUIは人がアクセスするのに適したインターフェースであり、プログラムがアクセスするために適したインターフェースはAPIです (Application Programming Interfaceと言いますし) 。人の操作するインターフェースに対して、無理やり自動化を当てはめているのがRPAで、エンジニア目線で見ると無理をして自動化しているように見えます。なのでRPAの適応対象は APIが存在しなくて、追加開発するには規模が大きすぎるシステムであり、古いシステムが対象となり、エンジニアは古いシステムにあまり関わりたくありません。 Money Forward とか freee のシステムをRPAで効率化と言う話は聞きません。なぜならAPIを使う方がよっぽど楽だからです。

また、コード記述が大抵不要で、GUIで開発できるものが多いですが、どうしてもGUIの開発では表現できる範囲が限定されてしまいます。 PoCなどの検証レベルでは十分に使えるのですが、実運用となると、エラーハンドリングで大抵悩まされます。入力レコードが誤っていたものが入ってきたりとか、システムの応答が遅い/返ってこなかった場合など、これのエラー処理を共通化して処理する仕組みがなかったりなど、泥臭い実装を強いられるようになります。

一言で言うと

上記いくつか考えてみましたが、エンジニアが敬遠する理由を一言で言うと、 古いシステムのツケを無理やり清算するような泥臭い仕組みなので触りたくない上に、最新の技術っぽく喧伝しているところが気に食わない と言った感じなんでしょうか。