ドミノ倒し
昨日ふと思ったことをちょっと補強していこうと思う。
プログラムを組むことはドミノ倒しに似ているのかもしれない。
傍で見るには単純。やるは一苦労。少しのミスでうまくいかない。
変更も難しい。
実作業
プログラムを組むのも、ドミノを立てるのも、
どちらも使うのは手先のみで、刹那的には単純作業。
しかも、継続的に集中力が必要。
集中力が切れれば、ミスが増え、効率が落ちる。
効率化
効率よく思い通りの結果を出すには、先を見越して、
動かした後を予想しながら組み上げないといけない。
部分ごとにテストしながら組み上げる事は効率化に繋がる。
部品に分割して組み上げる事も効率化に繋がる。
結果
必要とされているのは、組み上げられた結果ではなく、
プログラムなら処理した結果、
ドミノなら倒れた結果またはその過程。
プログラム自体、立ったドミノ自体は求められていない。
他者視点
しかし、傍で見るには簡単そうな作業。
変更も簡単に出来るように見える。
誰でも同じペースで出来るように見える。
人を増やせば簡単に終わるように見える。
時間さえかければそれで済むように見える。
例
例えば、非プログラマが良く言い、かつプログラマが嫌う言葉
「一旦これで作っておいて」
これをドミノと照らし合わせてみる。
一旦とはいえ、作る人は全身全霊を籠めて作成する。
何時間・何日間かかけて。
そしてそのあとで、「やっぱりこう」と変更が入る。
つまり、その変更に合わせて、これまで組み上げた分を崩す。
これまで組み上げた部分は全て無駄になる。
費やした時間も労力も全て無駄になる。
変更が何度も繰り返される場合が多々ある。
組み上げては崩され、組み上げては崩される。
まるで賽の河原のように。
これを嫌がらない人が居るだろうか?
これで疲弊しない人が居るだろうか?
平気で変更を入れてくる人は、この辺を慮って欲しいものである。
まとめ
当然根本は違うモノなので、違う点もある。
しかし、プログラムを組む事を理解しない人間に、
プログラマの苦労を実感させるには、
比較的分かり易い例になるのではないだろうか。