プログラムの読めないSEは必要なのか?
私は今までの職場では、いわゆる「プログラムの読めない、書けないSE」というものを見たことが無い。しかし、職場によってはそういうSEも確かにいるそうだ。果たしてそのようなSEが存在する必要があるのだろうか?
ここで、一つたとえ話をしてみる。プロスポーツの世界では、一流の選手が後に監督となることが多い。一流でなくとも、まさか、「リフティングもできないような人がサーカーチームの監督になる」なんてことはないだろう*1。つまり、プログラムの詳細を全く知らない人間が設計を行うということはそれだけ無謀なことだと思えるのだ。コムソートとクイックソートの長所と短所をそれぞれ把握して、ケースバイケースで設計を行えるのだろうか?あるいは、それが詳細に立ち入りすぎだとすれば、オンラインショップのWebサービスにおいて、個人情報と、その個人の商品購入履歴はモジュールを分割して管理すべきなのかどうか判断できるのであろうか?
しかし、別のたとえ話を持ってくると話はがらっと変わってくる。大工と建築士の関係である。まさか、釘の打ち方に熟練していないと、家屋の設計はできない、なんてことはあるまい。両者の仕事の領域は一応くっきりと区分けされている*2。少なくとも、研修などの名目以外で、建築士が現場で作業を手伝うことなどないだろう。
この両者の例における違いはなんなのだろうか?
これから追々分析していくとして、現時点で私見を述べておくと、設計を行うことはプログラミングの基礎的知識は知らなければできないと思う。