仕事・働き方

ニュージーランドのプログラマが毎日定時で帰れる本当の理由

僕がニュージーランド(以下、NZ)でプログラマになることを目指した大きな理由は「とにかく残業したくなかった」からだ。

日本を離れた2014年当時はワークライフバランスをめぐる機運も今ほど高くはなかった。また、5年半のシステムエンジニア生活の間、多くのプログラマが失敗プロジェクトに巻き込まれ長時間労働を余儀なくされ、業界を離れていくのを数多く目にしてきた。という事情があり、

「日本でプログラマになっても残業地獄に放り込まれる可能性が高い。ならば、残業しないのが当たり前の社会に行けば、毎日定時で帰れるだろう」と考えたのだ。

その狙いは見事に当たった。今ではプログラマとして楽しく働きながら、残業ゼロ生活を実践できている。

しかし最近、ふと考えた。

僕が毎日定時で帰れるのは、NZが残業しないのが当たり前の社会だから、ではない。それは半分正解で半分間違いだ。

NZのプログラマが毎日定時で帰れるのには、もっと根本的な理由がある。

 

理由1: 一定の知識と技術がなければ、NZではプログラマになれない

f:id:imo_jo_chu:20170417133453j:plain

まず、「プログラマ」という職業に求められる要素が、日本とNZでは大きく異なる。

日本では、学問的なバックグラウンドや経験の有無を問わず、誰でもプログラマになれる。文系出身で1行もコード書いたこと無いけどプログラマになりました、という人は珍しくない。また、人材派遣の世界では「簡単な研修を受けただけで経験1年のプログラマとして派遣された」なんて話もある。

言い換えれば、日本のプログラマは「コードを書く人」でしかない。それが品質のいいコードなのか悪いコードなのかは、人によって極端なバラツキがある。優秀な人もいるが、全然使えない人もそれなりにいる。

一方でNZでは、情報系の学部を卒業していなければプログラマになるのは難しい。また卒業しているだけでは不十分で、企業でのインターンを中心に、ある程度の経験を積む必要がある。採用の過程では、NZ国内の学生だけでなく、世界中からやってくる移民たちとの競争にも勝ち抜かねばならない。

つまり、NZでプログラマになれるのは一定の知識と技術をもった人だけなのだ。まともなコードが書けない人間は選考過程でふるい落とされるか、万一採用されたとしても試用期間中にクビになる。

残業地獄のプロジェクトでは何が起きているのか?

f:id:imo_jo_chu:20170417133113j:plain

ここで一旦、僕が日本で働いていた職場に話を移そう。そのプロジェクトでは毎月数十時間、多いときには100時間の残業が常態化していた。なぜ長時間の残業が発生してしまったのか、多少専門的な話になるが、その理由をあげてみる。

まず、自動テストが存在しなかった。販売・会計管理という数字をシビアに扱うシステムだったにも関わらず、すべてのテストが手動で行われていた。当然ながらテスト工程そのものに時間がかかるし、ある箇所を変更した場合の影響範囲が読みきれず、致命的なバグを作り込むことがよくあった。

次に、コードの可読性が最悪だった。数千行を超えるおばけクラスが大量に存在する、モジュール名が「AAAA1234」など管理番号になっていて何をするものなのかわからない、あらゆる変更履歴がコメントアウトで残されている、などなど、やってはいけないことのオンパレード。既存のロジックを読み解くだけで無駄な労力が必要だった。

そして、リリース作業に異常な手間がかかっていた。ソースはいちおう Subversion でバージョン管理されていたものの、リリース対象でないものまで main ブランチに放り込まれているため、リリースごとに対象のファイルをピックアップするという謎作業を行っていたのだ。

書いていてだんだん頭が痛くなってきたが、まとめると、時間をかけずに品質を確保する努力を放棄し、時間をかけてミスをしやすい仕事をしていたのだ。これでは残業が減らなくて当たり前である。

知識と技術のある開発者が揃わなければ残業ゼロの職場は作れない

f:id:imo_jo_chu:20161014232706j:plain
以上の話を聞いて、まともな開発者であれば「ありえない」と感じるだろう。テストを書こうとか、リファクタリングしましょうとか、リリース手順を見直しましょうとか、考えるのが当たり前だ。

そう、まともな開発者であれば。

残業ゼロの職場を作るには、まともな開発者が揃わなければダメなのだ。ひとりだけ優秀な人がいてもしょうがない。マネージャーからメンバーにいたるまで、知識と技術をもった人間でなければ務まらない。

マネージャーが技術にうとければコード品質の話を理解できないし、メンバーが技術不足だと、せっかく確保されている品質を次々と破壊するおそれがあるからだ。

開発者の知識も技術もバラバラな日本では、よほど人を選んだ採用活動を行わなければ、全員の意識をひとつにして残業ゼロの職場を作るのは難しい。

しかし、全員の技術レベルがある程度担保されているNZでは、みな効率的な開発手法がどういうものかわかっているし、その重要性も理解しているから、自然と残業を減らす方向に向かうのだ。

理由2: NZのプログラマは残業する必要がない

f:id:imo_jo_chu:20151115151412j:plain
もうひとつ見逃してはいけないのが、労働者自身の自発的な残業だ。

あるエンジニア情報サイトが実施した「残業に関するアンケート」では、「残業する主な要因」として最も多かった回答は「残業費をもらって生活費を増やしたいから」で、「非常に当てはまる」「やや当てはまる」の合計が34.6%だった。*1

2012年の調査結果だが、日本の「SE・プログラマ」の年収の中央値は、20代で350万円、30代で450万円というデータがある。*2 決して多い金額ではなく、残業代稼ぎをしたくなる気持ちもわかる。

NZに目を移すと、プログラマが残業代稼ぎをする必要などまずない。なぜなら、そんなことしなくても十分な給料をもらっているからだ。

2017年1月時点の調査によると、NZ国内におけるITエンジニアの年収の中央値は80,000ドルである。*3

この金額は、為替レートで換算すればおよそ640万円となるが、現地の生活実感からすれば、日本での年収800万円と同等と考えてまず間違いない。平均値ではなく中央値であることに注目してほしい。一部の高所得者が数値を押し上げているのではなく、まともなプログラマならこれくらいもらえるのだ。

日本とNZでなぜプログラマの給料がこうも違ってしまうのか。やはり、プログラマが誰でもなれる職業かそうでないかが強く関係していると思う。

NZでも、ファストフードの店員や工場労働など、誰でもできるような仕事は最低賃金に近い給料になってしまう。しかし前述したように、NZのプログラマは一定の知識と技術をもつ人しか就けない、一種の高度専門職だ。適した人材は少なく、その割に人手不足なので、給料は自然と高くなる。

日本のプログラマも、優秀な人達は高い給料を得ているはずだが、それ以外の技術の低いプログラマが薄給で働いているため、中央値を押し下げているのではないかと感じる。

まとめ ー 技術を磨けば定時で帰れる! ー

NZのプログラマが毎日定時で帰れるのは、必要な知識と技術を身に着けており、かつ企業がそのスキルにじゅうぶんな給与を払っているからだ。NZの社会や文化に関係なく、残業せずに仕事が終わるのには、それなりの裏付けがあった。

これは、とても希望の持てる結論だと思う。

日本に住んでいても、技術さえあれば毎日定時帰りの生活を手に入れることができるのだ。

残業がなかなか減らないのは、あなた自身の技術力が不足しているか、もしくは、技術に見合った職場で働いていない可能性が高い。

プログラマとして働くならば、とにかくまともにコードが書けるようになろう。そして技術を正しく評価してくれる会社で働こう。

日本の労働環境はいまだにクソな部分が多いが、自分ひとりの労働環境なら行動ひとつで変えられるのだから。


ABOUT ME
はっしー
ニュージーランドで働くプログラマ。 日本のIT企業で月100時間超えの残業を経験して過労死しかけたことをきっかけに国外脱出、毎日定時帰りの生活と年収アップを実現させる。脱社畜、英語、海外移住などをテーマに情報発信中。Twitterフォロワーは1万人を超える。ニュージーランド永住権ホルダー。

POSTED COMMENT

  1. seaosho より:

    はじめまして。言われてみれば自然なことなのですが、日本人の気質というか性質というのか… 残業をしてこそ頑張りだ、働きだ!などという歪んだ感覚が、そうさせているのかな、なんて思ったりしました。ビジネスの他にも、これはあてはまりますよね。素敵な記事、ありがとうございます♪

  2. khmatsunaga より:

    まさにおっしゃる通りです。
    ポインタが理解できないのにCのプログラムを書かされている人とかいました。
    あと、処理の流れがひと目で分かるように、関数化を禁止され、結果としてmainが1万行を超えるプログラムが当たり前のプロジェクトとかありました。
    日本のIT業界は、滅茶苦茶ですね。

  3. khmatsunaga より:

    > 日本に住んでいても、技術さえあれば毎日定時帰りの生活を手に入れることができるのだ。
    日本では逆です。
    http://www.mars.dti.ne.jp/~hirok/xp/col/031.html

  4. boncap より:

    なるほど~。日本はIT土方って言葉もあるくらいですもんね。雇う側に知識がなさ過ぎて
    スキルのある人なのかどうか判断できてないし。

  5. aaron2017 より:

    ありがとうございます!
    english to spanish translation

  6. bacon_epix より:

    ものすごく同意しました。
    私の会社でやってるソフトウェアも、パッケージと言っていますが、単体テストが一つも存在しないです。品質向上のための意見を求められ、CIツールの導入したら品質を良くなるんじゃないかと提言したら、ぽっと出の新人のくせに〜となどとなじられ、理想論者のレッテルを貼られそれ以来何もいう気をなくしてしまいました・・・
    モヤさんのブログなどに感化され留学を去年から考えていていましたが、つい先月IELTSでOA6.5をマークしました!いつかモヤさんのようにNZやカナダのように、プログラマが胸を張って仕事をできるような国で働きたいです。
    これからもブログ楽しみにしてます!

  7. imo_jo_chu より:

    >id:seaosho
    仕事以外においても、いかに自動化させて楽するかを考えないと生産性は上がりませんよね。日本の大きな課題だと感じます。
    >id:khmatsunaga
    処理の流れがわかるように関数化禁止ってのはヒドイですね。適切にグルーピングして関数名つけたほうがよっぽどわかりやすいように思えますが……。
    リンクの内容ですが、潰れるほど仕事が集中する優秀な人は転職すれば給料倍に増えると思います。転職がいまだに忌避されるのも日本のおかしなところですね。

  8. imo_jo_chu より:

    >id:aaron2017
    どうも!
    >id:bacon_epix
    せっかく提言したのにその言い方はあり得ませんね……。現実はともかく、まずは理想を考えないと改善もできませんよね。
    IELTS6.5おめでとうございます!IELTSのスコアは人生を変える切符になるのでぜひ活かしてください!

  9. Fab5 より:

    この記事には心から同感します。その通り!って膝を打ちました。こないだシンガポールに行ったときに話をした若い女性がこの木何の木系の会社でシステムエンジニアとして最近仕事を始めた、と。で、専攻を聞くと超文系。これにはぶっ飛びました。私も海外で仕事してるのですが、うちの会社のシステムエンジニアはたいていコンピューターサイエンスの修士号くらいは持ってます。そしてお給料の面でも同感。エンジニアは引く手あまたなので、初任給でも日本円で1000万誓いオファーがあります。たしかに使えないとクビになりますけど、きちんとみんな勉強してインターンとかもしてから働きに来るので、入社したその日から即戦力です。日本を離れて暫く経つのでちょっと浦島太郎っぽくなっているのでニュージーランドと日本の労働環境の比較がわかっておもしろい記事でした。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です