FizzBuzz問題はPGのための問題か?

経済産業省ITスキル標準なるものを発表してから時間がたつが
すこしずつSE,PGという言葉は消えてきているのだろうかと言えば
今もまだ現役バリバリとしか言いようがない。
もちろん私の見た限りに限らせてもらえば・・・になるが。
  
どちらにしても単に単価の差別化を図りたい業界の戦略程度にしか思えない
SE,PGという言葉を私が肯定することはないだろう。
  
例えばソフトウェアの開発にいろいろな面で共通する部分が多くある建築について考えれば
そこには建築士と大工という、設計する人と実際に家を建てる人という区分が存在する。
そのような建築の世界では、建築士が金槌をもって釘を打ち込めないとしてもまったく問題がないだろう。
それよりも顧客の要求を把握し、大方顧客の要求は素人の発想だから、それをプロの視点で吟味し
建築物の構造を考え、建物の重さが分散しているかを物理計算し、壁や柱の素材などはどうするかなど決定する
といったより専門的な方向に落とし込んでいく作業をするのが建築士の仕事ということになる。
 
ではソフトウェアについてはどうか。
SEという言葉の定義が広すぎてあいまいではあるが
おおまかにやらなきゃいけないことは建築士と変わらないはずだ。
となると、当然顧客の要求を把握し要件定義を行うためのコミュニケーション能力が必要となってくる。
が、あえてここで誤解を恐れずに言わせてもらえば、そんなことどうでもいい、なのである。
 
先ほど言った建築士の作業が、SEにおいて何に当たるのかを考えれば
どのプラットフォームで開発し、ハードウェア構成や、開発言語の選択、ミドルウェアの決定、DB設計
などと色々とあげられるが、どうしても比重が大きく、重要になるのは当然そのシステム自体の設計である。
そしてこのシステム設計こそが、おそらくはSEが担当する作業のなかで一番釘を打つところに近いのではないかと思う。
下手をすればUMLを雛型としてかなりの完成度でソースに出力できるような時代である。
釘を打つのに一番近いところが一番重要だとしたら・・つまり建築士は釘を打てなくてはいけないのだ。
 
当然SEであれば論理的な思考はできなければまずいだろう。
ただそれは必要条件であって、十分条件ではない。
コミュニケーションも然り。あえてどうでもいいと言った理由だ。
 
開発で使用される言語をすこしもわからない人が設計をしてはいけないと思うし
最悪せめて擬似コードでもかけなくて何がSEなのかと私は思う。
そういった知識がないのは地震ですぐに崩れる土台を設計するのと同じなのだ。
 
もちろん大きなプロジェクトになると細かくきっちり役割分担されるだろうし
設計だけで実際に作る場面すらないというのも十分ありえる。
楽器が弾けない天才作曲家もいるだろうから例外もあるだろう。
しかし作る場面がなかったといって、知らなくてもよいではないのだ。
 
ここで、業界が単価の差別化のために生み出したものではなく
建築士と大工の関係でSEとPGという言葉を用いれば
あえて私はFizzBuzz問題はPGではなくて、SEのための試験なのだと思う。
良いPGが良いSEになるかはわからない。SEを希望しないPGもいるだろう。
ただし良いSEは必ず良いPGだと思いたい。
 
ある日突然顧客にFizzBuzz問題を要件として突きつけられたときに
伝書鳩のようにPGに伝えるだけのSEにはなりたくない。
 
まずは良いPGにならなくてはね・・・