こんにちは。株式会社kairo代表の諏訪です。
昨今、AIの台頭により、業務自動化に関心を持つ組織も増えているように思います。しかし、一口に業務自動化といっても、その規模によって「社内メンバーだけで完結できるもの」から「専門的なエンジニアが必要となるもの」まで様々です。
この記事では、「業務自動化」と呼ばれるソフトウェア開発について、自動化する範囲や業務における重要度、必要となる技術や運用の観点から、4段階の開発レベルに分けて整理してみました。
業務自動化の開発レベル
本記事では業務自動化を、「現在業務に使用しているシステムを大きく入れ替えることなく、人が行っている作業やシステム間の処理をソフトウェアによって自動化すること」と定義します。
例えば、メールで受け取った問い合わせの内容をExcelに転記してまとめる作業があった場合、メールとExcelをツールやプログラムによって接続し、自動的に転記されるようにすることなどが業務自動化にあたります。
業務自動化の規模は、単純に「どれだけ高度な技術を使っているか」だけでは決まりません。個人の作業を少し便利にするための自動化なのか、複数のシステムにまたがる業務を自動化するのか、あるいは、その自動化が止まると日常業務に支障が出るほど重要なものなのかによって、必要となる開発・運用体制は変わります。
本記事では、こうした「自動化する範囲」と「業務が自動化にどの程度依存するか」という観点から、以下の4段階に整理してみました。
レベル1:既存ツールの設定で完結する自動化
社員個人やチームの日常的な作業を、kintone、Zapier、Power Automateなどの既存ツールを使って手軽に自動化する。
レベル1では、社員個人や小さなチームが、自分たちの日常的な作業を効率化することが主な目的になります。定型的なデータ入力を自動化したり、決まった条件に応じて通知を送ったりといったことがそれにあたります。
kintoneなどの既存ツールが提供している機能を組み合わせることで、プログラミングの知識がなくても実現できるケースが多く、現場担当者や情シス部門が本来の業務と並行して作成・運用することが多いかと思います。
一方で、プログラミングをほとんど行わずに実現できるからといって、誰でも簡単に業務を自動化できるとは限りません。「どの作業を、どのような条件で自動化するのか」を整理して仕組みに落とし込むためには、対象となる業務への深い理解と問題を整理する力が必要になります。
また、既存ツールの機能を組み合わせて実現するため、業務自動化の範囲はツールやサービスの機能に左右されます。より複雑な処理を実現しようとすると、ツールの制約にぶつかることもあります。
レベル2:プログラムによる個別業務の自動化
Excelマクロ、Google Apps Script、Pythonなどを利用して、既存ツールの設定だけでは対応できない個別の業務を柔軟に自動化する。
レベル2では、既存ツールだけでは実現することが難しい処理を、プログラムによって自社の業務に合わせて自動化することが目的になります。
例えば、複雑な条件に応じてExcelのデータを加工したり、受信したメールの内容を判定してスプレッドシートへ振り分け・転記したりといった処理です。
レベル1と比較すると、プログラムによって処理内容を細かく制御できるため、自社独自の業務にも対応しやすくなります。一方で、Excel VBA、Google Apps Script、Pythonなどのプログラミング言語を利用するため、開発や修正にはプログラミングの知識を持った担当者が必要になります。
社内にこうしたスキルを持つ人材がいれば、現場部門や情シス部門が本来の業務と兼任して開発・保守することも可能だと思います。
注意したいのが、作成したプログラムの属人化です。ExcelマクロやGoogle Apps Scriptは比較的手軽に作成できる反面、作成した本人しか仕組みを理解しておらず、担当者の異動や退職によって修正できなくなるケースも考えられます。業務に合わせてプログラムを改造していくうちに、数千行のマクロが出来上がってしまい、中身を誰も理解できなくなってしまったという話を聞くこともあります。
そのため、「これは何のためのプログラムなのか」「どのように使用するのか」「問題が発生した場合にどこを確認するのか」「どのように修正・更新するのか」といった情報を、日頃からドキュメントに整理・共有しておくことが肝心になります。
レベル3:複数システムにまたがる業務の自動化
APIやWebhookなどを利用して、これまで人が複数のシステムを行き来して行っていた一連の業務を自動化する。
レベル3では、レベル1や2よりも自動化する範囲を広げ、複数のシステムにまたがる一連の業務を自動化することが目的になります。
例えば、「問い合わせを取得する → 内容を判定する → 顧客管理システムへ登録する → 担当者へ通知する」といった、それまで人が複数のシステムを操作しながら行っていた業務を一つの流れとして自動化します。
この規模になると、プログラムを書けることに加えて、システム連携に関する専門的な知識や、運用・保守の観点も必要になってきます。
複数のシステムを連携する場合、そのうち一つで問題が発生しただけでも、一連の処理全体に影響が及ぶ可能性があります。例えば、データの取得には成功したものの、そのデータを別のシステムへ登録する処理だけが失敗するといったことも起こります。
そのため、単に「期待した処理が正常に動くこと」だけではなく、外部システムが利用できない場合や通信が途中で切れた場合なども想定して設計する必要があります。
また、問題が発生した場合に原因を特定できるようにしたり、一時的な問題であれば安全に処理をやり直せるようにしたりするなど、業務への影響をできるだけ小さくするための工夫も必要になります。
さらに、連携先のAPIやサービスの仕様が変更されれば、それに合わせて自動化プログラムも修正する必要があります。そのため、レベル3からは「一度作ったら完成」ではなく、継続的な保守も前提として考える必要があります。
レベル4:業務に組み込まれた自動化
自動化を日常業務に組み込み、業務に必要不可欠な仕組みとして継続的かつ安定して利用する。
レベル4では、レベル3までの自動化を、日常業務に必要不可欠な仕組みとして継続的に利用することが目的になります。
例えば、毎日決まった時間に自動化処理を実行し、正常に完了したかを記録する、失敗した場合には自動的に再実行する、それでも解決しなければ担当者へ通知するといった運用まで含めて仕組みを構築します。
ここで重要になるのが、自動化が定着するほど、人がその作業を確認しなくなる(油断する)という点です。
それまで担当者が毎日行っていた作業を完全に自動化すれば、やがて担当者自身が処理結果を毎回確認することも少なくなります。その状態で自動化システムが停止すると、「エラーが発生したこと」だけでなく、「本来行われるはずだった処理が行われていないこと」に誰も気付かない可能性があります。
そのため、レベル4ではエラーを検知するだけでなく、「予定されていた処理が実行されていない」「普段は100件程度処理されるのに今日は数件しか処理されていない」といった異常な状態を検知し、必要に応じて担当者へ知らせる仕組みも重要になります。
また、問題が発生した際に原因を追跡できるよう、いつ、どの処理が実行され、どこで問題が発生したのかを記録しておく必要があります。問題によっては自動的に復旧し、人による対応が必要な場合だけ担当者へ通知することで、日々の運用負担を抑えることもできます。
つまりレベル4では、「自動化処理を作る」だけでなく、「人が常に見ていなくても、自動化された業務を安定して続けられる状態を作る」ことまでが開発の対象になります。
※本記事では扱いませんが、さらに独自のデータベースや認証、画面、権限管理などを持ち、業務そのものを担うシステムを構築する場合を「レベル5以降」と考えています。この規模になると、業務自動化というよりも一般的な業務システム開発に近くなるため、本記事では対象外とします。
まとめ
今回は、業務自動化を「自動化する範囲」と「業務が自動化にどの程度依存するか」という観点から、4つのレベルに分けて整理しました。
レベル1〜2であれば、現場担当者や情シス部門など、業務をよく理解している社内メンバーが自ら自動化することも現実的だと思います。一方、レベル3になると複数のシステムを安全に連携するための知識が必要になり、レベル4ではさらに、監視や障害対応を含めた継続的な運用まで考える必要があるため、本業との兼業で開発・保守をするのは難しいでしょう。
重要なのは、必ずしも高いレベルの自動化を目指す必要はないということです。Excelマクロで十分な業務を大規模なシステムにする必要はありませんし、反対に、日々の業務に欠かせない自動化を、担当者個人が作ったプログラムに依存し続けることにもリスクがあります。
まずは「何を、どこまで自動化したいのか」「その自動化が止まった場合、業務にどの程度影響するのか」を整理し、必要となる開発レベルを見極め、それに合った開発・運用方法を選択することが大切だと思います。
弊社では、業務自動化サービス「Autolet(オートレット)」を提供しており、特に本記事におけるレベル3〜4の業務自動化について開発から保守・運用までをまとめてアウトソースいただけます。
既存の業務システムを大きく入れ替えることなく、API連携やブラウザ操作、AIなどを組み合わせた自動化プログラムの開発から、定期実行、監視、エラー通知、継続的な保守・運用までを一貫して提供します。
「社内で簡単に作るには少し難しい。しかし、新しい業務システムを一から開発するほどではない」という業務があれば、Autoletがお役に立てる領域かもしれません。

