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
220
“共通化”で失敗したモデリング実例 / 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.
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
1.9k
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
160
GORM v1 → v2に移行したときの変更点/Changes when moving from GORM v1 to v2
bitkey
PRO
1
72
うまくいく! を実現するための質問力 / It works! The Power of Questions to Make It Happen
bitkey
PRO
1
360
ビットキーの中核を担うプロダクトで テスト自動化を駆使して安定的なリリースを実現する/At the core of BitKey's products Achieving stable releases through the use of test automation
bitkey
PRO
1
150
共創するアーキテクチャ ~チーム全体で築く持続可能な開発エコシステム~ / Co-Creating Architecture - A Sustainable Development Ecosystem Built by the Entire Team
bitkey
PRO
2
6.4k
キャンセルします!処理を / Cancels the process!
bitkey
PRO
1
160
Waroomを使って ハードウェアからソフトウェアまで 領域横断してインシデントマネジメント始めてみた /I started incident management using Waroom across domains from hardware to software.
bitkey
PRO
1
130
データを用いてサービス品質の向上に貢献!! SREのプラクティスを用いた守りのデータ分析 / Using Data to Improve Service Quality! Defensive data analysis using SRE practices
bitkey
PRO
2
160
Other Decks in Technology
See All in Technology
エンジニアリングマネージャー視点での、自律的なスケーリングを実現するFASTという選択肢 / RSGT2025
yoshikiiida
4
3.3k
30分でわかるデータ分析者のためのディメンショナルモデリング #datatechjp / 20250120
kazaneya
PRO
18
4.3k
When Windows Meets Kubernetes…
pichuang
0
270
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
1
5k
Unlearn Product Development - Unleashed Edition
lemiorhan
PRO
2
170
Alignment and Autonomy in Cybozu - 300人の開発組織でアラインメントと自律性を両立させるアジャイルな組織運営 / RSGT2025
ama_ch
1
2.1k
【令和最新版】ロボットシミュレータ Genesis x ROS 2で始める快適AIロボット開発
hakuturu583
2
1.5k
ZOZOTOWN の推薦における KPI モニタリング/KPI monitoring for ZOZOTOWN recommendations
rayuron
1
1.1k
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
130
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
Fabric 移行時の躓きポイントと対応策
ohata_ds
1
140
「隙間家具OSS」に至る道/Fujiwara Tech Conference 2025
fujiwara3
6
2.9k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Practical Orchestrator
shlominoach
186
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
What's in a price? How to price your products and services
michaelherold
244
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Statistics for Hackers
jakevdp
797
220k
The Language of Interfaces
destraynor
155
24k
Raft: Consensus for Rubyists
vanstee
137
6.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.