CADDi Tech Blog

モノづくり産業のポテンシャルを開放するCADDiのTech Blogです。

The Next Stage of CADDi Engineering

はじめに

こんにちは。CTOの小橋です。先程、シリーズBの資金調達を発表させていただきました。ビジネスモデルや事業自体に関してはコーポレートサイトをご覧頂ければと思いますが、今日は拡大する事業を支えるテクノロジーを生み出している組織のお話を出来ればと思います。

急拡大していくとともに、組織的課題も技術的課題も急増してきておりまして、折角の機会なので、これまでの歩みと今後への投資を、技術者としてご紹介出来ればと思います。

今までの歩み

ドメインモデル構築フェーズ

2017年末の創業期は社員合計3名。会社経営経験無し。金属加工実経験無し。正直分からない事が多すぎて大変でした。事業的にも知識不足でしたが、ソフトウェアの領域に関しても業界的な流通ファイルフォーマットすら分かっていない状況でスタートしました。当然ですが、適切なOSSのライブラリ選定も出来ず手戻りも発生したり、学びの多い日々でした。

取り扱っているものが特注金属加工品だったので、注文毎に完全オーダーメイドの設計や材料の指定があり、多品種少量の難しさを肌で感じていました。当然ですが知識不足や考慮漏れで不良を起こしてしまったり、納期遅延で慌てて再制作に挑むなど、お客様にご迷惑を掛けてしまった日々の反省を、今でも痛烈に覚えています。

もちろん事業を軌道に乗せるフェーズではありましたが、同時に持続する事業を作る上で製造業のドメインをソフトウェアで表現できるように試行錯誤するフェーズでもあり、全て破壊する覚悟で開発を進め、殆どの時間をデータ設計で溶かしていました。塗装の色もシステム的には「色」という項目をRGBで表現すれば良いかなと高を括っていたら、業界的にはマンセル値という別の表現があったり、そもそも色指定がデジタルな文字列でもなく、物理的な見本が郵送される場面もあったりで、ひたすらドメインモデルの更新やリファクタリングを繰り返していました。

業界に寄り添いつつも、この情報の嵐を構造的に表現していくのがキャディのエンジニアリングでドメイン駆動設計(DDD)を活用している起点でもあります。お作法的な部分もありますが、リアルの世界とソフトウェアの世界を往復する上の心構えとして大切にしてます。ソフトウェアの技術者としてその目標に向けて適切な技術やフレームワークを活用し、継続的にドメインの進化にキャッチアップできる仕組み作りを目指しています。

必要なデータの取扱及び蓄積フェーズ

現在キャディは受発注を進める上で大きく3種類のデータを扱っており、それぞれが別システムとして存在します。具体的な画面のキャプチャや概要を紹介できればと思いますが、名前の由来に関しては面談やイベントなどで聞いて下さい!

  • KLEIN: サプライチェーン情報
  • QUIPU: 原価計算情報
  • HERODOTUS: 設計図面情報
  • パートナーポータル: 加工パートナーとの連携システム

データ自体は System of Record 的にデータモデルの境界でシステムや開発チームが分かれているものの、システム間参照できるようにキー情報を通じてデータが繋がっている事が重要なポイントです。データを最大限活用するのには管理会計から設計図まで一気通貫で情報が連動している仕組みが不可欠で、そのためにキャディのビジネスモデルの根幹を支える内製開発を進めています。

KLEIN

サプライチェーン管理システムのキャプチャ

サプライチェーンを全て構築するので、グラフ構造の物流を表現し、それを最終的にキャディの検査拠点で検査して発送するところまで見届けるシステムです。技術的にも複雑なデータ構造を操作するevent sourcingライブラリを開発したり、疎結合な外部システム連携のためにRabbitMQを活用したり、相当モダンな設計が求められているシステムです。

QUIPU

原価計算システムのキャプチャ

属人化しやすい見積もりを仕組みで担保するための原価計算エンジンです。設計図は作りたいものを表現した、いわば「お絵描き」で、求められている結果を製造するための工程を逆算して価格に変換する、ドメイン知識が山盛りのシステムです。重量や体積等複数の単位を扱うため、Rustの型システムで単位の整合性を担保しています。

HERODOTUS

図面管理システムのキャプチャ

設計図面を取り扱うシステムで、スキャンされた図面のバージョン管理含む、情報整合性担保の役割も果たしています。製造業に特化した内製画像解析アルゴリズムを活用して、画像データから受発注に必要な情報抽出もできるように機能開発を続けています。 後でも触れる通り、これまで蓄積された/今後も更に蓄積され続けるデータを基に、コンピュータビジョンから深層学習など幅広い技術を活用して、顧客や加工パートナー、そして社内メンバーがこれまで想像もつかなかった機能を複数実現するフェーズに入っていきます。

パートナーポータル

パートナーポータルのスクショ

社内で利用しているKLEIN+QUIPU+HERODOTUSのシステムに溜まっているデータを構造型データとしてそのまま加工パートナーに連携するシステムです。文字数のわりに情報量が少なく、自由自在にエクセルとPDFが添付されるメールと違って、共通フォーマットでの情報のやり取りに挑戦しています。社長から事務スタッフまで幅広い方々に利用されるため、ビジュアルのデザインとUXにも重点を置いて作っています。

個人の力を組織の力に

創業からの4年弱で、エンジニア組織も1人から40人規模まで成長してきました。10人くらいまでは個人の力に依存し、全員が単一障害点になっているリスクを抱えつつ、事業を作り上げてきました。当然ですが、人数的にもチーム間の連携強化やタスクの分解と割り振りが重要になり、チーム会議のファシリテーションや交通整備も必要になってきました。お互いの依存関係も増えO(N2)でコミュニケーションが増えるのが目に見えていたので、情報集約とプロダクトの方針を担うプロダクトマネージャーの採用を通じてカオスを何とか整理。エンジニアとして個人の力も大切ですが、チームメンバーが全員最大限活躍できるような組織的フレームワークの重要性を実感したのが社員10人くらいのときでした。

20人を超えると、意図的に個人の力を組織の力に繋げる事がより重要に。システムの複雑化と同時に仲間がどんどん入ってきてある程度オンボードも型化しないと効率が悪く感じるようになってきました。昔は「開発ドキュメント読んでSlackフォローして」でしたが、今では新入社員用の「Welcome Document」もでき上がっています。

多様なバックグラウンドの方々がいる中で、組織自体の開発及びそこに属する人材開発も積極的に取り組むフェーズに入り、エンジニアマネジメントというロールも設けて、技術を事業で活用しつつ、それ自体を支える仕組みづくりにも力を入れるようになったのが20人を超えた一年半前です。まだ出来ていない事や後手後手な部分もたくさんあり、これからも更に変わっていくとは思いますが、それはその時のお楽しみという事でまずは事業を伸ばすことに専念していこうと思います。

今後への期待と投資

物理とデジタルの橋渡し

これだけ社内で貴重なデータが溜まっている一方、製造業は当然物理的なものを扱っているため決してデジタルの世界で全てが完結しません。パートナー加工会社はデジタル設計情報を実物に変換していますし、我々の検査拠点では制作物を開梱してノギスやハイトゲージで確認していますし、受発注の全ては最終的に実世界の実態とデジタル予定情報の突き合わせに収束します。今後はより物理とデジタルの世界の往復に挑戦し、データを片方の世界に滞留させない事が operational excellence とも言えるかと思います。

それに向けた要素技術としてはバーコードやRFID含むたくさんの技術がありますが、これらを現場に落とし込んで日々運用できている状態まで持っていくのがリアルビジネスの難しいところで、キャディではソフトウェア技術を活用して自社の現場オペレーションにのせるところまで裁量を持てるからこそ、最終的な事業価値まで見れるからこそ、やりがいがあります。

キャディも検査拠点兼物流拠点を関東関西に設けてリアルタイムに部品の検査ステータス等を把握してオペレーション全体の最適化するために、常に新しい技術を現場に導入して検証を繰り返しています。今後も在庫管理や寸法計測、キズ検知含めてあらゆる受発注の工程に当たって、圧倒的な品質や速度をお届けできるように挑み続けます。

リアルのモノを扱っている事業として、デジタルトランスフォーメーション(DX)というのは物理とデジタルの世界の橋渡しする事を通じて、今までは想像もできなかった世界を描くことだと思います。その世界を実現するために人と技術が協力して事業を推進出来ればと思っています。

データを活用するフェーズ

基本的なビジネスインテリジェンスはもちろん、設計図面等の画像情報の解析にも挑戦しています。伝統的なコンピュータビジョンから深層学習まで幅広い手法の活用を通じて、データを資産として扱える世界を描いています。

キャディの物量とデータと解析技術を活用すれば、非構造型データも構造化できますし、保険会社がリスクモデルを作るのと同様に不具合のリスク予測もできるようになります。大量生産ではパラメータの数が少なく、同じ作業を繰り返すためデータドリブンなアプローチが利用できますが、我々の向き合っている多品種少量生産になるとパラメータが数百倍増えるため伝統的な分析方法では難しくなってきています。だからこそ機械学習含む多次元での推論技術を利用して、商流のど真ん中にいるからこそ取得出来るデータを分析し、世界初の多品種少量生産のリスクモデルに挑戦したいと思ってます。

これを実現するために新たに仲間を探したくデータグループの立ち上げを真面目に検討してます。創業から4年近く蓄積してきた知見とデータを今後の投資としてもフル活用していく上で、データを中心に取り扱う仕組みを作るデータエンジニアリングとその分析を推進するデータサイエンスを深堀っていきます。

プラットフォームチームの立ち上げ

今年の7月にPlatform Engineeringチームを立ち上げましたが、それまでは組織構造としてプロジェクト単位に分かれていて、各プロジェクトでインフラ構築や監視からアプリケーション開発まで一気通貫で持っている状況でした。大体のプロジェクトがKubernetesを使っているんですが、学習コストも一定かかって気軽に新しいプロジェクトも始めにくい課題がありました。複数プロジェクトが利用している内製のミドルウェアもあるものの、明確なメンテナンスもない状態でした。

個人的な意見ですが、「インフラチーム」「基盤チーム」「SREチーム」は縁の下の力持ちという存在になり、「何かよしなにに色々やってくれる人たち」「夜オンコールしてくれる人たち」という感覚になりやすいと思います。そもそもプラットフォームチームのミッション自体がインフラに絞られているわけでもないので、そういう空気にはしたくはありませんでした。

プラットフォームチームのミッションは、開発組織のアジリティ向上とイノベーション推進だと思っています。共通化、標準化、自動化を通じて開発者の時間を生み出し、それをまた仕組みや挑戦に投資する事で一定リスクを背負いながらも、より高い目標を目指せると信じています。詳しくはこちらのブログ記事を是非見て頂ければと思いますが、中期的な投資目線でなかなかリソースを割くのに苦労しているものの、ここにリソースを貼ることが開発組織の更なる成長にはクリティカルになってくると考えています。

デザインシステムを作りたい人、インフラが大好きな人、DevOpsをやってみたい人、nodejsエコシステムのエキスパート等々、とにかく開発組織全体の力になりたい方に助けて頂きたいです。興味ある方はお気軽にTwitterで@caddi.techまでDM下さい!

事業のグローバル展開

モノづくりは幸い言語や文化を問わず価値が伝わる業界で、日本の製造業は世界的にもトップクラスです。海外でも「Made in Japan」は「高品質」と同等に解釈される場面も多く、日本企業としてキャディが受発注網をグローバルに展開するのは創業期から視野に入れていました。

開発しているシステムも日本人ユーザから海外ユーザへと拡大する事で、ローカリゼーションもそうですし、通貨の取扱等ドメインモデルを大きく更新する必要が出てくる事を想定しています。また、物流や納期管理の難度が一気に上がり、よりデータドリブンなリスク管理を通じて、今まで実現不可能だったQCD(品質・価格・納期)を提供出来る事も期待しています。どこまで既存の外部会計システムを利用し、どこまでを内製開発するかまだ決まっていないフェーズですが、このような実世界の複雑な実態をソフトウェアで表現するチャレンジ自体がやりがいなのかなと思います。

新規事業の立ち上げ

私たちは祖業である、受発注プラットフォームの事業を通じていくつかの点に気づきました。 - 一つ目は、受発注の出し手でもあり受け手でもあるわたしたちが自分たちの事業のために内製してきた技術は、同様に受発注をしているメーカーや加工会社にも提供できる可能性があるということです。 - 二つ目は、図面という製造業において非常に重要なドキュメントの管理やデータ活用が、まだこの業界でほとんど解決されていないということです。 - そして一方で(これが三つ目ですが)、この図面というものを解析したり分析したりといった部分に、機械学習など近年で発展が大きい分野の技術が応用しやすいというポテンシャルが存在します。

私たちの新しい試みとして、図面データを軸にした新しいプロダクトを始めます。既存事業が、受発注プラットフォームという仕組みを通じて最終的には製品(モノ)を納めるのに対して、今回はソフトウェアプロダクトそのものを提供するという形になると思います。そして、既存事業のデータや技術基盤との間に、強いシナジーが生まれる事業になります。

この新しい試みにとてもわくわくしています。

こんな人ウェルカム!

実際やりたい事は山ほどあります。普段これを求人という形で表現していますが、今回は折角なので別の切り口で紹介させてください。以下、全くMECEではないし、大分かぶりあると思いますがもし興味あれば是非!

cto letter contact us

  • 技術が好きな人
    • 最先端を攻めたい
    • 誰もやったこと無いことを実現したい
    • 裁量持って技術領域広げたい
  • チーム開発が好きな人
    • お互い尊重してチームで課題を解決したい
    • 周りが働きやすくする事でやりがいを感じる
    • チームの結束や連携を良くすることで嬉しくなる
  • 組織や人が好きな人
    • 人を育てて成長支援するのが好き
    • 事業の事情に合わせた人事制度を作ってみたい
    • 広報活動や技術系のイベントが好き
    • OSSやコミュニティ活動が楽しい
  • 事業が好きな人
    • ユーザを喜ばし定性的なフィードバックが好き
    • 技術を攻めなくてもしっかりと活用してインパクト出したい
    • 業界問わず自分の腕っぷりで社会貢献したい
  • ものづくり好きな人
    • 自作PCやキーボード等ものづくりが好き
    • 卓上旋盤やフライスでの加工が楽しい
    • PLCやCNCの制御が面白いと思う

もしご興味ありましたら、是非ご連絡下さい

まずはカジュアルに話を聞いてみたいという方はカジュアル面談フォームからご連絡ください

個人的に話をしてみたいという方はTwitterで@caddi.techまでDM頂いても構いません。

是非選考を受けてみたいという方は求人ページからエントリーください。