普段はあまりブログを書かないのですが、最近の本業に関する取り組みや考えをシェアしたいと思います。
本業の内容を軽く説明すると、自動車向けの製造機械設計です。プレス金型の設計や、最近では金型に関連する製品の3Dモデリングも行っています。
家族経営の小規模な会社で、常に改善にも取り組んでいます。社内で開発したツールを用いて効率化し、この流れは最近でいうDXの一環として進めています。
弊社サイト: 佐野設計事務所
(ただいまサイトリニューアルしている最中で、情報が少ないのですが、今後はもっと情報を載せていきます。)
そういった会社の中で、今回の話は業務の自動化についてです。
よくある仕事の流れを限界まで自動化していく
普段の案件業務では、案件が入ってきて、それを受注して設計を行い、納品するという流れになります。
この流れの中で、私は普段依頼先とのやりとりをメインで行なっています。通常は私がやる必要があるほどのタスクではない(いわゆる一般的な対外のやりとりなので)のですが、少し前に大型の依頼をいただいた時に困ることになりました。
依頼先からの大量の情報を一つ一つ確認し、整理して設計やモデリング担当者に伝え、製作後のデータを受け取って納品するまでの一連の流れが、一人で行うには非常に大変でした。
(橋渡しをするときに作業シートを作って工程管理もしてました)
また、大量の情報がある中で、依頼先が過去に行った納品内容についての質問、修正依頼などにも素早く対応が必要になってきます。
この課題の解決方法として、今回は限りなく人間が手を使わなくても良いように自動化を行いました。
そのタスク自動化で具体的に何をしているかというと、
- 依頼先からの設計/モデリングの作業で利用する情報を自動で収集する
- スケジュール管理の自動更新
- 作業に必要なテンプレート化したファイルや計算を行うためのファイルを自動で生成する
- 会計サービスと連携させて、見積書、請求書の自動生成
- 過去の納品内容のサマリーをデータベース化(取り組み中)
こういった作業は、人間が行うと時間がかかるだけでなく、ヒューマンエラーも発生しやすいです。細かい作業になったり、手動入力をしなくてもよい部分は見ていくとかなり存在していて、出来る部分は全て自動処理にしました。
詳細な技術的な話は別の機会に説明しますが、この自動化ではPythonと外部サービスのAPIをフル活用しています。初期はWin+CLIなツールで動かしてましたが、最近Google Chatのチャットボットとして動くようになりました。
技術的な話はピックアップしつつ、またブログに掲載していこうと思います。
自動化する時のtips
最後に自動化する時に取り組んだり感じたことをTipsにします。
独自のフォーマットや仕組みを作らない
これは、次のインフラに乗っかるのための下地作りです。これがやりがちで難しい部分と思ってます。
例えばメールを送るときにどのぐらい定型分にできるかになります。連絡、納品は大体メールで行われますが、実はこれらの文章をほぼ同じ文面にします。
(※もちろん全てではなく、特に連絡が必要がないような場合のことで、何らかの連絡が必要な場合は自動で生成したのちに人間が確認して送信するようになっています。)
メール以外も同じく、社内で記入して管理するExcelやGoogleスプレッドシートのフォーマットは統一し、プログラム上で参照する形もやりやすくなりました。ファイル名も同じです。なんらかの名称をつけるときは命名の規則を作っておくと良いです。そうすることでファイル名検索を行うときに複雑な条件を考える必要もなくなります。
独自の扱いが増えるたびにその条件が追加され、何かの変更のために処理を変えたいときにこの独自の扱いもまた見直しが必要になってしまいます。当たり前のことなのですが、例外を許さないというのは意外と難しいので気を使うべきポイントに思います。
普遍的なツールやインフラで構築する
サービスを使ってもどうしても実現できない時は独自のシステムを開発することにもなります。このときにもレアケースを当たり前にしないが大事になります。
たとえを上げるとこういったことです。
- OSとかは何でも動くようなインフラが望ましい
- 使うツールはなるべく有名な物を採用する
自動化する上での社内ツールとしてPythonを使ったツールを作りましたが、当初はWindows前提のCLIツールにしていました。
当初は一人で使うのみ+常に開発環境上で動かせるのでよかったのですが、そのうちにどこにいてもタスク実行をできるほうが良いと考えサーバー上で動作させるようになりました。
ここで、サーバーなら当たり前に利用されつつあるDockerや、業務でChatopsをできるような方法論も入れていきます。これも最近つかわれているツールや方法論を使うことで、情報源が多く、試すことの敷居も低くなります。
ニッチな技術ももちろん大事で、取り組む意義は当然あります(その点会社もニッチな分野にもなります)が、自動化する上でのベースは普遍的なものを使うことが望ましいです。
自動化は業務の流れを固定化する
(ChatGPT + DALL-E3に挿絵を作ってもらったら露骨な感じになってしまったw)
この自動化、想像以上に効果がありました。まず、自動化することで、業務の流れが固定化されていきました。良くオートメーションの話で効果的といわれる部分はこの二つと思います。
- 人間の手を介さないので、人間の手が空く
- ヒューマンエラーを排除しやすい
言って見るとこの二つだけなのですが、これの効果は本当に大きいです。同期的に作業をするのではなくて、別作業中に案件作業が発生しても、タスクの実行だけ見て後は放置できるので、作業の効率が上がりました。
そこで、自動化する上で問題になるのは、扱う情報はデジタル化できているかになります。
幸いにも社内ではやりとりのベースはデジタルデータになっているので、それを使って自動化を行いました。これがどこかのフローに紙書類が入ると実現が難しいでしょう。
業務で一番大事な設計/モデリングは自動化はできない。ここが人間が一番活躍する部分で重要な箇所。それ以外で自動化できるものは自動化していきました。
まとめ
自動化はいいぞー。
というのは色々語弊はあったりして、そもそもやらなくてよいことはやる必要がないとすることです。あのジョブズもやらない仕事を決めることを解いていますし、そこに気が付くことが最初にやるべきことで、自動化した後も同じ問をし続けることが大事だと思います。
スティーブ・ジョブズがこだわった「なにをしないのかを決める」重要性 |BEST TiMES(ベストタイムズ)
人間が取り組まなければいけない部分以外は、行ってみれば退屈なものです。退屈な物は機械に任せていきましょう。
宣伝
製造業や関連する業界の方で、業務効率や自動化で悩まれたり興味がある方はぜひご連絡ください!SNS経由やコメントも大歓迎です!