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
3
210
“共通化”で失敗したモデリング実例 / 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.
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
100
GORM v1 → v2に移行したときの変更点/Changes when moving from GORM v1 to v2
bitkey
PRO
1
46
うまくいく! を実現するための質問力 / It works! The Power of Questions to Make It Happen
bitkey
PRO
1
330
ビットキーの中核を担うプロダクトで テスト自動化を駆使して安定的なリリースを実現する/At the core of BitKey's products Achieving stable releases through the use of test automation
bitkey
PRO
1
89
共創するアーキテクチャ ~チーム全体で築く持続可能な開発エコシステム~ / Co-Creating Architecture - A Sustainable Development Ecosystem Built by the Entire Team
bitkey
PRO
2
5.9k
キャンセルします!処理を / Cancels the process!
bitkey
PRO
1
130
Waroomを使って ハードウェアからソフトウェアまで 領域横断してインシデントマネジメント始めてみた /I started incident management using Waroom across domains from hardware to software.
bitkey
PRO
1
120
データを用いてサービス品質の向上に貢献!! SREのプラクティスを用いた守りのデータ分析 / Using Data to Improve Service Quality! Defensive data analysis using SRE practices
bitkey
PRO
2
150
事業フェーズの変化を乗り越えるEnabling/Platform SREへの転換 / Transition to Enabling/Platform SRE to overcome changes in business phase
bitkey
PRO
2
150
Other Decks in Technology
See All in Technology
kargoの魅力について伝える
magisystem0408
0
210
podman_update_2024-12
orimanabu
1
270
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
240
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
200
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
How GitHub (no longer) Works
holman
311
140k
4 Signs Your Business is Dying
shpigford
181
21k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
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.