はじめに
株式会社センシンロボティクスでCOREグループ Platformチームのビジネスオーナーの藤田です。
また他のPJのアーキテクチャやプロダクトデザイン/グランドデザインといったところにも部分的に参加したりしており、センシンのものづくりに関する部分も業務のひとつです。今回はCORE視点でのモノづくりについて紹介します。
SENSYN COREとは
まずはじめに、こちら「SENSYN CORE」が弊社ホームページに載せている概要です。
SENSYN COREの実態は、各アプリや自社開発ライブラリ、ID管理、基盤、技術資産などであり、広義にはサービス提供にかかわるプロセス・運用といったものを含みます。
これらをベースとしたPD開発やソリューション開発を行っており、SENSYN COREが持っている上記をもとに機能を拡充しひとつのソリューションとして提供を行います。CORE機能追加したものもまたCOREのラインナップとなり、ベースが底上げされ、解決スピードが増したりさらに新しい領域に踏み込めたりします。
例として、現状取り組んでいるドローン関連の自動巡回巡視ソリューションがあり、昔からセンシンが取りくんできたドローンに絡めた一つの大きなソリューションとして開発を進めています。
いっぽうで、ゲンコネやショルイラといったアプリをCOREの一つとして再定義し、施工管理などへの展開も進めています。データを管理できるアプリとAIを組み合わせといったところも、目下の熱いテーマです。
料理で例えてみると・・・
上記のような説明はよくされるのですが、ちょっと具体のイメージが湧きにくいので料理で例えてみます。
COREの各要素は、料理の素材、提供するソリューションを形作るデザインはレシピであり、それをきちんと料理として提供できる必要があります。
我々がどんなレシピを持てるかというのは、どのような素材をそろえているか、が一つのポイントです。
COREの要素を作りまた定義することは、それがどんな素材として認識するのか、どんな素材が必要なのか、どういう役割の素材なのかを明確にすることでもあります。
素材の形や本質的な認識を間違えると、結果としておいしくない料理ができあがる可能性もあります。
レシピは今までの知見や経験の積み上げから主に得られるもので、ゼロからいきなり産み出すのは非常に難易度が高いです。何が欲しいのか、何が課題なのかといった業務知見を積み上げていく必要があります。
カレーの作り方から次のステップへ
ソリューションの一つである「らくらくドローン」は、カレーと考えてみます。
お肉やたまねぎといった最初にできた素材を利用して、過去から積み上げてきた知識やノウハウをもとにカレーのレシピを生み出し、それを提供しています。
ここで認識し定義した素材をもとに新しいレシピの探索をし、それがまた新しい素材になり、というのを繰り返してお客様が求めているまさにそれ、という料理をお出ししていく、みたいに捉えると一つイメージがつかみやすいかもしれません。カレーに近い料理は作りやすいだろうし、まったく違うフィールドはまた新しい取り組みをする必要があります。
- 素材 = SENSYN COREの各アプリやライブラリ・技術要素・基盤など
- レシピ = 業務知識やノウハウ、課題などを過去から積み上げて作り上げるパッケージングデザイン、課題解決の方法
- 料理 = 提供する商品・ソリューション自体
こういった開発方法を「CORE駆動開発」と呼んでいます。
CORE駆動開発の難しさ
理論上は永遠にCOREが拡張して要素としていけば、理屈上はどんなことにでも対応できるプラットフォームになるわけですが、当然難しさもあります。
開発視点・アーキテクチャ
開発視点でいうと、SENSYN COREを育てていくことは「同じようなものをまた作ってることがない」が実現できているか、が一つの視点になります。実は似たような種類の玉ねぎができただけだった、だともったいないです。
そのためには将来発生するであろう要求や、その業務の基礎知識やフロー、データのパターンといったものを掴んでデザインしていく必要があります。
また汎用性というよりは拡張性を持つ、という視点が大事で、将来発生する一定の要求や想定外のことも受け止められるような仕様・設計にしておくことも求められます。
このへんの思想やコンセプト、そこに至った理由なんかをきちんと整理してメンバーでちゃんと認識合わせをしておくのもミソです。センシンでは様々なPJがいろんなチームで動きますがその中でも様々な要求があり同じような話もいろんなところから出てきます。
CORE駆動開発でのプロジェクト視点
お客様からいただく要求事項に対して、仕様策定やプロジェクト内のスケジュールといったところも所与の条件になります。
ここはゆっくりきちんと時間をかけて考えたいのに、ここまでにPJの要件定義を終わらせないといけない、といった事もよくあります。わたしがPJの企画段階できちんと把握できておらず準備ができていないが故にうまくいかなかったりしたのも今は一つの良い学びです。
だんだんと形作られているところではありますがまだまだこのへんもCORE駆動開発の一つの課題です。
良いポイントやメリット
きちんとメリットもあるので、一部を簡単にご紹介。
ゼロベースで開発を進めるのと比べて、現状こんなところまでできてるよ、動くものが実際にあるよというのもお客様からみて、的確なイメージを持ちやすかったり思考を先に進めやすかったりします。ドローン関連などはAsIsの業務があるわけではないので、絵空事にはならずに実際にドローンを使ったアプリのベースがあってそれをお見せできるのは大きなメリットです。
ベースがあることによって、ゼロからプロダクトを作るのではなく現状からの機能拡充視点で小さく細かい開発を積み重ねればいいというのも大きいです。QCDの視点でコントロールも当然しやすいです。
なぜこういうスタイルをとる必要があるか
センシンがやろうとしているお客様の課題解決という方針と相性が良いというのが一つあります。
システム開発で課題解決する場合、提供する顧客の業務をきちんと隅々まで理解したうえで、プロダクトをデザインして綺麗にぶつけにいきたいのが本音です。
一方で我々が課題解決をしている対象の業務は、総務や経理といったどの企業でも行われる、法律などの制約もうけるある意味理解しやすい業務とは違って、事業自体の業務のため、業界特有なものやお客さま毎に改善をつみかさねた業務であったり、事業規模が大きく関係者が多いといった背景からも、短時間で全景を理解しきるということにハードルがあります。
ゼロから一定業務ができるまでのシステムを作るのは大きい規模の開発が動きますが、すでにベースがある状態から、一歩一歩進んでいけるというのは何もないところから比較すると大きなメリットと感じます。
最後に
このやり方は簡単ではなく、足元のことからより先進的なことまでまだまだたくさん課題はあります。ただ1年前と比べると景色は変わっており明確な進歩も感じます。難しいからこそやりがいもあり、私一人でできることでも到底なく、センシンのメンバーと引き続きSENSYN COREを利用したお客様の課題解決を進めていきます。