『時間ではなく、技術を売る技術者(エンジニア)になる』
この目標を考えた当初はただの思いつきだった。
どうすれば目標を達成できるか模索していくなかで、明確な理由が固まってきたのでここにまとめる。
人月商売への疑問
IT業界以外の人には馴染みがないと思うが、IT業界(特にSIer)には古くから「人月見積」という悪しき風習がある。
簡単にいうと
- 1人が1日でできる作業量を1人日
- 1人が1ヶ月でできる作業量を1人月(約20人日)
あるシステムを10人体制で半年かけて完成する規模だとすると、10人 × 6ヶ月 = 60人月となり、見積額は 60人月 × 100万円(単価) = 6,000万円 になります。っといった具合。
この「人月」というのが、IT業界の一般的な見積手法であり、諸悪の根源である。
そして、この「人月」には大きな問題がある。
- 多重下請けも相まって、利益率がクソ悪い
- 「1人が1日で作業できる量」の定義が曖昧
- 成果でなく労働時間が評価される
※ それぞれ何が問題か説明すると長くなりそうなので割愛する。
つまり、人月商売とは時間の切り売りなのだ。
IT業界は労働時間と成果が直結しない仕事
エンジニアが生みだす成果は、時間となんら関係ない。
それを「人月」という"魔法のことば"で密接に関係付けているのが、そもそもの間違い。
たとえばプログラマ視点で考えてみる。
ファイルを読み込み、"ERROR"という文字列が含まれている行数を出力する要件があるとする。
以下の3つの処理は全く同じことをしている。
まず、以下のコードを見て欲しい。
(C#がわからない人はなんとなく感じが伝わればOK)
// プログラマA
StreamReader sr = new StreamReader("C:\\log.txt");
try
{
string line = String.Empty;
int errCount = 0;
while ((line = sr.ReadLine()) != null)
{
if (line.IndexOf("ERROR") > 0)
{
errCount = errCount + 1;
}
}
Console.WriteLine(errCount);
}
finally
{
sr.Dispose();
}
// プログラマB
using (var sr = new StreamReader(@"C:\log.txt"))
{
string line;
int errCount = 0;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("ERROR")) errCount++;
}
Console.WriteLine(errCount);
}
// プログラマC
var errCount = File.ReadLines(@"C:\log.txt").Where(s => s.Contains("ERROR")).Count();
Console.WriteLine(errCount);
要求に対して提供できている機能は全て同じだが、行数が上から18行(223文字)、10行(170文字)、2行(108文字)と異なってくる。
単純に1文字書くスピードが同じだとすると、プログラマCはプログラマAの半分以下の時間で実装したことになる。
しかもプログラマAはちゃっかりバグも組み込んでおり、テストや保守を考えるとそれ以上に差が開く。
単純に時間をかければ良いモノができるというわけではないのだ。
これが、労働時間と成果が直結しない理由だ。
非効率な人ほど評価される矛盾
残念なことに日本のIT業界では、プログラマAのように産廃コードを生み出す人の方が評価される傾向にある。
なぜか?
理由は、人月商売は「働いた時間 = 売上」になるため、プログラマAのほうが売上も大きくなるから。
反対にプログラマCのように「速く、短く、効率的に」やっていると売上があがらない。
勘違いしないでほしい。
エンジニアに求められているのは、いかに短い時間で多くの成果を生み出すかであり、評価対象は労働時間ではなく成果であるべきだ。
お金も時間ではなく、成果に対して支払われるべきだ。
時間ではなく、技術を売るエンジニアになれ!
こんな矛盾だらけの仕事なんてイヤだ!
だから私は、「技術を売る技術者(エンジニア)」になる道を選んだ。
しかし、技術を売るエンジニアへの道は、長く険しく非常に危険である。
IT業界では日進月歩で技術が発展し、昨日売れた技術が今日売れなくなるなんて日常茶飯事のこと。
10年後にはなくなると言われている職業でもある。
だから本当の意味で「技術を売るエンジニア」になるためには、以下の2つが必要不可欠だ。
- 高い技術力
- 学び続ける強い意思
「高い技術力」がなければ、技術は売れぬ。
「学ぶ」ことをやめた技術者は、排斥される。
少しでも多くの人に「技術を売るエンジニア」になってほしいと願っている。
そうすれば、きっとIT業界は豹変するだろう。
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿