「常識」がひっくり返った日、あるいは僕が「監視者」と呼ばれた日
(ここから本文:約3000文字)
「海外でエンジニア」、いい響きですよね。
僕も、日本にいた時は、漠然とした「憧れ」を持っていました。
自由な雰囲気、フラットな人間関係、最先端の技術、実力主義、そして、もちろん高い給料…!
まあ、実際こっちに来てみたら、キラキラした部分ばかりじゃなく、泥臭いことも死ぬほど多いんですが(WPFのレガシーコードとの戦いは、国境を越えても続く…!)、それでも、日本にいた頃とは比べ物にならないくらい、刺激的な毎日を送っています。
さて、そんな僕が、こっちに来てから約半年。
ようやく現地の生活にも慣れ、C#のコードベースにもキャッチアップし、「よし、いっちょ、日本で培ったスキルを見せてやるか!」と、ちょっと調子に乗り始めていた頃の話です。
当時、僕が所属していたチームは、あるレガシーなデスクトップアプリの保守・運用を担当していました。WPF製です。それはもう、見事なまでにスパゲッティなコードでした。
チームのメンバーは、優秀なんだけど、どこか「保守的」。
日々のタスクは、主に「バグ修正」と「顧客からの問い合わせ対応」に追われていました。
で、僕は思ったわけです。
「これ、めっちゃ非効率じゃない?」
特に、問い合わせ対応。
ユーザーから「ここが動かない」と連絡が来るたびに、担当者がログを掘り起こし、場合によってはユーザーの環境にリモートで入って、状況を確認する…という、非常に「手作業」感の強いプロセスでした。
僕の日本人エンジニアとしての「常識」が、ここで、うずき出します。
「改善(KAIZEN)だ!」と。
「このプロセス、自動化できるじゃん」
「ユーザーがエラーに遭遇した瞬間、自動でクラッシュレポートと関連ログを収集して、サーバーに送るツールを作れば、問い合わせ対応の時間が1/10になるぞ」
「空いた時間で、もっと本質的なリファクタリングとか、新機能開発ができる!」
完璧なロジックだと思いました。
日本の現場なら、「お、いいね!」「さすが!」と、称賛されたかもしれない。
これは「チームのため」「会社のため」「ユーザーのため」になる、「絶対的な善」だと信じていました。
そこで僕は、週末を使って、C#とWPFでサクッと(といっても結構大変でしたが)その「自動ログ収集ツール」のプロトタイプを作りました。
バックグラウンドで動作し、アプリの特定のエラーを検知したら、関連するログや環境変数を自動でパッケージングして、社内の分析サーバーに送信する。
我ながら、良い出来だと思いました。
月曜日の朝。
僕は、ちょっと得意げな気分で、チームの定例ミーティングで、そのツールをデモしました。
「これで、僕らの問い合わせ対応が劇的に楽になります!」
そう言って、ドヤ顔で画面を見せた、その瞬間。
ミーティングルームの空気が、凍りつきました。
文字通り、「シーン…」という音が聞こえそうなくらい。
あれ?
ウケなかった?
いや、それどころじゃない。
何人かの顔が、明らかに「引きつって」いる。
一番シニアの、ドイツ出身のエンジニア、マークス(仮名)が、ゆっくりと口を開きました。
彼の声は、いつもは温厚なのに、その時ばかりは、氷のように冷たかった。
「…Taro(僕の名前)、君は、これを、誰の許可を得て作ったんだ?」
「え?」
僕は、質問の意味が理解できませんでした。
「え、許可…ですか? 週末に、僕が勝手に作ったプロトタイプですが…」
「違う、そうじゃない」
マークスは、かぶりを振りました。
「君は、**『ユーザーのPCから、自動で、情報を収集する』**ツールを作った。そうだな?」
「は、はい。エラーログですけど…」
「その情報には、何が含まれている?」
「えーっと、スタックトレースと、OSのバージョンと、あと、作業中のファイルパスとか…」
「ファイルパス?」
彼の声が、一段、低くなりました。
「それって、ユーザーがどんな名前のファイルで作業していたか、僕らに『わかってしまう』ということか?」
「あ…」
僕は、そこで、初めて事のヤバさに気づき始めました。
「いや、でも、それはバグ解析のために…!」
「Taro。君は、自分が何をしたか、わかっているのか?」
彼の目は、僕を「改善をしてくれた、イケてる新人」としてではなく、
まるで「重大なルール違反を犯した、危険な監視者」を見るような目でした。
「僕らの『常識』では、ユーザーのPCは、たとえ会社の備品であっても、『聖域(サンクチュアリ)』だ。本人の明確な同意なしに、そこから『ファイルパス』のような機微な情報を、自動で収集するなんてことは…」
彼は、言葉を選びながら、続けました。
「…倫理的に、あり得ない」
「倫理的に、あり得ない」
その言葉が、僕の頭に、深く、深く突き刺さりました。
僕が「効率化」という「正義」のために作ったものが、ここでは「倫理違反」だと、断罪された。
僕の「常識」が、
僕の「良かれ」が、
僕の「エンジニアとしての正義」が、
この国では、このチームでは、「間違っている」と突きつけられた瞬間でした。
「え、でも、Googleとかだって、クラッシュレポート送ってるじゃん!」
「日本じゃ、これが普通なのに!」
喉まで出かかった、その言葉。
でも、僕は、それを飲み込みました。
マークスの本気(マジ)の目を見て、これは「郷に入っては郷に従え」的な、生半可な文化の違いじゃない、もっと根深い「価値観の断絶」なんだと、肌で感じ取ったからです。
さあ、どうでしょう。
あなたは、この話を聞いて、「大袈裟だな」と思いますか?
それとも、「Taro、ヤバいことしたな」と思いますか?
これが、僕が「The Illusion of Universal Ethics(普遍的な倫理という幻想)」に、リアルにぶち当たった最初の日です。
この記事を読んでいるあなたが、将来、僕と同じような「良かれと思ったのに、最悪の結果を招く」という失敗をしないために。
次の「承」のセクションでは、なぜ、僕の「カイゼン」は「悪」とされたのか。
日本と海外(特にヨーロッパ)で、ここまで「エンジニアの常識」が違う背景にある、「データプライバシー」に対する「文化レベル」の意識の違いについて、最近の具体的なテック業界の「炎上事例」なんかも交えながら、深掘りしていきます。
これ、知らないで海外行くと、マジで「クビ」じゃ済まない可能性もありますからね。
なぜ「正しい」は国によって違うのか? データプライバシーと「歴史の重み」
(ここから本文:約3000文字)
あのミーティングの後、僕は(当然ながら)意気消沈して、マークスに謝罪しました。
「すまない、Taro。君を責めたいわけじゃないんだ」と、彼は前置きしつつ、僕に、なぜ彼があそこまで強く反応したのかを、ゆっくりと説明してくれました。
その理由こそが、僕たち日本人エンジニアが、海を渡る前に、絶対に理解しておかなければならない「倫理の壁」の正体でした。
1. 「利便性」 vs 「プライバシー」: 日本の「常識」
まず、前提として、僕の「常識」を整理してみましょう。
日本で僕が受けてきた教育、働いてきた環境では、「効率化は善」でした。
そして、「サービス」とは、時に「おもてなし」であり、「(言われなくても)相手の不便を先回りして解決する」ことでした。
僕の作ったツールは、まさにこれ。
「ユーザーがイライラしながら、わざわざサポートに連絡し、ログを送る」という不便を、先回りして解決する。「良きこと」ですよね?
そして、データプライバシー。
もちろん、日本にも個人情報保護法はあります。
でも、どうでしょう?
僕らは、Tポイントカードを作るために、当たり前のように個人情報を提供し、
LINEで「位置情報をオンにしますか?」と聞かれれば、「まあ、便利だし」と許可し、
ECサイトで「あなたへのおすすめ」が表示されることに、そこまで強い拒否感は持っていません。
(もちろん、人によりますが)
総じて、僕らの社会は、「多少のプライバシーデータ」と「高い利便性(サービス)」を、天秤にかけた時、後者を選ぶことに、比較的、寛容です。
僕の「常識」は、この「土壌」で育ったものでした。
2. 「監視」への異常なアレルギー: ヨーロッパ(特にドイツ)の「常識」
さて、一方で、僕が今いるヨーロッパ、特にマークスの出身地であるドイツの「常識」は、どうでしょう。
彼らにとって、「データプライバシー」は、「まあ、あったらいいよね」というレベルの権利ではありません。
それは、**「何があっても守らなければならない、人としての基本的な権利」**であり、ほぼ「信仰」に近いレベルの、絶対に譲れない一線です。
なぜか?
「Taro、歴史を学んだことがあるか?」と、マークスは言いました。
「僕の親の世代、あるいは祖父母の世代が、どんな社会に生きていたか、知っているか?」
僕は、ハッとしました。
ドイツという国が、20世紀に何を経てきたか。
ナチス・ドイツによる統制、そして戦後は、東ドイツ(DDR)の秘密警察「シュタージ(Stasi)」による、徹底的な「国民の相互監視」社会。
「シュタージ」は、国民のあらゆる情報を収集しました。
誰が、誰と、いつ会い、何を話したか。
どんな本を読み、どんな手紙を書いたか。
密告が奨励され、家族や友人でさえ、信じられない。
「『効率化のため』『国家の安全のため』という名目で、集められたデータが、どれだけ多くの人の人生を破壊したか、想像できるか?」
マークスの言葉は、重かった。
彼らにとって、**「本人の明確な許可なく、個人の情報を収集する」**という行為は、たとえそれが「ファイルパス」という些細な情報であっても、
「バグ修正」という(一見、無害な)目的であっても、
あの悪夢の「シュタージ」の行いと、地続きなんです。
彼らのDNAには、「権力(それが会社であれ、国家であれ)による、データの収集」に対する、強烈なアレルギー、恐怖心が、深く、深く、刻み込まれています。
僕が「KAIZEN!」とドヤ顔でデモしたツールは、彼らの目には、
「ユーザーが知らないうちに、勝手にPC内の情報(ファイルパス)を抜き取り、サーバーに送る」
=「シュタージの監視ツール」
と、ほぼイコールに映っていた。
…ヤバくないですか?
僕は、そんなつもり、1ミリもなかった。
でも、彼らにとっては、僕は「倫(みち)を外れたエンジニア」そのものだったわけです。
3. 「常識」が「法律」になった: GDPRという「壁」
この「歴史的な重み」と「プライバシーへの強い意識」が、単なる「文化」や「気分の問題」で終わっていないのが、ヨーロッパの(そして、海外で働くエンジニアにとっての)本質的なヤバさです。
この「常識」は、**「GDPR(General Data Protection Regulation:一般データ保護規則)」**という、世界で最も厳しいと言われる「法律」になっています。
聞いたこと、ありますよね?
数年前に、やたら「Cookieの使用に同意しますか?」というバナーが、Webサイトで出始めた、あれの原因です。
GDPRについて、エンジニアとして(特に僕らみたいなアプリ開発者として)知っておくべき最低限の「ヤバさ」は、こんな感じです。
- 超高額な罰金: 違反したら、企業の「全世界の年間売上高」の*4%*とか、平気で吹っ飛びます。数百万ユーロじゃありません。数百億円、数千億円規模の罰金があり得ます。
- 「明確な同意」が必須: 「(たぶん)いいだろう」は、一切通用しません。「このデータを、この目的で、こう使います。いいですか?」と、ユーザーが自発的にチェックを入れない限り、アウト。
- データ最小化の原則: 「念のため、あれもこれも取っておこう」は、アウト。「その目的を達成するために、絶対に必要な最小限のデータ」以外は、収集してはいけません。
さて、ここで、僕の「自動ログ収集ツール」を、GDPRの物差しで測ってみましょう。
- 明確な同意: 取ってません。自動で送る前提でした。はい、アウト。
- データ最小化: 「バグ解析のため」に、「ファイルパス」は「絶対に必要な最小限」でしょうか? …怪しいですよね。「スタックトレースだけで十分じゃないか?」と言われたら、反論できません。はい、アウト。
僕がやろうとしたことは、
「文化的に」最悪のタブーであると同時に、
「法律的に」会社を倒産させかねない、超ハイリスクな行為
だったわけです。
そりゃ、マークスも、氷のような目で僕を見ますよ。
「この日本人ルーキー、うちの会社を潰す気か?」と。
4. 炎上するビッグテック: これは「対岸の火事」じゃない
「いやいや、それはTaroが大袈裟なだけでしょ」
「ビッグテックは、もっとうまくやってるよ」
そう思いますか?
とんでもない。
最近のグローバルなテック業界の「炎上」や「論争」の、ほぼ全てが、この「倫理観の違い」から生まれています。
- Facebook(現Meta)とケンブリッジ・アナリティカ事件:ユーザーデータを「(本人の明確な同意なく)政治コンサルに横流し」していた。アメリカでは「まあ、やりすぎたね」くらいだったかもしれませんが、ヨーロッパでは「民主主義の根幹を揺るがす、最悪の裏切り」として、GDPR導入の大きなきっかけになりました。
- Amazonの「Alexa」は、いつも聞いている?:「アレクサ」と呼びかけるまで、デバイスは「待機」していると、僕らは信じています。でも、過去に「従業員が、ユーザーの録音データを聞いて、AIの精度を上げていた」ことが発覚し、大問題になりました。利便性(AIの精度向上)とプライバシー(盗み聞き)の、典型的な衝突です。
- データは誰のもの?: アメリカ政府 vs Microsoft (アイルランド事件):アメリカ政府が「犯罪捜査のため」として、Microsoftに対して「アイルランドにあるデータセンターの(アメリカ人じゃない)データ」を提出しろ、と命令しました。Microsoftは「ここはアイルランドだ、アメリカの法律は適用されない」と抵抗。…ほら。僕らが書いたC#のコードが生み出す「データ」が、国境を越えた瞬間、法律と政治の、ど真ん中の問題になるんです。
僕がやった「ファイルパスを自動で送る」という小さな(つもりの)行為は、これら「数千億円規模の炎上」と、根っこは全く同じ。
「エンジニアが、技術的な『効率』や『面白さ』を優先し、その土地の『倫理』や『法律』を軽視した」
ただ、それだけのことなんです。
でも、その「だけ」が、あなたのキャリアを、一瞬で終わらせる威力を持っている。
日本でWPFのデスクトップアプリを開発しているだけなら、ここまで「歴史の重み」や「国際法」を意識する必要は、なかったかもしれません。
でも、海を渡って「グローバルなエンジニア」になるということは、そういう「地雷原」のど真ん中で、コードを書く、ということなんです。
じゃあ、どうすりゃいいんだ?
「倫理」なんて、フワフワしたもののために、技術的な「正しさ」を、我慢しなきゃいけないのか?
あのミーティングで、僕は、どうすべきだったのか?
次の「転」では、この「やらかし」の後、僕がどうやってチームの信頼を(なんとか)回復しようとしたか、
そして、この「倫理の壁」の教訓を、別の形で、もっと痛烈に、ドイツ人マネージャー(そう、マークスです)に叩き込まれることになった、僕の「大失敗」について、お話ししようと思います。
「良かれ」が招いた大失敗。僕は「ヒーロー」のつもりで「犯罪者」になった日
(ここから本文:約3000文字)
「シュタージ事件」から、約半年後。
僕は、すっかりチームの(WPF担当としての)中核メンバーとして、バリバリ働いていました。
そして、ついに、新機能開発のリードを任されることになったんです!
その新機能とは、「クライアント企業(BtoB)向けの、従業員パフォーマンス管理機能」。
僕らが作っているWPSアプリは、とある専門職向けの業務ツールでした。
クライアント企業の管理者が、自分の部下(従業員)たちの「作業状況」を把握し、業務改善に役立てたい、というニーズがあったんです。
具体的には、「どの従業員が、どの機能を、一日に何回使っているか」「一つのタスク処理に、平均どれくらい時間がかかっているか」といったデータを収集・可視化するダッシュボード機能でした。
さあ、どうでしょう。
これを聞いて、日本のSIerや受託開発の現場にいた人なら、「ああ、あるある」って思いませんか?
「サボってるやつを可視化したい」とか、「誰の作業がボトルネックになってるか分析したい」とか、まあ、管理職なら当然の要求ですよね。
僕も、「はいはい、よくある管理機能ね」と、何の疑いもなく、設計を始めました。
ここで、僕の頭に、あの「シュタージ事件」が、**(悪い意味で)**活きてきます。
「(ふふん…前の俺とは違うぜ)」
「ユーザーのPCから、ログを『自動で』送るのはNGだったな」
「よし、今回は、サーバーサイドのAPIアクセスログを集計しよう」
「どのユーザーIDが、いつ、どのアクションAPI(『タスク完了』とか『データ保存』とか)を叩いたか、そのログは(バグ解析用に)元々サーバーにある。それを集計するだけだ」
完璧だ、と思いました。
これなら、ユーザーのPCを「監視」するわけじゃない。
ユーザーが自発的に行った操作の「結果」を、サーバー側で集計するだけ。
GDPR的にも、ユーザーは「業務のために、このアプリを使う」ことに(包括的に)同意しているはずだ。
セーフ! 完全にセーフだ!
僕は、意気揚々とWPFの画面設計(XAML)と、バックエンド(C#)のロジックを組み上げました。
管理者がログインすると、部下の一覧と、彼らの「タスク処理件数」「平均処理時間」なんかが、キレイなグラフで表示されるダッシュボードです。
…そして。
ここで、僕は、**最悪の「良かれ」**を、もう一つ、トッピングしてしまったんです。
そう、日本人の「KAIZEN魂」が、またしても、うずいた。
「(あれ? このデータ、管理者だけが見るの、もったいなくない?)」
「(従業員本人にも、『あなたの生産性』を見せてあげたら、もっと良くない?)」
「(自分の立ち位置がわかれば、みんな、もっと頑張る(Kaizenする)はずだ!)」
僕は、WPFのメインウィンドウの隅に、小さなダッシュボード・ガジェットを追加する実装をねじ込みました。
そこには、こう表示されます。
「あなたの今週のタスク処理数: 25件 (チーム平均: 38件)」
うわあ。
今、文字に起こしただけで、鳥肌が立つ。
当時の僕は、「これぞ、データドリブンな業務改善だ!」と、本気で信じ込んでいました。
日本のゲームやアプリでよくある「全国ランキング」とか「偏差値」みたいなノリで、「競争心」を(良い意味で)刺激する、素晴らしい機能だと。
そして、運命の新機能デモの日。
今度は、シニアエンジニアとしてではなく、「マネージャー」として参加している、マークスの前で。
僕は、自信満々に、そのWPFの画面をスクリーンに映し出しました。
「…そして、これが、今回の『目玉』です。管理者はもちろん、従業員本人も、自分のパフォーマンスをチーム平均と比較・確認できます!」
「これで、各自が自分の生産性を意識し、チーム全体のパフォーマンスが、ボトムアップで改善されます!」
ドヤ顔。
我ながら、完璧なプレゼンだと思いました。
シーン…。
あれ?
また、この空気?
半年前、あのミーティングルームを支配した、あの「絶対零度」の空気が、
今度は、オンラインミーティングの画面越しに、ビンビンに伝わってきました。
デジャヴ?
いや、前回より、もっと、冷たい。
前回は「コイツ、ヤベえな(無知だな)」という『困惑』が半分だった。
今回は、違う。
画面越しのマークスの顔は、困惑を通り越して、静かな『怒り』と、深い『失望』に満ちていました。
デモが終わった後、他のメンバーが(明らかに動揺しながら)当たり障りのない質問を終えると、マークスが、静かにマイクのミュートを解除しました。
「…Taro。ミーティングの後、君だけ、ちょっと俺との1on1(ワンオンワン)のルームに入ってくれ」
その声のトーンで、僕は、自分が「半年前より、もっと、根本的に、ヤバいこと」をやらかしたのだと、悟りました。
(1on1のミーティングルーム。二人きり)
「Taro」
マークスの声は、静かでしたが、怒鳴られるより100倍怖かった。
「君は、この半年間、何を学んだんだ?」
「え…」
僕は、まだ、事態が飲み込めていませんでした。
「ま、マークス? もしかして、GDPR的に、何かマズいことが…? でも、今回はサーバーログで、PCは監視してませんし…!」
「論点が違う!!」
その時、初めて、マークスが声を荒らげました。
「君は、まだ、わかっていないのか?
僕らが、あの『シュタージ事件』で話していたのは、技術的な『方法』論(PCを監視するか、サーバーログか)だけじゃない。
僕らが守ろうとしている『倫理(Ethics)』とは、そういうことじゃないんだ!」
「君は、『法律(GDPR)違反じゃないからOK』という、最低ラインでしか、物事を考えていないのか?」
彼は、僕が実装した「最悪の機能」を、一つずつ、糾弾し始めました。
1. 「監視(Surveillance)」の本質を、理解していない。
「『従業員のパフォーマンスを管理する』。Taro、君が作ったそれは、結局、何だ?
それは『デジタル時代の監視(Surveillance)』そのものだ。
『シュタージ』がやろうとしたことと、本質は同じだ。
『効率化のため』『会社のため』という大義名分で、個人の行動を、会社が、管理者が、常に『見張る』ということだ。
それを、僕らエンジニアが、率先して作ってどうするんだ!
ドイツ(ヨーロッパ)の文化において、労働者が『監視』されることへの嫌悪感と抵抗を、君は、まだ、何も理解していない」
2. 「比較(Comparison)」という、最悪の圧力。
「そして、何だ、あの『チーム平均との比較』というのは!!」
「君は、自分がどれだけ『非人道的(inhumane)』なものを作ったか、わかっているのか?」
「ここで(ドイツで)働く人間にとって、『個人のパフォーマンスを、他人の平均と比べ、ランク付けする』というのは、労働者の尊厳を、根本から踏みにじる行為だ!
それは『Kaizen(改善)』じゃない。『心理的虐待(psychological abuse)』だ!
『なぜ、平均より遅いんだ?』『なぜ、あいつより件数が少ないんだ?』…そういう、際限のないプレッシャーを生むだけだ。
僕らは、ロボットじゃない。人間なんだ!」
3. 最も致命的なミス:「労働組合(Works Council)」の完全な無視。
「…そして、Taro。君は、会社を潰す気か」
(また、そのセリフ…!)
「仮に、仮にだ。100歩譲って、会社が、どうしても、その『監視システム』を導入したいと言ったとしよう。
だとしても!
ドイツ(多くのヨーロッパ諸国)では、従業員の行動やパフォーマンスを監視・測定するようなシステムを導入する際は、『必ず』、**『労働組合(Works Council / ドイツ語で “Betriebsrat”)』**の承認を得ることが、法律で義務付けられているんだ!
それを、なんだ?
一介のエンジニア(君)が、『良かれ』と思って、勝手に実装した?
もし、これが、そのままリリースされていたら、どうなる?
労働組合が、即座に会社を訴える。
裁判所命令で、この機能は即時停止。
会社は、組合に対して、巨額の賠償金を支払うことになる。
君がやらかしたのは、そういうことだ。
半年前の『シュタージ事件』が、『うっかり地雷を踏んだ』レベルだとしたら、
今回のは、『わかってて、地雷原のど真ん中で、踊り狂った』ようなもんだぞ!」
…僕は、何も、言い返せませんでした。
僕は、「GDPR」という「法律の条文」さえ守ればいいと、問題を、ものすごく、矮小化して(小さく)見ていました。
前回の失敗を、「(技術的に)ユーザーPCからログを取る方法が悪かった」としか、反SO(はんせい)していなかった。
違った。
彼らが守ろうとしていたのは、「法律」の、その奥にある、もっとデカいもの。
それは、歴史の教訓から生まれた、**「個人の尊厳」であり、「労働者としての人権」であり、「監視されない自由」**でした。
僕の「Kaizen(効率化)」という「正義」は、またしても、
彼らの「Dignity(尊厳)」という「正義」と、
今度は、正面から、激しく、衝突した。
僕は、チームの生産性を上げる「ヒーロー」のつもりだった。
でも、彼らの文化、彼らの倫理観から見れば、僕は、
「労働者の尊厳を踏みにじり、違法な監視ツールを独断で実装し、会社を訴訟リスクに晒した、最悪の『犯罪者(に等しいエンジニア)』」
だったわけです。
「技術的に可能か?」
「法律的にセーフか?」
そんな問いは、スタートラインでしかなかった。
本当に問うべきだったのは、
「この機能は、ここで働く『人間』の尊厳を、守っているか?」
という、もっと、根本的な問いでした。
僕は、それに、答えられなかった。
さて。
二度も、デカい地雷を踏み抜き、
マークス(と会社)からの信頼を、完全に(また)失った、僕。
もう、海外エンジニアとして、詰んだのか?
C#とかWPFとか言ってる場合じゃないのか?
いや、まだ、だ。
ここからが、本当の「サバイバル」であり、「学習」でした。
最終回となる「結」では、
この「二度目の大失敗」という、どん底から、
僕がどうやって、「倫理のOS」という、フワフワしていて、でも、メチャクチャ大事なものを、自分の中にインストールし直していったか。
そして、今、海外でエンジニアとして生き残るために、あなたが日本にいるうちから準備できる、「具体的な思考法」について、お話ししようと思います。
「倫理のOS」をアップデートし続けろ。海外で「信頼される」エンジニアになるために
(ここから本文:約3000文字)
あの、マークスとの地獄の1on1の後。
僕は、まず、何をしたか。
WPFのコードを書くのを、一旦、止めました。
いや、物理的には書いてましたけど、頭の中のプライオリティを変えたんです。
C#の新しい構文を覚えるより、MVVMの美しい実装を考えるより、先にやることがある、と。
それは、**「自分が『何も知らない』ということを、心の底から認める」**ことでした。
僕は、それまで、「技術は世界共通。俺のC#とWPFのスキルは、ここで通用する」と、どこかで驕っていました。
そして、前回の「シュタージ事件」の後も、「はいはい、GDPRね。法律ね。守ればいいんでしょ」と、問題を「知識」としてしか、処理していなかった。
違う。
これは、「知識」の問題じゃない。
「OS」の問題だ、と。
僕が日本で培ってきた「常識」や「正義」(=KAIZEN!効率化!競争!)。
これは、僕の「OS」の、根幹(カーネル)レベルに組み込まれている。
そして、その「OS」は、ここ(ドイツ/ヨーロッパ)の「ハードウェア(文化・歴史・法律)」とは、根本的に、互換性がないんだ、と。
じゃあ、どうするか?
OSを、入れ替えるしかない。
1. 「提案」を捨て、「質問」を拾った
まず、僕がやったこと。
ミーティングで、一切、「KAIZEN(改善)の提案」をするのを、やめました。
その代わりに、僕は、チームで一番「アホな質問」をするヤツになりました。
「あの、これ、超基本的なことで、馬鹿げてるってわかってるんですけど…」
「『なぜ』、僕らは、この機能で、ユーザーの『氏名』を使っちゃダメなんですか?」
「『なぜ』、ボタンの文言は、『同意する』じゃなくて、『詳細を理解した上で、許可する』じゃないとダメなんですか?」
日本人的には、「そんなことも知らないのか」と恥ずかしい行為かもしれません。
でも、もう、プライドなんか、捨てました。
僕は「無知」なんだ、と。
そして、彼らが「当たり前」すぎて、口にも出さない「倫理の前提(前提OS)」を、一つずつ、言語化してもらう。
それしか、僕が「アップデート」される道は、なかった。
2. 「敵()」の懐に、飛び込んだ
次に、僕がやったこと。
二度目の失敗で、僕が「完全に無視していた」と断罪された、あの存在。
そう、**「労働組合(Works Council / Betriebsrat)」**です。
正直、怖かった。
僕にとっては、会社(と僕のキャリア)を訴えかねない、「敵」みたいなイメージでしたから。
でも、この「OS」が、何を「是」とし、何を「否」とするのか、理解しない限り、僕は、また地雷を踏む。
僕は、プロダクトマネージャーに(マークスじゃなくて、もうワンクッション置いて)、
「あの、僕、Betriebsrat(労働組合)の人と、一度、話がしてみたい」
と、お願いしました。
「僕が、どれだけ無理解だったか、直接謝罪して、彼らが『何を守ろうとしているのか』を、エンジニアとして知りたい」と。
…この行動は、色々な意味で、僕のターニングポイントになりました。
最初は(当然)警戒していた組合の代表も、僕が「日本から来た、何も知らないエンジニア」であり、本気で「こちらのルールを学びたい」という姿勢を(拙い英語で)示すと、彼らの「歴史」と「哲学」を、教えてくれました。
彼らは「敵」じゃなかった。
彼らは、「効率化」の対極にある、「人間性の最後の砦(とりで)」を守ろうとしている、真摯な「パートナー」でした。
彼らと話して初めて、僕は、「転」でマークスに言われた「労働者の尊厳」という言葉の「重み」を、肌で理解したんです。
3. 「告発者」を「メンター」に変えた
そして、マークス。
僕を「犯罪者」とまで(心の中で)呼んだ、彼。
僕は、彼にも、真正面から、ぶつかりました。
「マークス、僕は、二度も、あなた(と会社)を裏切った」
「でも、僕は、ここでエンジニアを続けたい。あなたの下で、学びたい」
「だから、お願いがある」
「僕が、これから、少しでも『ユーザーデータ』や『パフォーマンス』に関わる『アイデア』を思いついた瞬間…」
「コードを1行も書く前に、あなたに5分だけ、壁打ち(相談)させてほしい」
**「Taro’s Ethics Check(タローの倫理チェック)」**と、僕は(自虐的に)それを名付けました。
「このアイデア、シュタージ度、何パーセント?」
「これ、労働組合に、即、訴えられるヤツ?」
マークスは、最初、呆れた顔をしていましたが、やがて、笑い出しました。
「…Taro。君は、本当に、馬鹿なヤツか、賢いヤツか、わからんな」
「いいだろう。その『チェック』、やってやる。ただし、俺のコーヒー代は、君の奢りだ」
僕の「OS」は、こうやって、少しずつ、上書き(アップデート)されていきました。
C#のコードレビューじゃなく、「倫理レビュー」を、僕は、誰よりも多く、受けたんです。
【海外で働くエンジニアを目指す、あなたへ】
さあ、僕の「大失敗」の話は、これで、おしまいです。
長々と、僕の恥を晒してきましたが、最後に、この記事のテーマである「読んだ人が、これを知って、よかったというような得する情報や人生術」を、お伝えします。
技術(C#)は、あなたを「海外の面接会場」まで、連れて行ってくれます。
でも、「倫理(Ethics)」だけが、あなたを「その会社」に、居続けさせてくれます。
僕が学んだ、最大の「人生術」は、これです。
「The Illusion of Universal Ethics(普遍的な倫理という幻想)」
そう、僕らの「常識」や「正義」は、日本国内でしか通用しない、ドメスティックなOSなんです。
そのOSのまま、ヨーロッパのハードウェア(文化・法律)に、アプリ(=あなた)をインストールしようとしても、クラッシュする(=クビになる)のは、当たり前。
じゃあ、どうするか?
「OSの互換性チェック」を、怠らないこと。
あなたが、もし、僕の失敗談を読んで、「ヤバいな」と、少しでも冷や汗をかいたなら、
おめでとうございます。
あなたは、もう、あの日の僕よりも、遥かに、先に進んでいます。
あなたは、地雷原の存在に、気づくことができた。
僕が、あのどん底から学んだこと。
それは、「倫理のOS」を理解し、アップデートし続けたエンジニアは、
ただの「C#コーダー」じゃなくなる、ということ。
あなたは、「リスク(地雷)を回避できる」だけじゃない。
「現地の倫理観(OS)と、グローバルの要求(KAIZENとか)を、両方理解した上で、互換性のある(クラッシュしない)ソリューションを設計・実装できる」
そういう、「グローバル・ブリッジ・エンジニア」になれるんです。
それって、ただWPFのXAMLが書けるエンジニアより、
どれだけ、市場価値が「高い」か、わかりますよね?
海外で働くって、そういうことです。
コードを書くのは、当たり前。
そのコードが、その土地の「人間」の、「尊厳」を、傷つけないか。
僕らは、技術者である前に、その「倫理」の番人じゃなきゃいけない。
…あ、ちなみに。
マークスとは、今ですか?
今じゃ、一番の「戦友」ですよ。
この前も、「あのWPFのレガシーコード、MVVMにリファクタリングするけど、どっちの設計(パターン)が『倫理的』に美しいと思う?」なんて、技術と倫理がごちゃ混ぜになった、アホな議論を、ビール飲みながら、朝までやってました(笑)
あなたの「OS」、アップデートする準備は、できてますか?

コメント