最近話題の エンジニアよ、ゼネラリストなんて目指すな!―VASILY 金山裕樹のキャリア論(http://japan.internet.com/busnews/20121130/3.html)を見て・・・
コードを書くことが目的化しちゃってる人も多いので全否定するつもりはないけど、コードが汚くても「アイツがいれば勝てる」と思わせる人間を素人判断で雇うことが如何に危険かプログラマ視点でまとめてみる。
以下何度も見てきた典型的な失敗パターン、設計と実装が完全に分業化されてる分野は知らないけどWeb業界などそうでない所のお話。
非エンジニアを騙して手抜きするのは簡単。余程のヘタレでない限り手抜きをしても絶対にばれない。コードにコメントがなくてもモジュール化されてなくてもコピペ満載でもマジックナンバーだらけでも動いてさえいればユーザーは気にしない。
手抜きすると開発スピードが上がるので当然評価は上がる。
また他人の(その場の)期待に答えているプログラマは自分が優秀だと勘違いして自信のある態度を取るようになり、さらに人から信用されるようになる。
「あいつは柔軟性がある」と高評価されることもしばしば。
評価が上がれば仕事に対する自由度が上がる。自分のやりたくない仕事、例えば自分の手抜きコードを他人にメンテさせることができる。周りも「こいつは優秀だから一番大事な設計と初期実装をさせるのは合理的」と考える
手抜きコードのメンテはプログラマにとって最悪の仕事。綺麗なコードで数十分でできる仕事が2週間かかることもしばしば。最悪の仕事をさせられ、「仕事が遅い」と評価され、モチベーションが下がって更に仕事が遅くなる。
メンテしてるプログラマの生産性が下がれば相対的に手抜きプログラマの評価が上がる
IT業界ではエンジニアの平均は数年(http://www.it-career-path.com/article/194959562.html)。5年前後で高い評価と成果(「メインプログラマとしてこれを作りました)を武器に他社へ転職する。
この時点で初めてトラブルが表面化する。後に残るのは手抜きコードとモチベーションの下がったプログラマだけ、このプログラマも直に転職する。
「前提として美しいコードが書けて、更に美しいコードを書くべきタイミングと妥協すべきタイミングを適切に判断できる人」が求めれてる人材なんだろうけど、ある程度のプログラミングスキルがないとそういう優秀な人と手抜きプログラマを区別する手段がないんだな。優秀な詐欺師は自分の嘘を自分で信じてしまうらしいけど、手抜きプログラマはそれをナチュラルにやるのでコロリと騙されてしまう。
要は技術力が日本以下のところにビジネス上は負けてるということですよね?