Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
“共通化”で失敗したモデリング実例 / Modeling examples of failur...
Search
株式会社ビットキー / Bitkey Inc.
PRO
August 13, 2024
Technology
2
130
“共通化”で失敗したモデリング実例 / Modeling examples of failures due to "commonization
登壇者名:佐藤 拓人
壇したイベントタイトル:モデリングの実践と苦悩
登壇したイベントのURL:
https://sansan.connpass.com/event/324542/
株式会社ビットキー / Bitkey Inc.
PRO
August 13, 2024
Tweet
Share
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
データを用いてサービス品質の向上に貢献!! SREのプラクティスを用いた守りのデータ分析 / Using Data to Improve Service Quality! Defensive data analysis using SRE practices
bitkey
PRO
1
12
事業フェーズの変化を乗り越えるEnabling/Platform SREへの転換 / Transition to Enabling/Platform SRE to overcome changes in business phase
bitkey
PRO
2
39
スタートアップにおける Platform Engineering の 片鱗 / A glimpse of platform engineering in startups
bitkey
PRO
2
170
Node.js のサーバーをなるべく自動生成に頼って Go にリプレイスした話 / A story about replacing a Node.js server with Go, relying on automatic generation as much as possible.
bitkey
PRO
2
150
スマートロック開発におけるSLI/SLOを用いた解錠体験の改善 / Improving the unlocking experience using SLI/SLO in smart lock development
bitkey
PRO
3
250
Bitkeyのモバイルアプリを進化させるための歩き方 / Walking the evolution of Bitkey's mobile apps
bitkey
PRO
1
380
Pointer と向き合う / Facing the Pointer
bitkey
PRO
1
56
Best of こんなTypeScriptは嫌だ! / I don't like this TypeScript
bitkey
PRO
1
93
こんなTypeScriptはいやだ! / I hate this kind of TypeScript!
bitkey
PRO
0
140
Other Decks in Technology
See All in Technology
2024年版 運用者たちのLLM
nwiizo
3
600
忙しい人のためのLangGraph概要まとめ
__ymgc__
1
170
Agile in Automotive Industry, puzzles and lights.
hiranabe
3
1.2k
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
chayakonanaika
1
1.1k
ネットワークだけ隔離されたコンテナ作成デモ / Kichijoji.pm36
tenforward
1
130
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
370
Developer Experienceを向上させる基盤づくりの取り組み事例集
coconala_engineer
0
140
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
230
自作Cコンパイラ 8時間の奮闘
soukouki
0
830
ナレッジグラフとLLMの相互利用
koujikozaki
0
400
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
1
140
Featured
See All Featured
Designing for humans not robots
tammielis
248
25k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
Done Done
chrislema
180
16k
Building Flexible Design Systems
yeseniaperezcruz
325
37k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Testing 201, or: Great Expectations
jmmastey
36
7k
Debugging Ruby Performance
tmm1
72
12k
Practical Orchestrator
shlominoach
185
10k
The Cult of Friendly URLs
andyhume
76
6k
A designer walks into a library…
pauljervisheath
201
24k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
Transcript
Copyright © 2023 Bitkey Inc. All right reserved. “共通化”で失敗したモデリング実例 株式会社ビットキー 佐藤
拓人 2024/08/07
2 Copyright © 2023 Bitkey Inc. All right reserved. 自己紹介
佐藤 拓人 Sato Takuto 2015.04 2019.05 2020.01 大学(建築学専攻)卒業後、 株式会社ワークスアプリケーションズに入社 会計システムのソフトウェア開発を担当 特に財務会計の仕訳関連 ビットキーへ参画 ECサイトの開発 / 保守、社内システムの開発 TaKuTyの開発 今のHome事業の前身となるResidenceチームに配属 bitlockを扱う管理画面やバックエンド、appの開発に 従事 Now Homeプロダクトの開発責任者 複雑な事象を読み解いて構造化し、抽象化 / 汎用化で きるように設計し、低コストで多くの価値をだせる開 発をすることを好む
3 Copyright © 2023 Bitkey Inc. All right reserved. 自己紹介
佐藤 拓人 Sato Takuto
4 Copyright © 2023 Bitkey Inc. All right reserved. 自己紹介
佐藤 拓人 Sato Takuto
5 Copyright © 2023 Bitkey Inc. All right reserved. Outline
1. はじめに 2. プロダクトの状況 3. 概念的な抽象化 4. 実装への落とし込み 5. 落とし穴
6 Copyright © 2023 Bitkey Inc. All right reserved. 1.
はじめに
7 Copyright © 2023 Bitkey Inc. All right reserved. ▪
モデリングとは? - 現実を模倣して単純化したもの - 単純化のために、情報を取捨選択して削ぎ落とす ▪ 目的・メリット - 単純化するため、実装しやすくなる - 単純化するため、変更しやすくなる - 単純化した結果共通項が明確になり共通化しやすくなる ▪ 例:地図 1. はじめに モデリングとは?
8 Copyright © 2023 Bitkey Inc. All right reserved. ▪
モデリングとは? - 現実を模倣して単純化したもの - 単純化のために、情報を取捨選択して削ぎ落とす ▪ 目的・メリット - 単純化するため、実装しやすくなる - 単純化するため、変更しやすくなる - 単純化した結果共通項が明確になり共通化しやすくなる ▪ 例 1. はじめに モデリングとは? 目的を見誤ってしまった 失敗談について話します
9 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況
Connect Everything テクノロジーの⼒であらゆるものを 安全で 便利で 気持ちよく「つなげる」 Bitkey Recruiting Book ©
Bitkey inc All rights reserved. Our Mission
私たちは⼀⽇の中で⼀体、 いくつかのアプリや認証を使い分けているのだろう? 週末を楽しむ ⾃宅 移動 ジム オフィスで働く ⼊退室 社員証 交通
IC 専⽤ アプリ ⾞の鍵 家の鍵 予約 番号 QR コード What we do
ビットキーが⽬指すのは、煩わしい⼿続きから解放された体験 「分断」をコネクトしていくことで、毎⽇の体験を彩っていきます 週末を楽しむ ⾃宅 移動 ジム オフィスで働く ⼊退室 社員証 交通
IC 専⽤ アプリ ⾞の鍵 家の鍵 予約 番号 QR コード What we do
デジタル間の体験の分断 インターネットの登場やアプリ開発が⼿軽になったことで、⽣活の利便性は 向上しました。⼀⽅で、デジタルサービスが増えるほどに、沢⼭のスマホア プリやWebサービス、SaaSツールなどを使い分ける⼿間も発⽣。毎回のアカ ウント登録、個⼈情報の⼊⼒、各アプリへの情報の⼆重登録などの⼿間か ら、やがて存在を忘れ、使わなくなるサービスもあるはずです。私達はここ に「デジタル間の体験の分断」課題があると捉えています。 リアルとデジタル間の体験の分断 デジタルで⽣活の利便性が向上する⼀⽅で、⽇常⽣活にはデジタルだけで完 結しない場⾯も多数あります。例えば、私達は24時間いつでも、ECサイトで
買い物したり、宿泊予約が可能になりました。しかし、荷物の受け取りは未 だに対⾯することが⼀般的です。このように、デジタルは便利なのに、リア ル体験ではシームレスさが途切れてしまいます。私達はここに「リアルとデ ジタル間の体験の分断」課題があると捉えています。 私たちが解決するのは 体験の「分断」です。
デジタル間の体験の分断 インターネットの登場やアプリ開発が⼿軽になったことで、⽣活の利便性は 向上しました。⼀⽅で、デジタルサービスが増えるほどに、沢⼭のスマホア プリやWebサービス、SaaSツールなどを使い分ける⼿間も発⽣。毎回のアカ ウント登録、個⼈情報の⼊⼒、各アプリへの情報の⼆重登録などの⼿間か ら、やがて存在を忘れ、使わなくなるサービスもあるはずです。私達はここ に「デジタル間の体験の分断」課題があると捉えています。 リアルとデジタル間の体験の分断 デジタルで⽣活の利便性が向上する⼀⽅で、⽇常⽣活にはデジタルだけで完 結しない場⾯も多数あります。例えば、私達は24時間いつでも、ECサイトで
買い物したり、宿泊予約が可能になりました。しかし、荷物の受け取りは未 だに対⾯することが⼀般的です。このように、デジタルは便利なのに、リア ル体験ではシームレスさが途切れてしまいます。私達はここに「リアルとデ ジタル間の体験の分断」課題があると捉えています。 私たちが解決するのは 体験の「分断」です。 でも リソースは少ない...
デジタル間の体験の分断 インターネットの登場やアプリ開発が⼿軽になったことで、⽣活の利便性は 向上しました。⼀⽅で、デジタルサービスが増えるほどに、沢⼭のスマホア プリやWebサービス、SaaSツールなどを使い分ける⼿間も発⽣。毎回のアカ ウント登録、個⼈情報の⼊⼒、各アプリへの情報の⼆重登録などの⼿間か ら、やがて存在を忘れ、使わなくなるサービスもあるはずです。私達はここ に「デジタル間の体験の分断」課題があると捉えています。 リアルとデジタル間の体験の分断 デジタルで⽣活の利便性が向上する⼀⽅で、⽇常⽣活にはデジタルだけで完 結しない場⾯も多数あります。例えば、私達は24時間いつでも、ECサイトで
買い物したり、宿泊予約が可能になりました。しかし、荷物の受け取りは未 だに対⾯することが⼀般的です。このように、デジタルは便利なのに、リア ル体験ではシームレスさが途切れてしまいます。私達はここに「リアルとデ ジタル間の体験の分断」課題があると捉えています。 私たちが解決するのは 体験の「分断」です。 汎用的な機能を組み合わせ 多くのソリューションを提供
デジタル間の体験の分断 インターネットの登場やアプリ開発が⼿軽になったことで、⽣活の利便性は 向上しました。⼀⽅で、デジタルサービスが増えるほどに、沢⼭のスマホア プリやWebサービス、SaaSツールなどを使い分ける⼿間も発⽣。毎回のアカ ウント登録、個⼈情報の⼊⼒、各アプリへの情報の⼆重登録などの⼿間か ら、やがて存在を忘れ、使わなくなるサービスもあるはずです。私達はここ に「デジタル間の体験の分断」課題があると捉えています。 リアルとデジタル間の体験の分断 デジタルで⽣活の利便性が向上する⼀⽅で、⽇常⽣活にはデジタルだけで完 結しない場⾯も多数あります。例えば、私達は24時間いつでも、ECサイトで
買い物したり、宿泊予約が可能になりました。しかし、荷物の受け取りは未 だに対⾯することが⼀般的です。このように、デジタルは便利なのに、リア ル体験ではシームレスさが途切れてしまいます。私達はここに「リアルとデ ジタル間の体験の分断」課題があると捉えています。 私たちが解決するのは 体験の「分断」です。 「汎用化」「共通化」を重視
17 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか? 解錠できる オートロックの設定ができる 解錠施錠ログを見ることができる
18 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか?
19 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか?
20 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか?
21 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか?
22 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 なにをしたか?
23 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 どのように実現したか bitlock MINI bitreader+ bitlink homehub Entrance 電子錠A ・・・
24 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 どのように実現したか bitlock MINI bitreader+ bitlink homehub Entrance 電子錠A 社員 入居者 入居者家族 設置業者 仲介業者 ・・・ ・・・ アプリ解錠 手ぶら解錠 パスコード NFCカード 顔認証 ・・・
25 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 どのように実現したか bitlock MINI bitreader+ bitlink homehub Entrance 電子錠A 社員 入居者 入居者家族 設置業者 仲介業者 ・・・ ・・・ アプリ解錠 手ぶら解錠 パスコード NFCカード 顔認証 ・・・
26 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 どのように実現したか bitlock MINI bitreader+ bitlink homehub Entrance 電子錠A 社員 入居者 入居者家族 設置業者 仲介業者 ・・・ ・・・ アプリ解錠 手ぶら解錠 パスコード NFCカード 顔認証 ・・・ 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・
27 Copyright © 2023 Bitkey Inc. All right reserved. 2.
プロダクトの状況 どのように実現したか bitlock MINI bitreader+ bitlink homehub Entrance 電子錠A 社員 入居者 入居者家族 設置業者 仲介業者 ・・・ ・・・ アプリ解錠 手ぶら解錠 パスコード NFCカード 顔認証 ・・・ 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ 解錠するヒト、デバイス、解錠方法 …の組み合わせで制御が必要 ユースケースに制御が集中して 実装が大変...
28 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化
29 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス 「誰がいつどこに何で解錠できるか」と いう観点で抽象化し、統一的に管理
30 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス 〇〇さんに△△にアクセス できるようにして欲しい ▢▢を使ってにアクセスして!
31 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス △△にアクセス できるのが誰か教えて 〇〇さんと〇〇さんだよ
32 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス 解錠に関する制御を管理しやすいように 抽象化したモデルを用意する
33 Copyright © 2023 Bitkey Inc. All right reserved. 3.
概念的な抽象化 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス いろんなデバイスを 統一的に管理するために機能役割を整理 - LockDevice:解錠にまつわる機能、実際にドアを解錠すことができる - AuthDevice:認証にまつわる機能、 NFCカードや顔、パスコードで解錠できるか のチェックをし、解錠可能であれば解錠デバイスに解錠コマンドを投げる - LinkDevice:デバイスをネットワークとつなげ、コマンドを実行する - StrageDevice:ロッカーなどものを格納する機能をもつデバイス
34 Copyright © 2023 Bitkey Inc. All right reserved. ▪
「アクセスコントロール」という概念の創出 - 「誰がいつどこに何で解錠できるか」という観点で抽象化し、統一的に管理する - 「ヒト」「空間」「モノ(デバイス)」「解錠手段」ごとにモデルを統一 ▪ 「モノ(デバイス)」のモデル整理 - 「誰がいつどこに何で解錠できるか」という観点で抽象化し、機能役割を定義 - LockDevice:解錠にまつわる機能を持つデバイス、実際にドアを解錠すことができる - AuthDevice:認証にまつわる機能を持つデバイス、 NFCカードや顔、パスコードで解錠できるかの チェックをし、解錠可能であれば解錠デバイスに解錠コマンドを投げる - LinkDevice:デバイスをネットワークとつなげ、デバイスに対してコマンドを実行する - StrageDevice:ロッカーなどものを格納する機能をもつデバイス 3. 概念的な抽象化 アクセスコントロール
35 Copyright © 2023 Bitkey Inc. All right reserved. 4.
実装への反映
36 Copyright © 2023 Bitkey Inc. All right reserved. 4.
実装への反映 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事 ユースケース ・・・ アクセス コントロール ヒト 空間 デバイス 汎用的な粒度のモデルで実装 EntityやDBなど
37 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴
38 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事ユー スケース ・・・ アクセス コントロール ヒト 空間 デバイス 設置 ユースケース 設定変更 ユースケース 設置や設定など「解錠」以外の ユースケースもある
39 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事ユー スケース ・・・ アクセス コントロール ヒト 空間 デバイス 設置 ユースケース 設定変更 ユースケース 設置や設定などのユースケースでも 同じモデルを使っていた
40 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事ユー スケース ・・・ アクセス コントロール ヒト 空間 デバイス 設置 ユースケース 設定変更 ユースケース 設置や設定などのユースケースでも 同じモデルを使っていた いろんなデバイスの固有値が まとめられて使いづらい...
41 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴 アクセスコントロール 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事ユー スケース ・・・ アクセス コントロール ヒト 空間 デバイス 設置 ユースケース 設定変更 ユースケース 設置や設定などのユースケースでも 同じモデルを使っていた いろんなデバイスの固有値が まとめられて使いづらい ... あれ?扱いづらいな... なんでだろう...?
42 Copyright © 2023 Bitkey Inc. All right reserved. ▪
モデルの目的でない役割をもたせた - もともと「解錠」をベースに整理したモデルであった - 「解錠」以外のユースケースがあるのに同じモデルを使いまわしてしまっていた - 「解錠」と関係ないデバイスごとの設定値などを含めてしまい扱いづらくなった ▪ ビジネスフェーズの変遷 - 初期は「解錠」以外は広く浅い機能が多くデバイスの種類も今ほど多くなかったので、同じモデルを使い まわしても問題となりづらかった - 徐々に作り込む機能が増え取り扱うデバイスの種類も増え、「解錠」以外のユースケースで実装が煩雑 なるようになった - 初期はリリースの速度の重要性が高かったので、同じモデルを利用する選択を間違っていなかったので はと考えています - 一方でビジネスフェーズの変遷に伴い戦い方を変更できなかった点は改善すべきと考えてます 5. 落とし穴 問題
43 Copyright © 2023 Bitkey Inc. All right reserved. ▪
モデルの目的でない役割をもたせた - もともと「解錠」をベースに整理したモデルであった - 「解錠」以外のユースケースがあるのに同じモデルを使いまわしてしまっていた - 「解錠」と関係ないデバイスごとの設定値などを含めてしまい扱いづらくなった ▪ ビジネスフェーズの変遷 - 初期は「解錠」以外は広く浅い機能が多くデバイスの種類も今ほど多くなかったので、同じモデルを使い まわしても問題となりづらかった - 徐々に作り込む機能が増え取り扱うデバイスの種類も増え、「解錠」以外のユースケースで実装が煩雑 なるようになった - 初期はリリースの速度の重要性が高かったので、同じモデルを利用する選択を間違っていなかったので はと考えています - 一方でビジネスフェーズの変遷に伴い戦い方を変更できなかった点は改善すべきと考えてます 5. 落とし穴 問題 目的が異なるものを安易に混ぜない ビジネスの変遷に伴って戦略を変えるべき
44 Copyright © 2023 Bitkey Inc. All right reserved. 5.
落とし穴 入居契約 ユースケース 内見予約 ユースケース 従業員権限付与 ユースケース 原状回復工事ユー スケース ・・・ アクセス コントロール ヒト 空間 解錠用 デバイス 設置 ユースケース 設定変更 ユースケース 設置や設定用として デバイスごとにモデルをわけて管理する 解錠コンテキスト 設定コンテキスト bitlock 電気錠A ・・・
45 Copyright © 2023 Bitkey Inc. All right reserved. ▪
目的を整理する - 「解錠」に関するユースケースは変数が多く散乱しまうので「統一」的に対応したい - 「設定」「設置」に関しては、デバイスごとの固有値に対して「個別」に対応したい ▪ 目的が同じものを無理に統一しない - 同じデバイスであっても、「解錠」「設定」とでは求められる機能が異なる - モデルやデータベースを分けるや IFを別にするなどの対応ができてよかった ▪ 定期的に見直す - ビジネスの状況が変われば戦い方も変わるので、良かったものが適切でなくなることもある - 経験を積むことで今までなかった観点が選られることもある ※ もともとデバイスの中で「解錠」「設定」とで大きくモデルを分ける構想などなかった ... 5. 落とし穴 まとめ
46 End of File Copyright © 2023 Bitkey Inc. All
right reserved.