日本のソフトウェアエンジニアは不幸か ?

おはようございます。
梅雨に入りましたね。しかしまだそんなに雨は降らないですね。天気が続くのはいいんですがあまり降らないと水不足で困ってしまいますね。

日本でエンジニアにならなくてよかったというblogを読んで同感しつつも色々考えるところがありました。

日本とアメリカの違い

私はアメリカでは働いたことがありませんが、日本との違いを自分なりにまとめてみました。

アメリカ
 ・ 契約書に書いてないことはやらない
 ・ 職種が細かく分かれていて完全分業
 ・ 合理的で仲間意識や情といったものはあまりない
 ・ 個人の人生を大切にしている
 ・ PMは元ソフトウェアエンジニア
日本
 ・ 契約があいまいで責任分解点が不明確
 ・ 一人で複数の職種を兼任することを求める
 ・ 集団で行動する傾向があり、仲間意識を大切にする
 ・ PMは現場の仕事を知らない
 ・ 個人の生活を犠牲にして働いている人が多い

 私が日本で働いた印象はマネージャーがタコでも現場が何とかしてしまうことが多いと感じました。アメリカでは現場のエンジニアが臨機応変に対応できないのでマネージメントやリーダーシップが発達するのだと思います。

 日本人の特性は製造業ではうまく機能したのだと思います。しかしソフトウェア開発やITサービスは業務が複雑です。このような業種では全体をマネージメントする人がいないと現場だけでは対応できないと思います。

 また日本の顧客にも問題があります。アメリカでは仕事を依頼する場合は完全に業者に任せます。業者の方がプロなんですから当たり前ですよね。しかし日本では特に大企業でよくありますが、細かいところまで色々指図をしてきます。そこまでいったら自分でやったほうがいいんじゃないのと思うことがあります。挙句の果てには内部の構造はどうなっているのかということまで聞いてきます。そんなの企業秘密だから教えられるわけがありません。日本人は情報はただだと思っているんでしょうね。

 最近はニートが増えてきていますが、企業で働く人たちはプライベートな時間を犠牲にして働いている人が多いと思います。私も以前はそうでしたが、そんな生活に嫌気が差して今は普通の生活に戻っています。アメリカでもシリコンバレーのベンチャーは週90時間働く人たちもいます。しかし彼らはストックオプションなどの大きなリターンがあるからそこまで働いているのであって、そんな生活も3-4年くらいです。 しかし日本ではサラリーマンがそのような働き方を強制されます。そして何の疑いもなくばかみたいに働きます。彼らは何のためにそこまで働くのでしょうか?私には理解できません。おそらく他の世界を知らないからそれが当たり前だと思っているのかもしれません。それによって利益を得てるのが株主や銀行だってことも知らずに。

 私はかつてプログラマーでしたが、この業界のだめさ加減に愛想をつかしてやめました。そのだめな点とは以下のようなものです。

・ 業務改善をしない
 ソフトウェアのプロジェクトの多くは火を吹いて長時間労働を強いられます。しかし悪かった部分を理解して対策を考えることによってオンスケジュールでプロジェクトを完了させられるようになるはずです。しかしこの業界はそのような努力をしません。永遠にはまってたいんでしょうか?

・ 待遇が悪い
 プログラマーの給料は低い上に長時間労働を強いられます。経営者はプログラマーを仕様書からコードに落とす単純作業と思っているようですが、日本の業種は境界があいまいでプログラマーが仕様を設計していたりします。(そうなるとSEと呼ばれるのかもしれませんが。)また多くの技術を勉強しないといけません。そのような大変な仕事なのにあまりにも待遇が悪いため優秀な人はなりたがりません。私は馬鹿だったのでそうとは知らずこの業界に入りましたが、入って3年でそのことを理解して脱出しました。

・ スキルアップ努力を評価しない
 私がプログラマーなりたてのころはやる気があって当時出てきたばかりのオブジェクト指向C++、ウィンドウシステムなどを勉強して仕事に生かしていました。しかし上はそのようなことは全く評価せず仕事を山のように押し付けてきました。あいつができるからやつにふればいいくらいに思っていたようで切れ目なく開発の仕事がふられました。しかしそれが給料に反映することはありませんでした。挙句の果てには残業が多すぎるから減らせといってくる始末です。

・ 経営者がITを理解していない
 こちらがスキルアップの努力をしても経営者がITを理解していなければ評価もできないでしょう。オブジェクト指向とは何か、セキュリティがなぜ大切かを理解していないとこちらのやっていることもわからないでしょう。そのような人が経営者であることの不幸は体験しないとわからないかもしれません。

・ 儲かるビジネスモデルを経営者が打ち出せない
 ソフトウェアの受託開発は儲かるビジネスではありません。確かに先に収入が確定するのでリスクがないように見えますが、成果物が明確にわからない状態で見積りをしなければいけないため赤になるリスクがとても高いビジネスです。その上日本の顧客はうるさいのでコストがさらにかかる可能性があります。しかしそのようなビジネスをやっている会社がほとんどです。儲からない仕事=長時間で過酷な仕事になります。戦争でもだめ将軍の下の兵隊は悲惨です。

 ただしこれは私の体験からの結論なので他にすばらしい会社があるかもしれません。ただあってもごく少数だと思います。

 私の考えではこれは個々の企業の問題ではなく業界自体がゼネコン体質だからこのようになってしまったのだと思います。ゼネコン体質になると利益は上流で取られてしまいます。そして下流の実際に開発する部分がどんどんやせていっていよいよ優秀なやる気のある人がこなくなるという悪循環になってしまいます。その結果USなどから製品を手っ取り早く持ってきて稼ぐというビジネスに流れるということです。

 ではこれからこの業界はどうなっていくのでしょうか?おそらく日本のIT企業で世界に通用する会社はしばらくは出てこないと思います。本当にITビジネスをやりたいのであればシリコンバレーでやるしかないのでしょうね。ビジネスを行う上で地域のカルチャーは重要です。日本は動きの速いITビジネスをやるには向いていない場所だと思います。シリコンバレーであれば新しいことは評価されます。戦後の日本のベンチャーは全てUSで評価されて発展しました。いまだに変わってないんですね。