ソフトウェア開発が難しいという事を伝えるための例え。
南よ! 海の見える方! - ソフトウェアを作るのは、意外と難しいを読んで。
なんか上手な比喩表現ないかなぁと思って考えてみた例え表現。
ソフトウェアを作るということは、
ジェンガを積み上げながら、
ピタゴラスイッチ風に、
ビー玉が上から下にギミック交えて転がっていく、
道を作るということ。
たとえ話の変数が増えたことによって、解釈が増える。
一度ビー玉が通る道を作ってあげれば基本的にはその通りに動く。(疎通試験通過)
ビー玉の大きさを変えたりするとまず動かない。(入口や内部でバッファオーバーフローが発生)
ビー玉が小さいと通るかもしれないが、隙間に落っこちたりする(else else else)
ジェンガの中を通る道を変更するのも凄く大変。(影響範囲の調査)
ピタゴラスイッチ風のギミックは、細部へのこだわりを表す。(ソフトウェアは動けばいいってものじゃないんだ!)
複数チームで開発したジェンガの等を結合する作業って大変。(あー!3段くらいズレてるやん!)
一部だけめちゃくちゃ凝ったギミックが際立つ。(なぜここだけこんなに細かいことしてるの?)
みんながそれぞれ思い思いジェンガを積み上げると収拾がつかない。(おれのおれのおれの。。。)
やっぱり役立つモジュール工法(規格決めて部品を作ってキチンと組み立てる。)
作ったことないんだから正確に見積もれない。
経験がものをいう。ジェンガで作るピタゴラスイッチ職人。
ジェンガをレゴに例えると、定期的にレゴの規格が変わるというバージョンアップがありそう。
さわると熱いので素手で触れないジェンガがある。(ツールでしか操作しちゃダメ)