思考法』キャリアに悩める日本人必読!ニュージーランドニュージーランドへの行き方。僕がニュージーランド(以下、NZ)でプログラマになることを目指した大きな理由は「とにかく残業したくなかった」からだ。日本を離れた2014年当時はワークライフバランスをめぐる機運も今ほど高くはなかった。5年半のシステムエンジニア生活の間、多くのプログラマが失敗プロジェクトに巻き込まれ長時間労働を余儀なくされ、業界を離れていくのを数多く目にしてきた。「日本でプログラマになっても残業地獄に放り込まれる可能性が高い。残業しないのが当たり前の社会に行けば、毎日定時で帰れるだろう」と考えたのだ。その狙いは見事に当たった。今ではプログラマとして楽しく働きながら、残業ゼロ生活を実践できている。僕が毎日定時で帰れるのは、NZが残業しないのが当たり前の社会だから、ではない。それは半分正解で半分間違いだ。NZのプログラマが毎日定時で帰れるのには、もっと根本的な理由がある。一定の知識と技術がなければ、NZではプログラマになれないまず、「プログラマ」という職業に求められる要素が、日本とNZでは大きく異なる。日本では、学問的なバックグラウンドや経験の有無を問わず、誰でもプログラマになれる。文系出身で1行もコード書いたこと無いけどプログラマになりました、という人は珍しくない。人材派遣の世界では「簡単な研修を受けただけで経験1年のプログラマとして派遣された」なんて話もある。言い換えれば、日本のプログラマは「コードを書く人」でしかない。それが品質のいいコードなのか悪いコードなのかは、人によって極端なバラツキがある。優秀な人もいるが、全然使えない人もそれなりにいる。NZでは、情報系の学部を卒業していなければプログラマになるのは難しい。卒業しているだけでは不十分で、企業でのインターンを中心に、ある程度の経験を積む必要がある。採用の過程では、NZ国内の学生だけでなく、世界中からやってくる移民たちとの競争にも勝ち抜かねばならない。NZでプログラマになれるのは一定の知識と技術をもった人だけなのだ。まともなコードが書けない人間は選考過程でふるい落とされるか、万一採用されたとしても試用期間中にクビになる。残業地獄のプロジェクトでは何が起きているのか?ここで一旦、僕が日本で働いていた職場に話を移そう。そのプロジェクトでは毎月数十時間、多いときには100時間の残業が常態化していた。長時間の残業が発生してしまったのか、多少専門的な話になるが、その理由をあげてみる。自動テストが存在しなかった。販売・会計管理という数字をシビアに扱うシステムだったにも関わらず、すべてのテストが手動で行われていた。当然ながらテスト工程そのものに時間がかかるし、ある箇所を変更した場合の影響範囲が読みきれず、致命的なバグを作り込むことがよくあった。次に、コードの可読性が最悪だった。数千行を超えるおばけクラスが大量に存在する、モジュール名が「AAAA1234」など管理番号になっていて何をするものなのかわからない、あらゆる変更履歴がコメントアウトで残されている、などなど、やってはいけないことのオンパレード。既存のロジックを読み解くだけで無駄な労力が必要だった。リリース作業に異常な手間がかかっていた。ブランチに放り込まれているため、リリースごとに対象のファイルをピックアップするという謎作業を行っていたのだ。書いていてだんだん頭が痛くなってきたが、まとめると、時間をかけずに品質を確保する努力を放棄し、時間をかけてミスをしやすい仕事をしていたのだ。これでは残業が減らなくて当たり前である。2013-09-12KindleAmazon[書籍版]知識と技術のある開発者が揃わなければ残業ゼロの職場は作れない以上の話を聞いて、まともな開発者であれば「ありえない」と感じるだろう。テストを書こうとか、リファクタリングしましょうとか、リリース手順を見直しましょうとか、考えるのが当たり前だ。まともな開発者であれば。残業ゼロの職場を作るには、まともな開発者が揃わなければダメなのだ。ひとりだけ優秀な人がいてもしょうがない。マネージャーからメンバーにいたるまで、知識と技術をもった人間でなければ務まらない。マネージャーが技術にうとければコード品質の話を理解できないし、メンバーが技術不足だと、せっかく確保されている品質を次々と破壊するおそれがあるからだ。開発者の知識も技術もバラバラな日本では、よほど人を選んだ採用活動を行わなければ、全員の意識をひとつにして残業ゼロの職場を作るのは難しい。全員の技術レベルがある程度担保されているNZでは、みな効率的な開発手法がどういうものかわかっているし、その重要性も理解しているから、自然と残業を減らす方向に向かうのだ。NZのプログラマは残業する必要がないもうひとつ見逃してはいけないのが、労働者自身の自発的な残業だ。あるエンジニア情報サイトが実施した「残業に関するアンケート」では、「残業する主な要因」として最も多かった回答は「残業費をもらって生活費を増やしたいから」で、「非常に当てはまる」「やや当てはまる」の合計が34.6%だった。*12012年の調査結果だが、日本の「SE・プログラマ」の年収の中央値は、20代で350万円、30代で450万円というデータがある。多い金額ではなく、残業代稼ぎをしたくなる気持ちもわかる。NZに目を移すと、プログラマが残業代稼ぎをする必要などまずない。そんなことしなくても十分な給料をもらっているからだ。2017年1月時点の調査によると、NZ国内におけるITエンジニアの年収の中央値は80,000ドルである。*3この金額は、為替レートで換算すればおよそ640万円となるが、現地の生活実感からすれば、日本での年収800万円と同等と考えてまず間違いない。平均値ではなく中央値であることに注目してほしい。一部の高所得者が数値を押し上げているのではなく、まともなプログラマならこれくらいもらえるのだ。日本とNZでなぜプログラマの給料がこうも違ってしまうのか。プログラマが誰でもなれる職業かそうでないかが強く関係していると思う。NZでも、ファストフードの店員や工場労働など、誰でもできるような仕事は最低賃金に近い給料になってしまう。前述したように、NZのプログラマは一定の知識と技術をもつ人しか就けない、一種の高度専門職だ。適した人材は少なく、その割に人手不足なので、給料は自然と高くなる。日本のプログラマも、優秀な人達は高い給料を得ているはずだが、それ以外の技術の低いプログラマが薄給で働いているため、中央値を押し下げているのではないかと感じる。ーNZのプログラマが毎日定時で帰れるのは、必要な知識と技術を身に着けており、かつ企業がそのスキルにじゅうぶんな給与を払っているからだ。NZの社会や文化に関係なく、残業せずに仕事が終わるのには、それなりの裏付けがあった。これは、とても希望の持てる結論だと思う。日本に住んでいても、技術さえあれば毎日定時帰りの生活を手に入れることができるのだ。残業がなかなか減らないのは、あなた自身の技術力が不足しているか、もしくは、技術に見合った職場で働いていない可能性が高い。プログラマとして働くならば、とにかくまともにコードが書けるようになろう。技術を正しく評価してくれる会社で働こう。日本の労働環境はいまだにクソな部分が多いが、自分ひとりの労働環境なら行動ひとつで変えられるのだから。MEはっしーニュージーランドで働くプログラマ。Twitterフォロワーは1万人を超える。ニュージーランド永住権ホルダー。残業をしてこそ頑張りだ、働きだ!などという歪んだ感覚が、そうさせているのかな、なんて思ったりしました。ビジネスの他にも、これはあてはまりますよね。AMまさにおっしゃる通りです。ポインタが理解できないのにCのプログラムを書かされている人とかいました。あと、処理の流れがひと目で分かるように、関数化を禁止され、結果としてmainが1万行を超えるプログラムが当たり前のプロジェクトとかありました。日本のIT業界は、滅茶苦茶ですね。日本に住んでいても、技術さえあれば毎日定時帰りの生活を手に入れることができるのだ。