違うんだよな......と,つらつら2009/02/16こちらの話から。高度な仕事になるほど個人に依存するのは避けられないし、属人性を排除すべきではない。属人性を排除して各人の能力を均一化して扱おうとしたソフトウェア工学は根本的に間違っている。普段から総工数1000人月を軽く超えるようなプロジェクト内で生活しているせいで、麻痺しているのかもしれないけれども、SIerの仕事ってやっぱり理解されていないなあと思うことはある。実際問題、コーディングをしている時間なんて全体の三分の一にも満たないわけで、そこをスーパープログラマーに置き換えて削れる工数なんてたかが知れている。単純な話、量が多いだけ。そんなところにスーパープログラマーを投入するよりは、もうちょっとコアな、真にコンピュータスキルが必要なところに使いたい。いうか、単純労働なんてしたくないでしょ、スーパープログラマー。均質化は属人性の排除のためにあるわけだし。部門から製品開発部門に籍を移したあたしとしては思う。技術らしい技術なんてもんはいらなかったりする。界隈では,たまに色気を出して,「フレームワークを改造してこのプロジェクトに独自の......(以下略)」なんて言う向きもいるけれど(プロジェクトにひとりは必ずいる),所詮はその程度。場合,下手に技術的なバックグラウンドが広くてゴネる人を使うよりは,決められたことを決められた通りに「入力」できる人が「いいプログラマ」だったりする。いうプログラマが,みんな将来マネジメント方面(技術方面には大抵進めない)に進めるならともかく,そこから落伍した人が一生こんな入力作業を続けるのはどうなんだ,といったことについては,あたしも半ば他人事ながら心配していたりします。行ってきた一緒に行った人は,割とハードウェア寄りのプログラムをゴリゴリ書いている人だったので,どちらかというとあまり興味のないご様子。彼曰く「こんなんばっか作ってたらバカになる」だそうで......。バカになるかはともかく,たしかにアプリケーションを作る敷居は,これまでと比べてグンと下がった気はしました。抽象化して,設定項目だけで特定のアプリケーションを作れる(というか生成する)製品もあるもんで,正直,簡単なアプリケーションだったらプログラマーなんていなくても作れちゃいそうな勢いでした。使えるエンジニア」なる人が,市場でどのように評価されるようになるのか,といったところも,これからの話として興味のあるところです。ま,人のこと心配する前に自分の心配しなくちゃいけないんですけどね。事業の工数は大して削減できません。プロジェクトが,コーディングよりも上流の要件定義や外部設計でコケてるから。リスク要因やコスト要因は,プロマネやプロジェクトリーダーにあるわけで,実際この業界で「ちゃんとプロジェクトをまとめられるプロマネ」の需要はものすごいものがあります。その意味でいうと,この分野(SI)のソフトウェア工学的要素は,かなりの程度最適化されているとも言える。この点を取り上げて,プロジェクトにおける2/3のコスト要因を,「その分重大な仕事をしている」とみなすような言い方をするプロマネもいるけれど,これはおかしな話だと思ったりもする。要はてめぇがコケてるだけだろ,と。事業には関わらない方がいいんだと思う。スーパープログラマーを指向する向きは,パッケージ製品やミドルウェア関連の部門を志向するのがいいんじゃないだろうか。この分野では,本当にすごいスーパープログラマーがしのぎを削っているし,属人的な要素がかなり強い分野だったりします。工期は割と甘いものの,新しい研究・企画を引っさげたプロジェクトの場合,成果を出せなければ責任をとる世界でもある。反面,世の中にまったくないソフトウェアを開発できる喜びを味わう機会も,比較的多いはずです。事業が低迷していて,パッケージ製品に回帰する傾向があったりします(身の回りの話で,詳しくは知らないんですが)。絶好調で,パッケージ製品は隅に追いやられていた感もあるけれど,また日の目を見ることもあるはず。職人肌のみなさんには,是非ともお勧めしたい職種。