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
410
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
“共通化”で失敗したモデリング実例 / Modeling examples of failures due to "commonization
登壇者名:佐藤 拓人
壇したイベントタイトル:モデリングの実践と苦悩
登壇したイベントのURL:
https://sansan.connpass.com/event/324542/
株式会社ビットキー / Bitkey Inc.
PRO
August 13, 2024
More Decks by 株式会社ビットキー / Bitkey Inc.
See All by 株式会社ビットキー / Bitkey Inc.
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
410
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
250
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
230
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
410
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
2
840
Flutter初心者が生成AIで大規模アプリ開発をキャッチアップした工夫 〜元ネイティブエンジニアが実践した、技術転換の高速道路〜 / Flutter with LLM: A Former Native Engineer's Fast Track to Large-Scale Apps
bitkey
PRO
0
290
〜備えあれば憂いなし〜とりあえず障害訓練やろ? デジタル/フィジカル横断プロダクトを24365で維持するための戦略 / Better Safe Than Sorry: Incident Drills for 24/365 Digital-Physical Products
bitkey
PRO
0
150
雑談は、センサーだった
bitkey
PRO
2
540
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.6k
Other Decks in Technology
See All in Technology
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
110
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.1k
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
480
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
150
組織における AI-DLC 実践
askul
0
140
PostgreSQL 19 新機能概要 OSC Hokkaido 2026
nori_shinoda
0
260
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
440
AIAU_UMEMOGU_ninomiya_slide
ninomiya_ii
0
270
初めてのDatabricks勉強会
taka_aki
2
180
AIチャット検索改善の3週間
kworkdev
PRO
2
200
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
120
2026-06-24_人とAIの責務分離に基づく開発プロセスの提案.pdf
takahiromatsui
0
240
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.4k
Faster Mobile Websites
deanohume
310
32k
Docker and Python
trallard
47
3.9k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
740
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
570
From π to Pie charts
rasagy
0
220
Facilitating Awesome Meetings
lara
57
7k
WENDY [Excerpt]
tessaabrams
11
38k
Everyday Curiosity
cassininazir
0
240
A designer walks into a library…
pauljervisheath
211
24k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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.