ミクロとマクロ

最近のソフトウエア開発は、昔では考えられないくらい少人数、短期間で行なわれる。だから、メンバーひとりひとりが「このシステムはそもそも何をするものなのか」「なぜこのシステムが必要なのか」「このシステムで何が変わるのか」という問題意識を持つ必要がある。開発者全員がこのようなマクロなビジョンを共有していないと開発が進まない。

一方で、人数が少ないからリーダも含めみんながプログラミングやデバッグを行なう。ツールや言語は進歩しているが、目を皿のようにして一行一行地道に追っかける作業は避けることはできない。やはり、全員がこういうミクロな視点で集中的な作業をすることも必要になる。

最も大きな困難は、このふたつの視点を両立させたり行ったり来たり往復したりすることだ。ミクロな視点とマクロな視点では頭の使い方が根本的に違うらしく、意識していないとどちらかに偏ってしまう。例えば「この機能を次のイテレーションに含めるべきか否か」などということを検討するためには、同時に両方の視点から問題を見ることが必要とされるが、これが難しい。わかっていても難しい。両方の視点を均等に保つことは、人間にとってすごく不自然な姿勢じゃないのか?もしこころの中身を可視化できれば、特別の筋力を鍛えてないと、これができないことがわかるような気がする。

そして、戦争を総括するにも同じことが必要になる。「1万人を救うために1000人殺すことは正しいことだ」というマクロな視点と、「ひとりひとりの命がかけがえなく重い」というミクロな視点が両方必要になる。素人はどちらかに片寄って他方を否定する。両方の視点を保つ訓練ができてないからだ。

素人がそうなっちゃうのは仕方ないとして、ソフトウエア技術者はこの問題に関して毎日苦闘しているプロなんだから、ミクロとマクロの視点を両方保って戦争について考えてほしいと思う。世界平和のためでもあるし、技術者として成長するためでもある。