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
what_is_technical_investment
Search
mattak
April 23, 2019
0
120
what_is_technical_investment
mattak
April 23, 2019
Tweet
Share
More Decks by mattak
See All by mattak
最近やった作業環境改善施策10個
mattak
0
250
UnixTime is Simple
mattak
0
170
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
300
Nodux - node base redux framework
mattak
0
1.4k
unitypackage distribution
mattak
0
770
Unity energy usage
mattak
0
860
Unidux 0.3.1
mattak
1
370
Component Pattern for Android
mattak
0
480
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Adopting Sorbet at Scale
ufuk
73
9.1k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Docker and Python
trallard
42
3.1k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Documentation Writing (for coders)
carmenintech
66
4.5k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Rails Girls Zürich Keynote
gr2m
94
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
A Tale of Four Properties
chriscoyier
157
23k
Transcript
技術ってなに? 技術的投資とは? Mattak 2019-04-23 ks 春のLT会
※ 西洋人思考 ※ あんまりまとまってないです ※ エンジニア成分強め
技術ってなんだろう…?
まずは、価値、生産性から考えてみる ✏
生産性 っ て ?
生産性を考える 生産性(P) 投下時間(T) 創出価値(V) =
生産性を考える かけた時間が短い => 生産性が高い 生んだ価値が大きい => 生産性が高い 一昔前: 付加価値を増やす (V)
最近: 仕事時間をへらす (T) 生産性(P) 投下時間(T) 創出価値(V) =
生産性を考える 付加価値を増やす: グラフィック、サウンド、アニメーション、… 必要時間を減らす: エンジニアリング、ディレクション… 生産性(P) 投下時間(T) 創出価値(V) =
生産性と 仕 組 み ?
生産性を考える P T V = P = f(v,t) 仕組み: f
価値: v 投下時間: t 生産性:P
生産性を考える 例: パンをつくる生産性 仕組み1 (f1): 1時間に1つパンを作ることができる 仕組み2 (f2): 1時間に 2つパンを作ることができる
P1 = f1(v,t) = v / t P2 = f2(v,t) = 2v / t f1(v,t) < f2(v,t) : 仕組み2は、仕組み1より生産性が高い
生産性を考える 仕組み(f)を良くする => 生産性(P)が向上していく f1(v,t) < f2(v,t) < f3(v,t) <
… 技術で生産性を向上したい…! 技術 => 仕組みづくり => 生産性の向上
技術の 価 値 ?
技術の価値を考える 価値:v, 時間:t, 手段:g v = g(t) 時間(t) => 価値(v)に変換可能である
例: バイト: 1000円/時間の報酬を得る 例: パラパラ漫画: 中間絵の枚数作業を増やすと、ヌルヌル動く …
技術の価値を考える 価値v は 時間t と関係がある => 創出時間が、創出価値の増大につながる!
技術の価値を考える 例: 8倍速デバックモードの導入 デバック回数: 10回/日、導入時間1h (16 - 4) * 10
120min = 創出時間/日 = - 仮に80万/月 => 4万/日 => 5000円/時間 - 毎日1万円の創出価値になる 導入前: 作業時間: 16min 導入後: 作業時間: 4min もし外注費に変換するなら…
技術の価値を考える 創出時間: G > 0: - 時間が生まれる => 更に時間を創出する作業ができる 創出時間:
G <= 0: - 時間に追われる => 時間がどんどん足りなくなっていく もし普段から作業時間追われているのなら、創出時間がないのかも
技術の価値を考える 技術の実用的価値: E = 創出時間T’ 投下時間T と定義したらどうだろうか..?
技術の価値を考える E < 0: - 創出時間 < 0 - やばい
E < 1 - 創出時間 < 投下時間 - 無駄だった E = 1: - 創出時間 = 投下時間 - やらなくても良かった E > 1: - 創出時間 > 投下時間 - 以前より楽になった! E > 2: - 創出時間 > 投下時間 - かなり楽になった!
技術的 投 資 ?
技術的投資を考える 投資 > 消費 > 浪費 投資: 得る時間 > 支払う時間
消費: 得る時間 = 支払う時間 浪費: 得る時間 < 支払う時間 例: 作業時間の観点 - 設計1 => 設計2: 作業時間が半分になった (技術投資) - 技術1 => 技術2: 作業時間が伸びた (技術浪費)
技術的投資を考える 技術的投資をしていこう..! 技術的投資 => 創出時間up => さらなる技術的投資 技術的消費 => 日々の変わりないルーチン作業
技術的浪費 => 時間が足りないので休日作業. 残業常態化 投資 可動時間 投資 可動時間 作業 作業 投資 可動時間 作業
技術的投資を考える でも、現実は複雑… 技術1と技術2では、どちらがいいのだろうか? 技術1: - 学習コスト 10 - 説明コスト 10
- 更新コスト 1 - 作業コスト 3 - エンバグ可能性 10% - … 技術2: - 学習コスト 2 - 説明コスト 3 - 更新コスト 4 - 作業コスト 4 - エンバグ可能性 20% - …
技術的投資を考える Issue から考える 技術1: - 学習コスト 10 - 説明コスト 10
- 更新コスト 1 - 作業コスト 3 - エンバグ可能性 10% - … 技術2: - 学習コスト 2 - 説明コスト 3 - 更新コスト 4 - 作業コスト 4 - エンバグ可能性 20% - … 作業頻度が高い、作業工数を減らしたい => 技術2 初心者、簡単に導入できるようにしたい => 技術1 Issueによって、相対的に良い道具は変わる
技術的投資を考える 例:検索エンジンが実行時間を0.01秒短縮した - Who/When/What: 世界中の利用者/検索時/待ち時間 - Who/When/What: サーバ/稼働時/計算時間 例:言語機能1で2行のコードが1行になった -
Who/When/What: 開発者/レビュー時/可読時間半分 - Who/When/What: CPU/コンパイル時/計算時間倍 視点変化 => 創出時間変化
その他の ネ タ
まとまってないけど、ネタ 技術的キャッシュフロー 技術的バランスシート - 負債は利息[時間]を将来に渡って支払っていく - 資産 = 負債 +
資本 で、負債も資産 - 技術的バランスシートを可視化してみよう - 業務作業時間 + 投資作業時間 短期的投資、長期的投資 - アプリケーションアーキテクチャは長期投資
メッセージ 的 な も の
技術的投資できていますか ? 技術的消費、浪費になっていませんか? 時間創出できていますか? だんだん良くなる、だんだん楽になるエンジニアリングできてますか? 利息のついた技術負債はどのくらいありますか? メッセージ的なもの
メッセージ的なもの 技術的投資を成功させて、もっと時間作っていきましょ…!!!
おわり