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
IoT企業におけるWebエンジニアの役割 / web-engineer-of-IoT-company
Search
koichi222
March 23, 2017
Programming
0
1.2k
IoT企業におけるWebエンジニアの役割 / web-engineer-of-IoT-company
koichi222
March 23, 2017
Tweet
Share
More Decks by koichi222
See All by koichi222
NOT A HOTELでのデータ・AI活用
koichi222
0
1.5k
2023夏NAHハッカソン_音声ケビンチーム
koichi222
0
2.3k
Other Decks in Programming
See All in Programming
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
160
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
400
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
360
MCP with Cloudflare Workers
yusukebe
2
230
Recoilを剥がしている話
kirik
5
7.6k
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
120
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
2
480
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
760
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
2
1.1k
Fibonacci Function Gallery - Part 2
philipschwarz
PRO
0
160
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
6
1.2k
Jakarta EE meets AI
ivargrimstad
0
340
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Designing for Performance
lara
604
68k
Into the Great Unknown - MozCon
thekraken
34
1.5k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Code Reviewing Like a Champion
maltzj
521
39k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Mobile First: as difficult as doing things right
swwweet
222
9k
Building Applications with DynamoDB
mza
91
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
470
Transcript
IoT企業における Webエンジニアの役割 @koichi222
目次 ・Akerunについて ・IoT製品開発の全体像 ・Akerunバックエンドのアーキテクチャの変遷 ・IoT企業でWebエンジニアが生み出せる価値
自己紹介 ・@koichi222 ・
[email protected]
・Software Engineer
Akerunについて
None
https://www.youtube.com/watch?v=ZipOv zOQ6yo
2014.9.1 株式会社フォトシンス設立 2015.3.23 1.Akerun SmartLockRobot 2.Akerunアプリ iOS/Androidアプリ 3.Akerun Manager 権限管理/履歴参照
2015.7.23 4.Akerun Remote Web・ガラケーで開閉 2015.11.25 5.Akerun Touch スマホをかざして開閉 2015.12.3 6.Akerun Entrance 自動ドアもスマホで開閉 Akerunオンライン鍵 管理システム
初代Akerun ・2015年3月リリース ・世界初の後付型スマートロック ・スマホアプリで施錠・解錠
オンライン鍵管理システム ・2015年7月リリース ・AkerunRemote ネット接続するIoTゲートウェイ ・管理画面Akerun Manager ブラウザから鍵の開け閉め、 合鍵の発行を可能に
Akerunモジュール、Akerun Touch ・Akerunモジュール 自動ドアに取り付け可能なモジュール オートロックのエントランスに対応 2015年12月リリース ・Akerun Touch スマホをかざすだけでAkerun操作可能に 2015年11月リリース
Akerun Pro ・Akerun Pro 開閉速度など基本性能の大幅向上 NFCでの開閉に対応 2016年7月リリース
IoT製品開発の全体像
一般的なWebシステム開発(アジャイル)
IoT製品の開発の流れ
Webシステム開発とIoT開発の違い ・開発するレイヤが広い ・HW・・・メカ、エレキ ・SW・・・FW、アプリ、API、Web ・HW開発はSWに比べリードタイムが長い ・設計→製造→評価→再設計 ・SW開発には製造工程がない PJとしての複雑性が高く、マネジメントの難易度が高い
ではこのような難易度の高い プロジェクトにどう取り組んだか?
1.開発人員の全レイヤ内製化 2.プロジェクト管理方法の一元化 3.レイヤをまたいだコミュニケーション 効率化ためのフォーマットづくり
1. 開発人員の全レイヤ内製化 創業当初から全レイヤにフルタイムメンバー
内製化ゆえ素早い議論と意思決定ができた
2. プロジェクト管理方法の一元化 当初はGithub Issue, Trelloなどを利用
2. プロジェクト管理方法の一元化 当初はGithub Issue, Trelloなどを利用 各レイヤごとのタスク管理はしやすい
PJ全体のタスクが一覧できない 時系列でのスケジューリングがしにくい
信頼と実績のExcelガントチャート
信頼と実績のExcelガントチャート 全体が俯瞰して見れる ビジネスサイドにもわかりやすい ☓
編集が簡単すぎる、編集履歴が残らない Excelへの転記作業が発生しメンテされにくい
Redmineで各レイヤごとのタスク管理
Redmineで各レイヤごとのタスク管理 全レイヤのタスクが俯瞰してみれる ガントチャート、カンバンなども表示できる エンジニアのタスクの2重管理がない 気を抜くとチケット化がおろそかに
3. レイヤを超えたコミュニケーション効率化 仕様書をきっちり用意する ・シーケンス図 ・データフロー ・API仕様(FW、Web)
Akerunバックエンド アーキテクチャの変遷
初代Akerun ・2015年3月リリース ・世界初の後付型スマートロック ・スマホアプリで施錠・解錠
フェーズ1(初代Akerun)
オンライン鍵管理システム ・2015年7月リリース ・AkerunRemote ネット接続するIoTゲートウェイ ・管理画面Akerun Manager ブラウザから鍵の開け閉め、 合鍵の発行を可能に
フェーズ2(Akerun+Remote+Manager)
AkerunPro ・Akerun Pro 開閉速度など基本性能の大幅向上 NFCでの開閉に対応 2016年7月リリース
フェーズ3(Akerun Pro)
アーキテクチャで重要だと感じた部分 ・API部分は疎結合にしておく ・スケールアップしやすさ ・外部システムとの連携しやすさ ・最適な通信プロトコルを選択する(HTTP,BLE、MQTT) ・モノの部分のデータもクラウドに集約するように 予め設計する ・複雑な処理はなるべくクラウドに寄せる(電池残量計算、暗号化) ・更新のしやすさ ・豊富なリソース
事例: 電池残量の計算 電圧だけでは、正確な電池残量を計測することは難しい → クラウド側に ・電圧 ・経過時間 ・開閉回数 ・温度 などのデータを集約し、それを元に
電池残量推定ロジックを作成、算出
IoT企業でWebエンジニア が生み出せる価値
前提 IoT製品であっても通常の ・アプリのAPI ・ユーザ向け管理画面 などは必要になることが多いので、 通常のWebエンジニアとしての仕事は十分 にある
HW製品とIoT製品の違い 常にネットに繋がっている状態である ・リアルタイムにデータが取得できる ・SW部分をアップデートできる データからどう価値を生むかが非常に重要 であり、Webエンジニアが活躍できる部分
データで品質を向上 利用データを元に故障の予兆を検知 開閉回数、電池残量などの基 本情報 FWのエラーログ ゲートウェイ↔インターネット の通信状況 Akerun↔ゲートウェイ の電波強度
そろそろ電池が 切れそう! データで顧客満足度を向上
データで顧客対応を効率化 なんだかAkerunの調子 が悪いなぁ ゲートウェイ↔インターネット 接続の問題 スマホ↔Akerunの接続の問題 お客様の操作ミスによる問題 Akerun本体の設置状況の問題 (設置位置がズレている )
お客様の社内ネットワーク 環境による問題 原因が多岐に渡るため切り分けが難しい
データで顧客対応を効率化 なんだかAkerunの調子 が悪いなぁ ゲートウェイ↔インターネット 接続の問題 スマホ↔Akerunの接続の問題 お客様の操作ミスによる問題 Akerun本体の設置状況の問題 (設置位置がズレている )
お客様の社内ネットワーク 環境による問題 利用データを確認することでCSを効率化
事例: コマツ(KOMTRAX) ・GPS ・エンジン燃費、温度 ・ポンプの圧力や温度 などを取得し、 ・故障の予兆を把握、事前に 保守サービスを提供 ・燃費をモニタリングして、 燃費が良くなるような操作方法
や設定を提案
まとめ ・Akerunについて ・IoT製品開発の全体像 ・Akerunバックエンドのアーキテクチャの変遷 ・IoT企業でWebエンジニアが生み出せる価値
最後に ・すべてが合わさって1つの”モノ”が動く瞬間の感動 ・初めてプログラミングをした時以来の感動がある ・理屈抜きで楽しい! 興味がある方はぜひ飛び込んでみては
ご静聴ありがとう ございました!