「日本人だけの部署」と「外国人が沢山いる部署」でのソフトウェアエンジニアではこんな違いがありました!
今回は、日本人だけの部署と外国人が沢山いる部署でのソフトウェアエンジニアのプログラマーと開発者の違いに関して書いていきたいと思います。
私自身、外国人が沢山いる部署に移って3年ほどたち、複数の客先の会社の外国人部署に常駐することもあり、それぞれの部署の文化の違いを経験してきました。
TOEICの勉強を頑張っているサラリーマンの人たちがこのブログを見ていると思いますが、ゆくゆくは外国人の人たちを一緒に働きたいと思っている人も多いと思います。
ですので、弊社の事例を参考にすることでその傾向をつかんでいただければと思います。
「外国人が沢山いる部署」でのソフトウェアエンジニアは、成果物の完成度よりライフワーク優先!
自分の会社の日本人だけの部署では、開発者さんのいいところとしては「成果物の完成度が非常に高く、仕事が早い」が挙げられます。仕事をお願いしてから、期日があったとしたらそれまでに頑張って終わらせてくれるので夜中まで働いて、とにかく期日を守ろうという人が非常に多かったです。
というのも日本では外注文化がありますので、お仕事を依頼したらまぁなんとかこの期日まで絶対終わらせなければいけないので、夜中まで頑張って働いて勤勉に仕事をしてくれるプログラマーが非常に多いのですが、外国人がいる部署では外人というのは基本的に、9時~17時まで働いて、17時以降は働かないというのが普通です。
海外では外注文化はなく自社開発ですので、自分たちの作ってるコア製品を他の企業さんにお願いして作ってもらうのは技術の流出につながるので、機能変更とかもなかなかお願いしにくいので自社開発というのが普通です。
これは外国人がいる部署でも当てはまります。日本の企業でも外国人が沢山いる部署ではプロダクトオーナーやエグゼクティブも外人なので、外注するかの決定も日本人ではなく外人が行います。
こうなるとで、自分たちの製品でこれぐらいの期日までにこんな機能付け加えようと思っても、それが終わらなかったとしたら、プログラマーの人たちに夜中まで起きて頑張って作ってくれというふうには言わない訳です。
それを言っちゃうと、優秀な外人プログラマーは「働く環境良くない」みたいな事を総務部に通報されてしまいます。
会社としても、そんなにプッシュせずそれよりも働くにあたり良い環境を与えようといった考えで、期日を伸ばしてあげていいものを作るみたいなことが、外国人エグゼクティブの方針です。
外人の悪い所なのかどうかは置いておいて、完成度が低くスピードが遅いというのはだいたい当たっています。
「外国人が沢山いる部署」のソフトウェアはバグ修正事情を解説!【バグ修正は後回し】
日本人だけの部署での良いところで挙げられるのがバグが少ないという事です。これはすごいいいことだと思います。日本人だけの部署ではQAをかなり沢山してくれるのでしっかりテストしてそれで世に出すというスタンスなので、バグが少ないです。
ただ外国人が沢山いる部署ではQAコストをそんなにかけないです。
QAを沢山した後で世に製品を出すとすると、ビジネスとして遅れてしまうケースもありますし、あとはイメージとしては、製品があったとしてそれに10個分ぐらいの機能があったとします。
その10個分の機能をすべて完璧にテストしてから世に出すというより、とりあえず10個ある程度バグがあるかもしれないけど、世に出してお客さん側のほうがその10個の機能のうち3つぐらいしか使わないみたいな傾向は、世に出さないとわからないというのが実際の所です。お客さん3つぐらいしか使わないんだったら、あとでアップグレード対応をすれば良いので、プライオリティとしてはあまり使われない機能はあまりお客さんが使ってないので、そのバグ修正を後回しにしようという考えです。
もしくはその製品からその機能を排除しちゃおう、みたいな考えもビジネスの流れで出てきちゃう訳です。このような事が、外国人が沢山いる部署では頻繁におきますのでテストせずに、世に出してしまうのです。そうすればすれQAコストも減らせる訳です。
ただし、日本人だけの部署では10個分の機能あったらそれを完璧に全部テストするという事をしてから世に出すのでQAコストもやはり高くついてしまいますし、ビジネスとして結構出遅れちゃうというところがある訳です。
これは文化的な違いなので仕方ないのですが、日本人だけの部署ではブランド力とか何か製品に対してバグがあったら、お客さんを失ってしまうみたいな考え方があるので、そういった日本の文化ではやはり完璧に作ってから出すということをしなければいけないかも知れません。
しかし、外国人が沢山いる部署の方では、ソフトウェアバグがないものはないっていうのは考え方が、外国人エグゼクティブもお客さんもわかってますので、お客さんがバグを見つけてそれを報告して修正するという事がよくあります。
そうすればお客さんがバグを見つけてくれますので部署内でQAエンジニアを割り当ててバグを見つけて直せばいいじゃんという風な考え方よりも、人件コストが削減できます。
ですので、外国人が沢山いる部署では非常に効率的ということとスピード重視なので、ITに関しもどんどんどんどん素早くいきますが、日本人だけの部署では製品は完璧にしてから世に出すので、ちょっ出遅れるという事がよくあります。
これは文化の違いなので、仕方ないのかなぁと私自身は思います。
「日本人だけの部署」と「外国人が沢山いる部署」でのソフトウェアエンジニアはどちらのコードがきれいで最適化されているのか?
あとは、日本人だけの部署ではでの日本人ソフトウェアエンジニアのプログラマーの開発者の方コードを見たことがありますが、悪い点について触れたいと思います。
まず一つはコードが汚かったりとかコード量が多く最適化されていないというのが、日本人だけの部署での開発者やプログラマーのちょっと悪いところかと思います。外国人が沢山いる部署で働く外国人ソフトウェアエンジニアの人たちは、コードも非常に綺麗で常に高速で実行される最適なコードを意識し、複製して同じようなコードがないようにコンパクトにまとめるといったメンテナンス性が高いコードを書くいうか外国人のやり方です。
ただ日本人だけの部署ではさっきほと述べた通り外注文化であったりとか期日を守らなければいけないという文化なので、とにかくやっつける感覚で動けばいいや的なモチベーションでプログラムを作成し「とりあえずは動いたからこれでいいでしょ」というふうに頼んでもらった人に提出するという文化があるのでコードが汚くなってしまうのは外注文化では仕方ないところではあります。
ただ外国人が沢山いる部署では、自社開発でゆったりとしており時間があるのコードも綺麗にしますし、後は外人の出入りが激しいので入ってきたら2年ぐらいで辞めちゃうみたいなことも結構あります。
ですので、コードが汚いとですねエンジニアが途中から参加しにくかったり人員の入れ替えが難しくなるので、部署側で強制的にコーディングスタイルを強制したとかして、外人ソフトウェアエンジニアが入れ替わってもいつでも開発が続けられるようなコードにしようとするため、非常にメンテナンス性が優れています。
コードも読みやすいですし、日本人だけの部署にいる日本人ソフトウェアエンジニアの人たちの傾向としては、一人のソフトウェアエンジニアがとりあえず動くものを作ってしまい、何か問題があればそのソフトウェアエンジニアに聞けばいいというスタンスなので、こういった事が原因になって日本人が書いたコードは汚くなったりとかコード量が多くなるという事が起きる訳です。
「外国人部署」と「日本人部署」のソフトウェアエンジニアの年齢に対する考え方の違いがこちらです!
私の会社では日本人だけの部署は35歳定年という考え方がありました。要は35歳ぐらいになったらプログラマーは体力がなくなってくるので管理職とかまとめるような仕事をしましょうみたいな流れは今でも日本人だけの部署ではあるみたいです。
しかし、外国人が沢山いる部署では別に35歳以上でも40歳・50歳でも普通にプログラマーとして働いてる人は当たり前に居ます。
要は外人は別に夜中まできっちりと仕事しなくてもよく、9時~17時で働きますので別に9時~17時で働くなら、35歳以上でも40歳でも50歳でも60歳でも普通にプログラムって書けるわけです。日本のイメージというか働き方が夜中まで働くという考えがデフォルトだと、体力がない人はプログラムが書けないという考えになってしまい、ちょっとおかしいです。
プログラミングに限らず、例えばでノーベル賞を取られる方とかも、あとは医療系の研究者でも良いと思いますが、そういった方々はやはり年齢とか年を重ねていって自分たちの能力とか知識を増やしていき、いいものを作り上げていくというところがあります。
ですので、外人でも40代50代のプログラマーの方は知識が豊富なのでソフトウェア開発においても綺麗なコードをゴールに向かって一直線にかけるような考え方を持っているので、そんなにコードが汚くならないのです。
そういったシニアのプログラマーがチームをリーダーするので製品とした良いものがどんどんできていくのです。ただし、日本人の場合はどんなソフトウェアエンジニアが評価されるかといったら若い人で体力があって夜中までプログラミングがかけてとにかく早く動くものを作れる人という事になってしまいます。そういう人が若手でもリーダーとしてチームを引っ張る体制になってしまいます。
そうしますと、シニア的にはちょっと経験が浅いがとにかく体力があるような人がリードして開発していくのでコードが汚くなったりメンテナンス性にかけてくるという事が起きるのです。
さらにそういったコードを書く若手のプログラマーの方がいるとすると、そうしたらそのプログラミングの評価をする上司もあまりプログラミングのことを分からないので、質の良さとか悪さとかをその上司の人がわかんないわけです。
上司からしてみたらこのエンジニアはめちゃくちゃ頑張っているし、とにかくものを早く作ってるから優秀なハートを持っているので、リーダーとして頑張って欲しいみたくして、チームのリーダーがその若手になっちゃう事が起きてしまいます。
プログラミングは年を取ったらできなくなるという事全然ないです。おそらく日本ではイメージだけで判断してのでしょう。日本では、パソコンが流行った時代なんかも40代50代60歳ぐらいの人がパソコンを使いこなせなかった事がありました。そういった方はやっぱりITについていけなかったということだけであって、40代50代60代の方がプログラミングをできないというふうにはならないです。
パソコンが流行りだした時に、50代の人とかも全然ついていけなかったっていうのはイメージだけが先行してしまった結果です。若い人がずーっとプログラミングをやり続けて40歳・50歳・60歳になったらめちゃくちゃすごいプログラマーになる訳です。
パソコンが流行った時代の50代の人がパソコンできないかったから、プログラミングもできないよねみたいなふわふわしたイメージで35歳定年っていうのが流行っちゃってるのではないでしょうか。
コメント