シンプルの往復
物事はシンプルに始まり、複雑を経て再びシンプルへ統合されたときに、本質的な実力として成立する。
始まりは摩擦を下げるシンプルさ
私にとって入口のシンプルさは「着手できること」を作る。最初の動機は説明が短くて感情に刺さるものが多いから、時間をかけずに手を動かせる。例えばピアノなら最初の簡単な一曲で練習を始め、週に30分でも継続できたから次へ進めた。ここは余計な装備や議論は不要で、シンプルさは有効な起動トルクになる。
中盤は複雑さと向き合う段階
基礎を積むとき、複雑さは避けられない。技術的な細部、失敗の蓄積、ツールチェインの増加によって思考と作業は分岐する。その過程での短期的摩擦を無視すると脆くなる。私の経験では、あるスキルを「使える」レベルにするまでに数ヶ月、毎週5〜10時間の集中が必要で、その間はタスクの文脈切り替えコストが高かった。複雑さを扱う練習は耐性と幅を作るが、短期的には効率低下を招く。
再シンプル化は理想だが、現場の制約が効く
理想は習得を統合して再びシンプルに表現することだ。しかし現実のプロジェクトや人間関係はそれを邪魔する。具体例として、プロダクトのAPIを一度簡潔に作り直すには、チーム内で3人を1週間ほど再教育に割く必要があり、開発リソースとしては約120時間分の実働が翌週以降失われる見込みだった。これには直接的な時間コストとチームの士気低下という関係コストが伴う。理論上は即時リファクタが最善だが、短期的な納期や予算、チームの疲労という制約が強く働く。
私の決断(制約下での選択)
結論として、今すぐ完全な再シンプル化をする代わりに「複雑さを管理する側」を選ぶ。束縛的な制約は明確だ:2週間後のリリース期限と、再教育でチームを一時的に外すことによる納期リスクと信頼損失。理想は統合して単純化することだが、この制約のため私はあえて反対方向を取る。具体策は次の通り。
- 今週はリファクタを最小限にとどめ、リリースを優先して短期的なフローを保つ(時間コストの回避)。
- リリース後に2週間のリファクタウィンドウを確保して、段階的に型を作る(ラップアップのスケジュール化)。
- 再シンプル化のための予算(小規模外部支援)を確保し、関係コストを低減する準備をする(人間関係の負担軽減)。
選択は後ろ向きには見えるが、短期の実行リスクと関係コストを受け入れてスケジュール化することで、最終的な深いシンプルに至る確率を高めると判断した。