お前も static にしてやろうか
こないだ面白いコラムを見つけた。
システム開発を題材とした小説仕立てになってて、それまで様々な工夫で質の高いプログラムを開発してたチームに自称ベテランの「三浦マネージャー」が入ったことで全てが脆くも崩れ去っていく過程を描いたもの。現在好評連載中っぽい。
この話、というかこのマネージャーの言動はみながわけんじ氏の以下のコラムが元ネタになっていると思われる。
一応説明しておくと、これはオブジェクト指向のことを何もわかってないとおぼしきみながわ氏が超上から目線で「業務システム開発でオブジェクト指向なんて使えない、全部 static にすれば良い。 new とかしてるのを見ると笑ってしまう。」とかよくわからないことを書いたところ案の定コメント欄が炎上し、みながわ氏のそれらのコメントに対する恫喝とも取れる対応がさらに火に油を注ぐ形となって大炎上に至った、という、一部では伝説のコラムとなっているもの。当時リアルタイムでウォッチしてたけど、ここのコメント欄は色んな意味で面白かった。その後記事内容をかなり改変したらしく、今はおとなしい内容になってるけど、最初はまじで釣りかと思うレベルだった。
まぁ元ネタの話はさておき、最初に挙げたページはほんとにリアルでありそうで、面白いんだけれども読んでて辛くなってくる。幸いうちの会社にはここまでひどい人はいないけれど、いるところにはいるんだろうな。しかも結構権力持ってる階層に。自分がこの環境に置かれたらと思うと、ぞっとする。
昔準大手的なところに出稼ぎに行ったときに Excel 方眼紙にコード書かされたり、参考になりそうなサイトを遮断されたり、便利なツールをインストールできなかったり、ただでさえ貧弱なスペックで開発環境あげたらすでに限界なマシンによくわからない暗号化ソフトを強制インストールさせられて止めを刺されたりとか色々理不尽な*1思いをしたけれど、どうやら日本のシステム開発では大きなところになればなるほどどんどん開発効率を下げて開発チームの首を絞める方向に力学が働くみたいだ。そうして出来上がったプログラムの品質なんてものは言わずと知れている。こういうのもプログラマーがブラック職種といわれる原因のひとつなんだろう。
実際に「三浦マネージャー」が推奨するようなコードは無数にあるんだろうな。前出の出稼ぎ先でも java なのに以下のような具合だったのを覚えている。
- とにかくコピペ
- いたるところに定数値のハードコート
- なぜか Object 型の二次元配列*2でパラメーターが渡ってくる
- ロジックが全て static メソッド
- 別チームが作る部分のインターフェースがはっきりしないのでとりあえずロジックにリクエストやセッションを渡す
- メソッド分割が規制されてるのかとも思えるような長大なメソッド
- 値チェックに例外を使う
などなど、細かいことを言い出すときりがない。それでもまがりなりにもレイヤーの概念が(一応)あったりと、だいぶましだったのではないかと思う。ていうか実はうちのコードもあまり人のことは・・・。。
なにげに今プログラマーとしてはある意味結構幸せな環境にいるのかもしれない。なによりも自由だ。「社員同士互いに切磋琢磨していく」という風潮に欠けるのが痛いところだけれど。
今のうちにやれることはやっておこう。そして決して「三浦マネージャー」みたいにならないように。思い上がりは害悪。