Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コア技術の段階的発展とチームの代謝
Search
NAVITIME JAPAN
PRO
February 28, 2020
Business
0
110
コア技術の段階的発展とチームの代謝
ナビタイムジャパンの、プロダクトの発展とそれに対するチームの向き合い方についてまとめた資料です。
NAVITIME JAPAN
PRO
February 28, 2020
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
16k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
890
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
250
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
3.2k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.7k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
380
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.7k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.4k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
8
5.8k
Other Decks in Business
See All in Business
株式会社IB_採用資料
hokenbo
0
140
Connected Robotics
cr
0
54k
株式会社ステラセキュリティ会社紹介資料/sterrasec-introduction
sterrasec
0
420
QuackShift 会社紹介資料
riekondo
0
190
Corporate Info
yuzo
0
1.3k
週4社員しながら個人開発にベットする / Betting on Personal Projects While Working a Four-Day Week
kohii00
4
3k
コーポレートストーリー(新規投資家様向け会社説明資料)
gatechnologies
1
16k
SimpleForm 会社紹介資料
simpleform
2
50k
生成AI専任営業が語るre:Inventで発表された生成AIアップデート情報
suzakiyoshito
0
240
2025-11-27_anti_bocchi
_hashimo2
3
450
任されるプロダクトマネージャーのリアル - プロダクトマネージャーの成長機会 に関する実例収集調査結果
ykmc09
2
2.7k
曖昧なLLMの出力をプロダクト価値へつなげる、要求の具体化と評価
zerebom
4
430
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
27
Paper Plane (Part 1)
katiecoart
PRO
0
1.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Exploring anti-patterns in Rails
aemeredith
2
200
Navigating Weather and Climate Data
rabernat
0
51
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
Un-Boring Meetings
codingconduct
0
160
Docker and Python
trallard
47
3.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
Transcript
コア技術の段階的発展と チームの代謝 株式会社ナビタイムジャパン 小田中 育生
小田中 育生 (おだなか いくお) (株)ナビタイムジャパン 開発部 部長 ACTS(研究開発) ルートグループ責任者 ミッション
・経路探索のR&D ・全社的なカイゼン活動
Recent Works 106 223 352 606 749 1864 30704 1
10 100 1000 10000 100000 0 200 400 600 800 1000 1200 1400 1600 1800 2000 10 60 110 160 距離[km] 距離と探索時間 GPU Kepler GPU Volta CPU CPU 階層1のみ 指数関数的な 計算時間増大を克服
Recent Works
コア技術の段階的発展
道路ネットワークの経路探索 アルゴリズム コストモデル データ 移動手段 ・徒歩 ・自転車 ・自動車 ・バイク 経路探索の構成要素
自動車向け 徒歩向け 自転車向け 統一 自転車向け (GPU) 発展の系譜 横展開&個別進化期 統一期 発展期
横展開&個別進化期の課題 自動車 徒歩 自転車 ・個別に最適化されてしまう ・I/Fが独自進化、使う側が負担 ・モノリシックで開発コストが高い 別バイナリ ひとつひとつのコストモデルが 別メソッドで定義
統一期への発展 ・モジュール化 ・交通手段を抽象化しバイナリ共通化 ・コストモデルをパラメータ化
世はMaaS時代
開発しやすい設計が、MaaSの要望を支えた
自動車向け 徒歩向け 自転車向け 統一 自転車向け (GPU) 発展の系譜 横展開&個別進化期 統一期 発展期
発展期
増大する計算量に対応すべくGPU対応
APIは変更せず中身だけ変更 CPU API Algorithm gRPC GPU Algorithm
互換性を保ちつつ抜本的に改善 106 223 352 606 749 1864 30704 1 10
100 1000 10000 100000 0 200 400 600 800 1000 1200 1400 1600 1800 2000 10 60 110 160 時間[msec] 距離[km] 距離と探索時間 GPU Kepler GPU Volta CPU CPU 階層1のみ 指数関数的な 計算時間増大を克服
自動車向け 徒歩向け 自転車向け 統一 自転車向け (GPU) 発展の系譜 横展開&個別進化期 統一期 発展期
個別進化がなければ統一期はなかった 統一期でモジュール化されていなければ 発展期の設計は実現しなかった コア技術は段階的に発展していった
でも
「目の前にあるコードが複雑で どうしていいかわからない」 そんなことありませんか? 私はあります。
チームの代謝
モノリシッ ク 自動車向け 徒歩向け 自転車向け 統一 自転車向け (GPU) 横展開&個別進化期 統一期
発展期 この時期が長い
・C言語 ・モノリシック ・テストなし ・交通手段別 ・C言語 ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化
・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化 ・テストあり(外部FW) ・交通手段統合 統一期の中でも段階的に発展
・C言語 ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化
・テストあり(外部FW) ・交通手段統合 ・C言語 ・モノリシック ・テストなし ・交通手段別 コードとしてはフルリプレイスされているが アーキテクチャ思想には当時の文脈が息づく
・C言語 ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化
・テストあり(外部FW) ・交通手段統合 ・C言語 ・モノリシック ・テストなし ・交通手段別 今いるほとんどの メンバーはこれ以降にジョイン 以前の文脈を知らない
文脈を知らないゆえに なぜそう動いているのかわからない どう改修すればいいかわからない 複雑度が低く保たれていても、 テスト保護されていたとしても、 コードはレガシー化する
どう向き合うか ・調査依頼などを通したコードリーディングでの体得 ・モブプロでチームとして未知の文脈に向き合う ・クラスレベルの詳細なスキルマップを作成し チームのナレッジを可視化(最近始めた)
文脈を知らないがゆえに悩む ・「機能追加したいけど元の設計と噛み合わない」 ・「このコードは消していいのだろうか」 ・「なぜこのテストコードはこうなってる?」
モノリシッ ク 自動車向け 徒歩向け 自転車向け 統一 自転車向け (GPU) 横展開&個別進化期 統一期
発展期 小田中は これくらいのタイミングで 入社
・C言語 ・モノリシック ・テストなし ・交通手段別 ここから知ってる ・C言語 ・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++
・モジュール化 ・テストあり(内製FW) ・交通手段統合 ・C++ ・モジュール化 ・テストあり(外部FW) ・交通手段統合
そうだ、語り部になろう
私が描く理想の段階的発展と現実 ・自分たちが作りたいもの、自分たちにあった作り方から 新しい文脈を作り出してほしい。過去の文脈を 気にしすぎない ・気にしないためには、それが何者であるかを 知る必要がある ・「昔からいるおじさん」は文脈を伝えることが使命
まとめ ・ソフトウェアは段階的に発展する ・機能面も、構造面も ・機能面で発展を続けるには構造面の発展が不可欠 ・チームは代謝する ・日本は新卒採用がある ・過去の文脈とはチームで向き合う ・古い文脈が新しい文脈に転嫁するまでは、 語り部が必要なのかもしれない
THANKS!!