概要
- シニア開発者には「新しいもの好き」と「複雑さ回避派」の2タイプが存在
- ビジネスには「不確実性削減」と「安定性維持」という2つのループがある
- シニア開発者は複雑さによるリスクを避けるが、他部門はスピード重視
- コミュニケーションのズレはこのループの違いから生じる
- AIの登場で「スピード」と「スケール」のシステム分離が重要に
シニア開発者の2つのタイプ
- チームに入ると、 2種類のシニア開発者 に出会う傾向
- 新しいツールや事例を持ち込むタイプ
- 「このツール面白い」「他社はこうしてる」「HackerNewsで見たベストプラクティス」
- 業界経験豊富、コミュニケーション力はあるが、自分とは合わない人も
- 最小限主義・回避型タイプ
- 「本当に必要?」「やらなかったら?」「今は我慢できる?」
- 複雑さを極力避け、既存のものを再利用・減らすことを重視
- 新しいツールや事例を持ち込むタイプ
複雑さを恐れる理由
- シニア開発者が最も恐れるのは 複雑さ(Complexity)
- 特殊ケース、if文、DBテーブル追加、新コンポーネントなどを極力減らす
- システムへの追加は、 複雑さ増大=リスク増大 を意味
- 責任を持つ立場になると、誰もが複雑さの怖さを理解するようになる
ビジネスの2つのループ
- 企業活動は 2つのループ で説明可能
- 第1ループ:不確実性削減
- マーケター、営業、プロダクトマネージャー、CEOなどが所属
- 目的は市場での学習とフィードバック獲得
- 最大の敵は 不確実性(Uncertainty)
- スピードが最優先、どんどん試して市場から学ぶ
- 第2ループ:安定性維持
- 顧客がつき始めた後のフェーズ
- サービスの継続・保証・安定運用が主目的
- シニア開発者はここで活躍、 複雑さ=安定性低下 を警戒
- 第1ループ:不確実性削減
コミュニケーションのズレ
- 2つのループが同時進行し、 問題意識の違い がコミュニケーションの障壁に
- ビジネス側は「不確実性削減=スピード重視」
- シニア開発者は「複雑さ回避=安定性重視」
- シニア開発者が複雑さの話ばかりすると、他部門には響かない
シニア開発者のコミュニケーション改善策
- 他部門の「不確実性削減」に寄り添う表現が重要
- 「もっと早く試せる方法は?」 と提案
- 「quicker」でスピードを意識
- 「something」で代替案を示唆
- 「try」で完璧でなくてもOKという柔軟性
- 「もっと早く試せる方法は?」 と提案
- 最小限で試し、既存のものを再利用する姿勢
- 例:Google Formsでアンケート、既存UIにボタン追加、1つの指標だけで分析
- 「ケーキが欲しい?サンドイッチにローソクを立てればOK」
AIによる影響と新たな課題
- AIの登場で「複雑さ回避」の意義が問われる
- AIは高速に多くを構築できるが、「責任」を持たない
- システムの可読性・保守性・拡張性・安定性が損なわれやすい
- スピード重視の結果、安定性が大きく犠牲に
「スピード」と「スケール」のシステム分離
- 解決策として システムの分離(デカップリング) を提案
- Speed版システム
- AIやジュニア開発者、他部門が自由に実験・市場検証
- 可読性や安定性は二の次、とにかく早く試す
- Scale版システム
- シニア開発者主導で安定性・可読性・拡張性を重視
- Speed版でうまくいったものだけを選抜し、堅牢に実装
- Speed版システム
- フィクション作家の「初稿」と「編集」作業の関係に近い
- 「3日でSpeed版、6週間でScale版」など、 両者のニーズを満たす提案 が可能
まとめ
- シニア開発者は「複雑さ管理」だけでなく「不確実性削減」への貢献を意識
- AI時代は「スピード」と「スケール」を分離し、両者のバランスを取る設計が重要
- シニア開発者=編集者的視点の価値がより高まる時代