火山噴火の溶岩流は、熱く煮えたぎって流れている部分に目を奪われますが、その山の裾野では、溶岩が自然に冷えて固まり、ゴツゴツして地形と癒着した溶岩石の層を作っています。噴火が長く続くと、目立たない山のふもとにさらに次の溶岩流が層を積み、いびつな岩石の地形を生み出します。
短期的な見積もりでエキサイティングな開発を指向すると、時間の経過とともに、この溶岩流のように、作り込んだはずのものが保守されず、ひどく硬直したモジュールが残っていく現象が起きます。この技術的負債から目を背けて新たな技術で保守性の問題をカバーしようとすると、溶岩流がさらに層を積み上げてしまいます。こうなるともう、ほとんど使われなくなった後も、捨てるに捨てられない依存関係のしがらみに居座っていたりします。がんばって解体するにも、当時ほどの熱量はもう誰にもありません。
長期的に見てコードが健全な一生を過ごせるよう、作るという行為で技術を誇示しようとせず、技術の強さとチームのキャパとを天秤にかけて謙虚に選択することが、良いプロダクトにつながると私は思います。多くの技術を使いこなせるかではなく、実際にうれしい結果につなげられるのが、本当に優秀なエンジニアですね。