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
240
UnixTime is Simple
mattak
0
160
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
300
Nodux - node base redux framework
mattak
0
1.4k
unitypackage distribution
mattak
0
760
Unity energy usage
mattak
0
840
Unidux 0.3.1
mattak
1
360
Component Pattern for Android
mattak
0
480
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
Testing 201, or: Great Expectations
jmmastey
38
7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Why Our Code Smells
bkeepers
PRO
334
57k
Visualization
eitanlees
144
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
14
1.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
72
5.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
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/コンパイル時/計算時間倍 視点変化 => 創出時間変化
その他の ネ タ
まとまってないけど、ネタ 技術的キャッシュフロー 技術的バランスシート - 負債は利息[時間]を将来に渡って支払っていく - 資産 = 負債 +
資本 で、負債も資産 - 技術的バランスシートを可視化してみよう - 業務作業時間 + 投資作業時間 短期的投資、長期的投資 - アプリケーションアーキテクチャは長期投資
メッセージ 的 な も の
技術的投資できていますか ? 技術的消費、浪費になっていませんか? 時間創出できていますか? だんだん良くなる、だんだん楽になるエンジニアリングできてますか? 利息のついた技術負債はどのくらいありますか? メッセージ的なもの
メッセージ的なもの 技術的投資を成功させて、もっと時間作っていきましょ…!!!
おわり