ドミノ倒し

昨日ふと思ったことをちょっと補強していこうと思う。

プログラムを組むことはドミノ倒しに似ているのかもしれない。
傍で見るには単純。やるは一苦労。少しのミスでうまくいかない。
変更も難しい。

実作業

プログラムを組むのも、ドミノを立てるのも、
どちらも使うのは手先のみで、刹那的には単純作業。
しかも、継続的に集中力が必要。
集中力が切れれば、ミスが増え、効率が落ちる。

効率化

効率よく思い通りの結果を出すには、先を見越して、
動かした後を予想しながら組み上げないといけない。
部分ごとにテストしながら組み上げる事は効率化に繋がる。
部品に分割して組み上げる事も効率化に繋がる。

結果

必要とされているのは、組み上げられた結果ではなく、
プログラムなら処理した結果、
ドミノなら倒れた結果またはその過程。
プログラム自体、立ったドミノ自体は求められていない。

他者視点

しかし、傍で見るには簡単そうな作業。
変更も簡単に出来るように見える。
誰でも同じペースで出来るように見える。
人を増やせば簡単に終わるように見える。
時間さえかければそれで済むように見える。

例えば、非プログラマが良く言い、かつプログラマが嫌う言葉
「一旦これで作っておいて」
これをドミノと照らし合わせてみる。


一旦とはいえ、作る人は全身全霊を籠めて作成する。
何時間・何日間かかけて。


そしてそのあとで、「やっぱりこう」と変更が入る。
つまり、その変更に合わせて、これまで組み上げた分を崩す。
これまで組み上げた部分は全て無駄になる。
費やした時間も労力も全て無駄になる。


変更が何度も繰り返される場合が多々ある。
組み上げては崩され、組み上げては崩される。


まるで賽の河原のように。


これを嫌がらない人が居るだろうか?
これで疲弊しない人が居るだろうか?
平気で変更を入れてくる人は、この辺を慮って欲しいものである。


まとめ

当然根本は違うモノなので、違う点もある。
しかし、プログラムを組む事を理解しない人間に、
プログラマの苦労を実感させるには、
比較的分かり易い例になるのではないだろうか。