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
「兵法」から見る質とスピード
Search
ICKX
May 30, 2025
Programming
0
77
「兵法」から見る質とスピード
ICKX
May 30, 2025
Tweet
Share
More Decks by ICKX
See All by ICKX
あなたの知らない新潟
ickx
0
27
香川にはTyrellがあるからね
ickx
0
220
品質が高いコードって何?Rev2.1
ickx
1
830
品質が高いコードって何?
ickx
1
1.7k
【PHPerKaigi2021】PHPでCSVを安心して扱うために
ickx
4
2.9k
【PHPerKaigi2020】ぼくのかんがえたさいつよQueryBuilder
ickx
0
1k
【PHPカンファレンス関西2018】遅延評価戦略を用いたアクション呼び出しと安全なコピペで生産性アップ!
ickx
0
720
Other Decks in Programming
See All in Programming
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
610
Practical Domain-Driven Design - Workshop at NDC 2025
mufrid
0
120
❄️ tmux-nixの実装を通して学ぶNixOSモジュール
momeemt
1
120
TSConfig Solution Style & subpath imports to switch types on a per-file basis
maminami373
1
160
AI Coding Agent Enablement in TypeScript
yukukotani
15
6.2k
TSConfigからTypeScriptの世界を覗く
planck16
2
1.2k
テスト分析入門/Test Analysis Tutorial
goyoki
9
2.5k
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
320
primeNumberでのRBS導入の現在 && RBS::Traceでinline RBSを拡充してみた
mnmandahalf
0
220
抽象データ型について学んだ
ryounasso
0
200
衛星の軌道をWeb地図上に表示する
sankichi92
0
230
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
380
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
How GitHub (no longer) Works
holman
314
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Visualization
eitanlees
146
16k
A designer walks into a library…
pauljervisheath
205
24k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Done Done
chrislema
184
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.5k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Site-Speed That Sticks
csswizardry
6
580
Transcript
兵法 "質とスピード"
• • • • スタッフエンジニア PHPエンジニア • PHP続けてもうすぐ25年 • 自転車
アマチュア無線 • Tyrell IVE • ICOM • VERTICAL STRIKE ENDLESS CHALLENGE • https://qiita.com/wakabadou/items/84b48ca12f25fb2fb69c
宣伝 PHPerKaigi2021 PHPでCSVを 安心して扱うために fw3/streams そのまま直接
メソッドで種類を指定し、 ファイルパスとZIP内のパスを 記述するだけでOK CSVの設定はふつう !!注意!!foreachを使用しない ストリームのため巻き戻しができず ここだけ定石から外れる
メソッドで種類を指定し、 ファイルパスとZIP内のパスを 記述するだけでOK CSVの設定はふつう !!注意!!foreachを使用しない ストリームのため巻き戻しができず ここだけ定石から外れる
CSVの設定はふつう !!注意!!foreachを使用しない ストリームのため巻き戻しができず ここだけ定石から外れる NoRewindIterator万歳!!
宣伝 baypassflow
資料 「“品質”が高いコード」って何? 品質警察だ!
兵法 "質とスピード"
兵 法 持 続 す る 組 織 開 発
の 質 と ス ピ ー ド 意 味 価 値
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
品質警察だ!
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
品質警察だ!
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
ソースコードに対する 要求、書けてますか?
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
何のために”どこまで” 開発スピードを 高めるの???
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
速さが足りていれば “競合に勝てる”の? 何のために”どこまで” 開発スピードを 高めるの???
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
リリース”してしまった”ら それは見なければならない 面倒の対象が増えたとも 速さが足りていれば “競合に勝てる”の? 何のために”どこまで” 開発スピードを 高めるの???
”質とスピード” • ”品質” • 保守しやすくなれば開発スピードが高まる • • • • 保守性の向上は今そこにいる自分達のため
プログラマの 損得や苦楽の話なの? リリース”してしまった”ら それは見なければならない 面倒の対象が増えたとも 速さが足りていれば “競合に勝てる”の? 何のために”どこまで” 開発スピードを 高めるの???
プログラマの独り善がり
兵法 "質とスピード"
「兵法」
1. 用兵 戦闘の方法 孫子の兵法 2. 出典:小学館デジタル大辞泉 https://kotobank.jp/word/%E5%85%B5%E6%B3%95-129027
「孫子の兵法」
• 竹簡孫子 兵法書 • • 孫武 • 孫臏
• 事の勝敗は運任せ • 勝敗は時の運ではなく人為である • • 兵は拙速 • 勝つ者は算を得ること多きなり •
• 孫氏の兵法の前提を知らないと生兵法で大けがする
兵は拙速を尊ぶ • 兵は拙速を聞くも、未だ巧久なるを賭ざるなり • • なんでもいいから速く始めろ 深刻な誤解 • • •
• 組織 護持 • • 組織を護持する事で民草の安寧を得る 組織を護持し民草の安寧を以下無限ループ • • リソースが必要になる瞬間のために徹底的にリソースの損失
を減らす • 損害を防ぐためにリソースを投入する場合はムダ上等でじゃ ぶじゃぶ突っ込む • 徹底的に損失を減らす 「出費を減らす」ではなく「損失を減らす」
拙速を尊ぶ • • 兵は拙速を聞くも、未だ巧久なるを賭ざるなり。 兵久しくして国を利する者は、未だ有らざるなり。
• 戦いという手段 勝つこと 莫大なリソースを 消費 国のリソースが枯渇 • 勝てたとしても既にリソースなくば 弱体化した国を 見て周辺国が攻めこんで来ても
• 手段に多少拙い点があってもごり押しして 何とかなった事例はあっても、手段をうまくしようとして 長引かせてうまくいった事例はない。 • 長く戦って国に利益があった事などない
拙速を尊ぶ やっぱり さっさと始めたほうが良い
兵は国の大事なり • 事を起こす 事を起こしてしまった以上、 事が収まるまで出費が続く • 拙くてもいいからさっさと 終わらせろ • 手段を巧くやった上に、更にもっと早く終わらせる
方法
既に勝った • 徹底的に準備し、開始と同時に終わらせる • 勝つ者は算を得ること多きなり • 昔の善く戦う者は、先ず勝つ可からざるを為して、 以て敵の勝つ可きを待つ
• 先に仕込め 先に仕込め • • ライブラリの整備とか技法の統一だとか • やるべき最低限の事以外全て整った状態 • 迂直の計
• それでもなおどうにもならない • 必要になってからやる 遅すぎる 必要なので”既に使っている” ”常に達成”
「現代の兵法」
リズムとテンポ
1.強弱 明暗 遅速 周期的な反復 2. 3. 出典:小学館デジタル大辞泉 https://kotobank.jp/word/%E3%82%8A%E3%81 %9A%E3%82%80-3175090
1.楽曲の演奏で、譜面に指定された速度。 2.物事の進みぐあい。「時代のテンポにあわせる」 「急テンポ」 3.[類語]速さ・速度・スピード・ペース・ピッチ・速 力・調子・音調・音律・調性・音階・音程・音 高・トーン・拍子・拍・律動・乗り・リズム・調 べ 出典:小学館デジタル大辞泉 https://kotobank.jp/word/%E3%81%A6%E3%82 %93%E3%81%BD-578916
現代戦 • • 相手の将来の行動に対して先んじて 対処 始まる前から終わらせる • 敵の選択できる意思決定の選択肢を狭める こちらが想定しているものに限定させる ここで自分の意思決定を速めるための思考法として
ちょっと前に流行りかけたOODAループが出てきます。 あれはPDCAの代替ではありません。
ここで 「孫子の兵法」 に戻ります
人に致して人に致されず • 善い戦い 人をこちらの都合で動かし 自らは人の都合に動かされない • 主導権を取れ
人に致されている • • • • • 自発ではなく外乱に引きずり回されての行動 • 人に致されている •
主導権を握りそこなったら最後 ずっと後追い続けるだけ
人を致している • も • • • 自発で行った行動 他社や世間を引きずり回している • 人を致している
• 状況全体をコントロールしやすくなります •
“質とスピード“
人に致して 人に致されないため
人に致して 人に致されない ためには?
相手より早くだす!
相手より早くだす! 不正解の音
“我々”のリズムとテンポで 狙いすましたタイミングで 戦力を投射(リリース)する
タイミング?
「気を見るに敏」
広報や営業、商品戦略に 携わった事のある方なら ご理解頂けると思います
情報公開、リリース、Xへのポスト… どんなものであっても 「“今この瞬間”が最も威力を発揮する」 タイミングがあります
つまり
戦略上最適なタイミングで リリースをし続ける
最適なタイミングで リリースするには?
全員が理解しているリズムと テンポに乗って行動する
リズムとテンポが判っていれば 各々が「いつ、何をすれば良い」を 判断しやすくなるからです
最適なリズムを乱し、 期待するテンポを遅らせる ものは?
質の低いコード
なので、”我々”は 質の低いコードを 許してはならない
ところで全員とは?
営業、広報だけでなく 代表から連なる 組織内の全員
はい、これで”我々”が “プログラマー”から “我が組織”になりましたね
つまり
”質の高いコード”は 組織の攻めの選択肢を 増やすための必須要件です
ところでスピードどこいった?
ぶっちゃけリズムに乗れていて 必要とするテンポを満たせるなら スピードなんてどうでもいいです
それらを充足できているのに、 更にスピードを求めるのは ただの過剰品質です
スピードは必要とする リズムとテンポのために あります
但し、将来のテンポの選択肢を 増やすためにスピードアップの 研究は常に行う必要があります
既に定石化できている スピードアップの手段を用いて ”今”必要なテンポを達成するなどね
結びに
組織を持続させるために 我々は何を成さねば ならないのか
タイミングよく リズムとテンポにのって 人を致す
リズムとテンポを 乱さないためには
質の高いコードが必要
だから”我々”は コードに質を 求めねばならない
None