半年で製造業向けAIサービスをリリースした開発チームのノウハウ大公開【イベントレポート】

半年で製造業向けAIサービスをリリースした開発チームのノウハウ大公開レポート

image



はじめに

こんにちは。CADDiでエンジニア採用を担当しております上野です。

先日、CADDiから新たに図面の管理、活用を推進するためのサービス『CADDi DRAWER』をリリースしました。 図面は、製造業界では「最重要データ」とも言われており、これらを活用できる状態にする事は必要とされていながらも、長らくソリューションがない状況でした。

「CADDi DRAWER」は、図面の画像検索など、最新の技術をコアにした新しい図面活用プロダクトです。 図面に紐づく様々なデータを活用できる状態にするソリューションを提供しています。 本記事は、約半年で開発されたCADDiの新SaaSである「CADDi DRAWER」の開発秘話をテーマにしたイベントレポートです。

イベントURL:https://caddi.connpass.com/event/251655/


登壇者

本イベントでは、CADDi DRAWERの開発をリードするTech LeadやPdMが登壇し、CADDi DRAWERのこれまでの開発とfuture workについてお話しました。

Oniki (Product Manager) Kan (Frontend Engineer) Kawai (AI Lab Tech Lead)
image image image

CADDi DRAWERの成り立ち

前半は、PdMのOnikiから、CADDi DRAWERにおけるプロダクトの遷移と現在の立ち位置に関するトークを実施しました。

プロダクト初期のヒアリングとベータ版

従来の図面管理システムでは、作成された図面を承認したり閲覧権限を設定したりと、「管理すること」が目的でした。 「管理すること」は、図面データ活用サイクルではほんの一部にしかすぎません。「CADDi DRAWER」は、本来の図面データ活用サイクルを包括できるシステムを提案しています。 Oniki (Product Manager) image CADDi DRAWERは、いきなりの開発は行わず「Problem Solution Fit」をゴールにプロジェクトを進めました。 Problem Solution Fitとは、顧客が抱える問題や課題を解決する製品(プロダクト、サービス)を提供している状態のことです。 顧客の課題を特定し、それを解決しうるソリューションを見いだした後、MVP(Minimum Viable Product, 実用最小限の製品)を製作、リリースして、顧客に受け入れられるかを検証していく。それを繰り返して、製品が顧客の課題を解決している PSF の状態を作っていきました。 Oniki (Product Manager) 実際に、CADDi DRAWERプロジェクトでは、CADDiが培った経験や蓄積されたデータをもとに大きな仮説をたて探索を行うフェーズを長期間実施しています。 この仮説をもとに「もしこれ実現できたらどうなる?」というベータ版を作成しました。 実は、プロジェクト初期は現在の「類似図面を検索機能」ではなく別のソリューションが仮説の軸でした。 数十社のヒアリングを繰り返し、顧客が本当に求めているものを探す中で今の形に落ち着いたと言えます。 Oniki (Product Manager) 例えば、検索結果としてファイル名と図面が並ぶだけでもお客様は驚かれた。エンジニアのぼくらからすると「え?そうなの?」と感じる発見がたくさんあった。 お客様でさえも気が付いていない UX を探り出す、という感覚に近かった。 Oniki (Product Manager)

Onikiも言っている通り、長いヒアリングの結果生まれたベータ版をお客様に持って行ってみたところ、その場で得られたのは「これなら使いたい!」と大変ありがたい好感触と「これを自分たちの図面で試したい!」というリクエストでした。 まさにゴールとしていたProduct Solution Fitが一部実現したような形で、CADDi DRAWERはスタートし今に至っています。


CADDi DRAWERにおけるエンジニアリング

後半では、実際に開発をしているエンジニアから、開発体制や開発の裏話をお話しました。

開発体制

「CADDi DRAWER」開発の体制は大きく2つ「DRAWER Team」と「AI Lab Team」に分かれています。 ベータ版が出て以降は、システム開発の側面で様々な課題を乗り越える必要がありました。

  • 数千枚という膨大なデータを実際に動かせることができること
  • 図面データに対してどのような検索ができるのか
  • 発注金額等どのような情報が結果として出たらよいのか
  • さらに「あったらいい機能」は何なのか

実際にこれらを開発すべく、エンジニアチームでも試行錯誤しながらプロジェクトを進めました。

DRAWER Teamでは、お客様の体験を最大限に引き上げるための機能開発を主軸にしています。「CADDi DRAWER」を使うための事前調査や、より使いやすくするためのツール開発などを行っています。 今は DRAWER Teamを分けたり、開発体制を試行錯誤しています。 Kan (Frontend Engineer)

image


超短期期間のリクエス

CADDi DRAWERは、ただでさえ図面データというサイズの大きなデータを扱う製品です。 エンジニアチームでは、余裕のある開発期間を想定していましたが、実際のユーザの反響に伴って速度を上げて仕上げる必要がありました。

嬉しいお言葉ですが「お金払うからもうちょっと早く製品を出してほしい」と言われ、開発としてはたいへんでした。「来週お客様が触るの!?」ということもたくさんありました。 Oniki (Product Manager) イベントタイトルにもある通り、半年でのリリースとなり、リリース日程が決まったのは4ヶ月目の頃でした。 より良い機能を小さく提供するために、開発チームでは様々な試行錯誤を実施しました。 Oniki (Product Manager)

「類似って何?」

図面検索を作るAI Labも課題は山積みでした。 「そもそも類似って何?」という状態から課題を解決していきました。

最初の会議で「類似って何ですか?」と聞いたら「わからない」と返ってきた。なので「類似」の定義から始める必要があった。色々模索しましたが、製造業出身の人がいたり、現状のサービスが簡単に利用できたりするCADDiの資産が大きかったと思います。図面を紙で大量に印刷して、オフィスで並べてどれとどれが似ているのかグルーピングしてIDつけて・・・という泥臭い作業を最初は積み重ねたりもしました。 Kawai (AI Lab Tech Lead) また、システムへの組み込みの設計もDRAWERチームとAI Labが共同で実施しています。 AI Labでは疎結合になるを目標としていました。DRAWER Teamから送られてくるデータに対してインデキシングしたり、Deep Learningを利用して画像抽出のための仕組み作りをしています。 特に「CADDi DRAWER」は「いろんな条件で検索したい」というリクエストに応える必要があるため、検索のチューニング等に力を入れてきました。 これからは、Kubernetes機械学習の部分を分離してできるように改善しています。 Kawai (AI Lab Tech Lead)

image

PdMと協力しながら、類似を定義し、システムに落とし込んでいった結果として、半年という短い期間でプロダクト開発に一定の区切りをつけることが出来たとも言えます。


Q&A

イベント当日は、チャットにて非常に多くのご質問を頂きました。 登壇者である3人が出来る限り回答し、様々な視点からプロダクト開発を掘り下げるイベントになりました。

  • Q. AI LabがDRAWER Teamとの関係性で気を付けていることはありますか?
AI Lab では社内受託にならないように非常に気を付けています。「CADDi DRAWER」開発で最もよかったと思うのはPdMからの説明だったと思います。自分たちが今から取り組むのは「CADDi DRAWER」のサイクルのうちどこにつながるのか、を最初の段階でしっかり議論しました。そのためメンバーの意思を高めることにつながったと思います。 Kawai (AI Lab Tech Lead)
  • Q. 製品を説明する際、どのようにアルゴリズムを説明しているのでしょうか?
「CADDi DRAWER」の場合、画像が多いため定性評価が必須だと考えています。機械学習的なアルゴリズムをそのまま説明するのではなくデモを基にできること、出来ないことを説明しつつAI Labとしては「出来ないこと」を減らすようにしています。 Kawai (AI Lab Tech Lead)
  • Q. お客様の図面に対して類似画像を検索結果として出しているようですがVertex AI Matching Engineを使用しているのでしょうか?
今回は使用していません。Vertex AI Matching Engineの課題としては、テキストとの混ぜ合わせやフィルター条件での検索などが難しいと考えています。現在のシステムはテキストとベクターの検索ができるように設計した結果となっています。 Kawai (AI Lab Tech Lead)
  • Q. 図面は一般的なテキストとは性質が異なりますが、どのように機械学習のデータとしているのでしょうか?
機械学習に直接そのまま入れる、ということはしていません。図面に書かれた類似における必要な情報と、不要な情報があります。例えば図面に書かれている手書きのメモなどをデータとして持つべきなのかというところを考えたうえで画像処理を行った上で入力データとしています。 Kawai (AI Lab Tech Lead)
  • Q. 図面特有の記号は検索できますか?
現状図面特有の記号を一部を対応しています。穴あけ、溶接などの記号はPoC段階ですが機械学習OCRで対応できるよう設計しています。 Kawai (AI Lab Tech Lead)

今後の展望

イベントでは、最後に「CADDi DRAWER」の今後について、登壇者3人のそれぞれの視点からディスカッションを行いました。

まずは、お客さまが実際に図面を軸に活用できることを実現したいと思っています。その後は、今回の開発でもあったように事前に思い描いているものとはまったく異なるリクエストなどが出てくる可能性があるので、今まさにリサーチをしているところです。 Oniki (Product Manager) 現状は検索する、というサイクルにフォーカスがあっていますがAI Labとしては分析するというサイクルに影響を与えていきたいです。 Kawai (AI Lab Tech Lead) 「検索する」というのはほんの一部しか解決していません。「分析する」「行動する」などのサイクルを実現することで、よりPDCAを手助けできるCADDiとして拡張していきたいと思います。 Kan (Frontend Engineer)

1つのプロダクトを全員で作っている様子が伝われば幸いです。


おわりに

本記事では、CADDiの新しいサービスである「CADDi DRAWER」の開発秘話イベントのレポートを記しました。 お読みいただきありがとうございました。

CADDiでは、CADDi DRAWER事業以外も含め、現在積極的に採用を行っています。 まずはカジュアルにお話を聞いてみたい!という方は、ぜひこちらより面談をお申し込みください。 また、 Tech Blogや勉強会等のイベントについてはSNSで随時発信しておりますので、Twitterのフォローやconnpassのメンバー登録をぜひよろしくお願いします。