なぜ僕らは「ゾーン」を求めるのか? – 海外エンジニアが陥る「どこでも戦場」シンドローム
「海外で働くITエンジニア」
この言葉を聞くと、多くの人はキラキラしたイメージを思い浮かべるかもしれない。
洒落たカフェでMacBookを開き、多国籍なチームと流暢な英語でテックトークを交わし、週末は現地の友人とBBQパーティー。コーディングは日中の数時間でサクッと終わらせて、午後はジムで汗を流す…みたいな。
うん、まあ、そういう側面もゼロじゃない。ゼロじゃないけど、現実はもっと泥臭いし、正直、かなりハードだ。
まず、時差。日本との会議があれば、こっちは早朝だろうが深夜だろうがお構いなし。次に、言語と文化の壁。技術的な議論はなんとかなっても、雑談や微妙なニュアンス、プロジェクトの「空気感」を読むのは至難の業だ。
そして何より、僕らエンジニアの本質的な仕事。そう、コーディングだ。
特に僕らが向き合ってるC#やWPF(あるいはどんな言語であれ)での設計や開発は、尋常じゃないレベルの「深い集中」を要求される。
WPFの難解なビジュアルツリーを頭の中でデバッグしたり、TaskとCancellationTokenを使った複雑な非同期処理のロジックを組んだり、MVVMパターンのどこで責務を分離すべきか設計に悩んだり…。
こういう作業は、「ながら」じゃ絶対にできない。脳のCPUを100%(いや、120%)回して、やっとまともなコードが書ける。
日本にいれば、まだマシだった。オフィスという「戦場」に行き、終業時刻になれば「撤退」する。物理的に会社を出て、満員電車に揺られて家に帰れば、強制的に「オフ」モードに切り替わった(まあ、持ち帰り残業とかあった人もいるかもだけど、一旦それは置いといて)。
でも、海外、特にパンデミック以降、リモートワークやハイブリッドワークが主流になったこの環境で、その「境界線」が致命的なまでに溶け始めたんだ。
俺が海外に来て最初に住んだアパートは、正直、広くないワンルームだった。日本でいう1Kみたいな感じかな。
ドアを開けるとすぐに小さなキッチン、その奥にベッド兼リビング兼ワーキングスペース。そう、文字通り**「寝る場所=仕事する場所=飯食う場所=休む場所」**が、すべて半径3メートル以内に収まってる環境だ。
最初は「最高じゃん!」って思ってた。通勤時間ゼロ。起きて30秒で仕事開始。効率の鬼。
朝、アラームで目を覚ます。手を伸ばせば届くデスクの上でノートPCを開き、まずはメールとSlackをチェック。ベッドの上でコーヒーを飲みながら、昨日のプルリクがマージされてるか確認する。
await Task.Delay(300000); してる間に顔を洗い、CancellationTokenSourceの処理どう書くか考えながらシリアルをかき込む。
日中はデスクにかじりつき、WPFのUIがなぜかリフレッシュされないバグと格闘。気づけば外は真っ暗。疲れたからベッドに倒れ込む。でも、寝る直前に「あ、あのバインディング、Mode=TwoWayにし忘れたかも」とか思い出しちゃって、またPCを開く。
脳が、24時間「オン」なんだ。
これが3ヶ月続いた頃、明らかに異変が起きた。
まず、パフォーマンスがガタ落ちした。
普段なら10分で解決できるような、単純なXAMLのDataContextの指定ミスに、半日気づかなかった。非同期メソッドのawaitを付け忘れて、原因不明の(いや、原因明確なんだけど)タスク握りつぶしバグを生み出し、デバッグに丸一日溶かした。
頭が回らない。常に霧がかかってるみたいで、ロジカルな思考ができない。ワーキングメモリが、常に何かしらの「仕事のタスク」で占有されてる感じ。
次に、プライベートが侵食された。
ベッドに入っても、頭の中ではコードレビューが自動再生されてる。「あのlockステートメント、本当にスレッドセーフか?」とか「もっと効率的なLINQの書き方があったんじゃないか?」とか。
せっかく現地の友人に誘われてパブに行っても、心の底から楽しめない。会話しながらも、頭の片隅で「あの要件定義、英語のニュアンス間違って解釈してないよな…」とか考えてる。
これが、俺が勝手に名付けた**「どこでも戦場」シンドローム**だ。
海外生活のストレスって、それだけでも結構ある。
スーパーのレジはめちゃくちゃ遅いし、行政の手続きは意味不明なほど複雑だし、言語が通じない孤独感もある。
普段、心に余裕がある時なら「まあ、これも異文化体験っしょ」って笑って流せることでも、脳が疲弊しきってると、全部が「敵」に見える。
レジが遅いだけで「なんで俺の時間ばっかり奪うんだ!」ってイライラする。バスが時間通りに来ないだけで、本気で落ち込む。
このままじゃ、絶対にバーンアウトする。
技術を磨きに来たのか、海外でサバイブするためだけに消耗しに来たのか、分からなくなる。
その時、痛感したんだ。
僕ら海外エンジニアに必要なのは、「気合で休め」とか「オンオフ切り替えろ」みたいな精神論じゃない。そんなの、物理的に無理な環境にいたら不可能だ。
必要なのは、**脳に「ここは安全地帯だ」と強制的に認識させるための、物理的な「聖域(サンクチュアリ)」**なんだ。
意識的に「設計」された、仕事の思考を一切持ち込ませない、自分をリセットするためだけの空間。
これが、俺が「オアシス」とか「ゾーン」と呼んでるものの正体だ。
この記事は、単なるオシャレな部屋作りのテクニックじゃない。
異国の地で、高い集中力を要求されるエンジニアという仕事を続けながら、自分自身のメンタルと人生の質を守り抜くための、超実践的な「サバイバル術」だ。
俺が給料と時間と、たくさんの失敗を積み重ねて見つけた、最高の「ゾーン」の設計図を、これから余すところなく伝えていく。
オアシス設計図①「場所」と「五感」– 脳をハックし、聖域を定義する
「いやいや、待ってくれ」と。
「俺の部屋、ワンルーム(こっちでいうスタジオタイプ)なんだよ」
「デスクとベッドが物理的に1メートルしか離れてない環境で、どうやって場所を分けろと?」
わかる。めちゃくちゃわかる。俺が最初に住んでたアパートもそうだったから。
デスクチェアを後ろに引いたら、ベッドにぶつかるようなレイアウト。
でも、諦めたらそこで試合終了だ。
物理的な「広さ」がなくても、人間の「認識」はハックできる。
大事なのは「平方メートル」じゃなく、「境界線の引き方」だ。
1. 【場所 (Location)】「国境」を引け! ワンルームでもできる物理的ゾーニング術
僕らエンジニアの脳は、特定の「モノ」と「行動」を強烈にリンクさせてる。
その最たるものが「デスク」と「ノートPC」だ。
これが視界に入るだけで、脳は勝手に「戦闘モード」に切り替わろうとする。WPFのWindowがOnActivated()イベントを勝手に拾うみたいに、もう無意識だ。
ベッドに寝転がってても、視界の端にPCの電源ランプがチカチカしてたら?
「あ、あのビルド、ちゃんと通ったかな…」
「さっきのプルリクのコメント、ちょっとキツかったかな…」
ほら、もうダメだ。休まるわけがない。
だから、最初のステップは**「視界から『仕事』を消す」**こと。
■ 解決策①:物理バリアを設置する
一番手っ取り早いのが、物理的に見えなくすること。
俺が最初にやったのは、IKEAで一番安い「KALLAX(カラックス)」っていうシェルフを買ってきて、デスクとベッドの間に無理やり置くことだった。
たったこれだけ。
でも、ベッドに寝転がった時、デスクが「見えなくなる」。
デスクに座った時、ベッドが「見えなくなる」。
この「見えない」が、想像以上に強力な「国境」になる。
「こっからこっちは仕事(IsFocused=true)」、「あっち側はプライベート(IsEnabled=false)」。
別に高い家具じゃなくていい。
- 背の高い観葉植物(フェイクグリーンでも十分。視界を遮れれば勝ち)
- 薄いパーテーションや、なんなら天井から布を吊るす
- 究極は、デスクに背を向けて座るための、安い一人掛けソファを置くこと。
そう、これだ。俺の今の「オアシス」の核は、この「一人掛けソファ」だ。
仕事場であるデスクとは「逆」を向いて設置されてる。
このソファに座ったら、もうPCの画面は見えない。
このソファこそが、俺の「ゾーン」だ。
■ 解決策②:「儀式(InitializeComponent)」で動線を設計する
場所を分けるのが難しいなら、「行動」で分ける。
脳に「今からモードが変わりますよ」って明確なシグナルを送るんだ。
WPFでWindowが起動する時、必ずInitializeComponent()が呼ばれてUIが初期化されるだろ? あれと同じ。
「ゾーンに入る」ための一連の「儀式」を設計するんだ。
俺がやってる「儀式」はこうだ。
- 仕事の終わりを宣言する: Slackで「Have a good evening!」と打つ。PCをスリープじゃなく、完全にシャットダウンする。(
await client.ShutdownAsync()だ) - 物理的に離れる: デスクから立ち上がり、シャワーを浴びる。
- 「装備」を変える: 仕事中(基本リモートだからTシャツ短パンだけど)の服から、完全にリラックスするためだけの「部屋着(=ゾーン専用着)」に着替える。ヨレヨレの最強のスウェットとかでいい。
- 「聖域」へ: キッチンでハーブティー(カフェインゼロ)を淹れる。
- 着席: そのマグカップを持って、例の一人掛けソファ(ゾーン)に座る。
この「シャワー浴びて、着替えて、お茶淹れて、座る」っていう一連の動作。
これが俺のInitializeComponentだ。
この儀式を終えてソファに座った瞬間、俺の脳は「あ、もう今日はCancellationTokenのこととか考えなくていいんだ」って、完全に「オフ」モードに切り替わる。
この「一手間」を面倒くさがっちゃダメだ。
この一手間こそが、オンとオフを分ける「関所」になる。
■ 解決策③:ポータブル・オアシスキット
フックで「portable kit」ってあったけど、これは出張が多いとか、シェアハウスでリビングが共有みたいな人にも有効だ。
要は「どこでもマイゾーン」を作れるセットを用意しとく。
- お気に入りの肌触りの良いクッション
- 最強のノイズキャンセリング・ヘッドホン
- 好きな香りのアロマミスト(スプレータイプ)
- 光を遮断するアイマスク
これを一つの箱やポーチにまとめとく。
そして「この箱を開けたら、俺の休み時間スタート」と脳に刷り込む。
新幹線の中だろうが、ホテルの隅っこだろうが、このキットを展開すれば、そこがあなたの「オアシス」になる。
2. 【五感 (Sensory)】脳をハックしろ! 「ここは安全」と誤認させる五感の設計
場所を区切ったら、次は「五感」だ。
僕らエンジニアは、ロジックと理屈で生きてると思いがちだけど、人間の脳なんて所詮、五感からの「インプット」にめちゃくちゃ左右される、ただの「ハードウェア」だ。
WPFのBindingが、INotifyPropertyChangedからの通知で勝手にUIを更新するように、僕らの脳も五感からの「通知」で勝手に状態(State)が変わってる。
なら、その「通知」を、こっちから意図的にハックしてやればいい。
脳に「ここは戦場(オフィス)じゃない、安全なオアシスだ」と「誤認」させるんだ。
■ ① 視覚(照明):戦闘モードの「蛍光灯」を消せ
はっきり言う。オフィスの照明(白くて明るい蛍光灯、昼光色)は「敵」だ。
あれは、人間の脳を覚醒させ、交感神経を優位にし、「働け!集中しろ!」と強制する「戦闘モード」の光だ。
海外のアパートは、日本みたいに煌々(こうこう)と明るいシーリングライトが一部屋に一個ドン!みたいな設計は少ないけど、それでも仕事中はデスクライトとかで明るくしてるだろ?
その「光」を、オフモードになっても浴びてたら、脳は「まだ戦闘中か?」と勘違いし続ける。
解決策:間接照明しか勝たん。
これはマジで、俺が海外生活で投資してよかったものベスト3に入る。
天井のメイン照明は、もう使わない。消せ。
代わりに、暖色(電球色)の間接照明を、部屋の「隅」にいくつか置くんだ。
床に置くスタンドライト、棚の上に置く小さなランプ。なんでもいい。
光が直接目に入らず、壁や天井に反射する「柔らかい光」を作ることが重要だ。
俺の最強装備は**「スマート電球」**(Philips Hueとか、安いTP-Linkとかで十分)。
これがエンジニア的に最高に「効く」。
- 仕事モード: デスクライト(昼白色)+部屋の照明(白め)
- ゾーンモード: デスクライトOFF。部屋の隅の間接照明(暖色、明るさ10%)だけON。
これをスマホや音声(「アレクサ、ゾーンモードにして」)で一発で切り替える。
WPFのVisualStateManagerでStateを”Work”から”Relax”に切り替えたら、UI(部屋の景色)がガラッと変わるイメージだ。
光が暗い暖色に切り替わった瞬間、脳は「あ、もうDispose()していい時間だ」と理解する。
■ ② 聴覚(サウンド):「無音」は、逆に休まらない
「リラックス=無音」だと思ってないか? それ、罠だ。
特に海外の都市部って、日本より雑多な音が多い。救急車やパトカーのサイレン(音がデカいしパターンが違う)、隣人のデカい声でのパーティー、上の階の謎の足音…。
「無音」を目指して耳を澄ますと、こういう「不快なノイズ」が逆に際立って、イライラの原因になる。
解決策:ノイズは「良質なノイズ」で上書き(マスキング)する。
まず、ノイキャン・ヘッドホンは持ってるよな?
持ってないなら、今すぐ買え。これはエンジニアの「三種の神器」だ。高いやつ(SONYとかBose)を買え。これは「投資」だ。
コード書いてる時の集中力爆上がりは当然として、これを「ゾーン」であえて使う。
そして、流すのは「音楽」じゃなくてもいい。
俺のオススメは、**「環境音」**だ。
- 焚き火のパチパチいう音
- しとしと降る雨の音
- 穏やかな波の音
- (俺は)JAZZが流れるカフェの環境音(海外のカフェはうるさすぎて逆効果)
Spotify、YouTube、なんでもある。
これらの「安全な環境音」で耳を満たすと、脳は「あ、今、自然の中で安全な場所にいるな」と勝手に解釈(誤認)してくれる。
不快な隣人のノイズも、この「良質なノイズ」にかき消される。
これは、脳のAudioContextに対する、ある種の「インジェクション攻撃」だ(笑)。
■ ③ 嗅覚(香り):感情に直結する「裏口」を使え
五感の中で、嗅覚だけは特殊だ。
視覚や聴覚と違って、「思考」を司る大脳新皮質を通らず、本能や感情を司る「大脳辺縁系」にダイレクトにブッ刺さる。
つまり、**理屈抜きで、一瞬で感情を切り替えられる「裏口」**なんだ。
「アロマとか、なんかオシャレすぎて無理」
俺もそう思ってた。C#エンジニアたるもの、MutexとかSemaphoreとか、ロジカルなことだけ考えてりゃいいんだと。
謝る。俺が間違ってた。香りは、ガチで効く。
仕事部屋は、どうしても「PCの排熱の匂い」「コーヒーの匂い」「エナジードリンクの残り香」みたいな、「戦闘」の匂いになる。
これを「ゾーン」に持ち込んじゃダメだ。
解決策:香りで「コンテキストスイッチ」を強制する。
一番簡単なのは、アロマディフューザーだ。無印良品とかのシンプルなやつでいい。
これも「光」と同じで、香りを使い分ける。
- 仕事モード(任意): ペパーミント、ローズマリー、ユーカリ(シャキッと集中できる系)
- ゾーンモード(必須): ラベンダー、サンダルウッド(白檀)、ベルガモット(脳がトロける鎮静系)
仕事終わりの「儀式」に、これを組み込む。
シャワーを浴びて、照明をゾーンモードにして、アロマディフューザーのスイッチを入れる。
ラベンダーの香りがフワッとした瞬間、脳は理屈抜きに「ああ、もうGC(ガベージコレクション)のこととか、メモリリークのこととか、考えなくていい時間だ…」って、強制的にThread.Sleep()(いや、Task.Delayか)させられる。
これは、自分にしか分からない「終わりの合図」だ。
どうだ?
「場所」を区切り、
「光」を暖色に落とし、
「音」を環境音で満たし、
「香り」で脳をリラックスさせる。
ここまで「ハードウェア」をガチガチに設計すれば、あなたの脳はもう「休む」しかない。
ワンルームのアパートの一角に、物理的に「ここは戦場じゃない」と定義された、自分だけの「聖域」が爆誕する。
…ただ、勘のいいエンジニアなら気づいてるかもしれない。
「場所」と「五感」っていう最強の「ハードウェア」は整った。
でも、その上で動かす「ソフトウェア」がまだだ。
その「聖域」で、じゃあ、具体的に「何をするか?」
スマホでSlackの通知、見ちゃってないか?
結局そこで技術書、読んでないか?
次回「転」では、このオアシスをオアシスたらしめるための、最も重要な「機能(Function)」、あえて「何もしない」をデザインする方法について話すぜ。
オアシス設計図②「機能」– “何もしない”をデザインする。聖域の「ただ一つのルール」
僕らエンジニアは、生来「効率」と「生産性」の生き物だ。
「何もしない時間」=「無駄」だと、DNAレベルで刷り込まれてる。
だから、せっかく作った「ゾーン」でも、何か「有益なこと」をしなきゃいけない気がしてくる。
「よし、このリラックス空間で、英語の勉強をしよう」
「Kindleで、積んでたあの技術書(『Effective C#』の続き)を読もう」
「Netflixで、話題のドキュメンタリーを見て教養を深めよう」
全部、ブブーッ! 不正解だ。
それ、全部「インプット」だ。
脳に新しい情報を突っ込む「作業」だ。
それは「仕事」の延長戦でしかない。
俺が定義する「ゾーン」の機能は、ただ一つ。
「戦略的、能動的な、デジタル・デトックス」
脳を「休ませる」んじゃない。
脳が勝手に「休んでしまう」環境を強制的にデザインするんだ。
1. 聖域の「ただ一つのルール」:デジタル・デバイスの物理的遮断
このオアシスには、たった一つの、しかし絶対に破ってはいけない「憲法」がある。
「光る画面(スマホ・タブレット・PC)を、持ち込むべからず」
これだけだ。
「え、じゃあ何すんの?」って不安になるだろ?
その不安こそが、君がどれだけ「デジタル」に脳をハックされてるかの証拠だ。
「サイレントモード」じゃダメだ。
WPFの画面で言えば、Visibility=”Hidden”じゃダメなんだ。あれは「存在」してるから。
Visibility=”Collapsed”、つまり**「物理的に存在しない」**状態にする必要がある。
■ 解決策:スマホの「物理的な居場所」を作る
俺がやってる、最も効果的だった方法。
「スマホ充電ステーション」を、オアシス(ソファ)から最も遠い場所(俺の場合はキッチンの隅)に設置した。
「承」で書いた「儀式」を思い出してほしい。
仕事が終わり、シャワーを浴びて、部屋着に着替える。
その流れで、キッチンでお茶を淹れる。
その時だ。
スマホを、キッチンの充電ステーションに「カチャン」と置く。
画面を「下」に向けて。(通知ランプも見えないように)
そして、そのままオアシス(ソファ)に向かう。
物理的に手が届かない。
立ち上がって、キッチンまで歩いて行かない限り、スマホは触れない。
人間は、驚くほど「怠惰」だ。
この「立ち上がって歩く」というワンクッションが、無意識の「スマホチェック」というTimerイベントを、劇的に減らしてくれる。
これが、「ゾーン」を「ゾーン」として機能させるための、最も重要なDependencyProperty(依存関係プロパティ)だ。
2. 機能的ハーモニー:「空白」を何で埋めるか?
さて、最大の敵(スマホ)を封じ込めた。
君は今、ほの暗い照明の中、良い香りに包まれ、最強のソファに座っている。
…そして、手には何もない。
最初は、めちゃくちゃソワソワする。
5分が、まるで1時間のように長く感じる。
「何か、何かしないと…」
これが「離脱症状」だ。
この「空白の時間」こそが、君の脳がGC(ガベージコレクション)を始めるための、神聖な「Stop-the-World」タイムなんだ。
脳は、この「何も入ってこない時間」を使って、日中に詰め込まれた大量の「情報オブジェクト」の参照を整理し、不要なメモリ(ストレス)を解放し、デフラグを始める。
この「GCタイム」を、邪魔しちゃいけない。
…とはいえ、「無」になるのは修行僧でもないと難しい。
だから、脳のGCを「邪魔しない」程度の、超低負荷な「アナログ・アクティビティ」を「機能」として用意しておくんだ。
これが、フックにあった**「機能的ハーモニー(Functional Harmony)」**だ。
■ ゾーンに「置くこと」を許可されたモノたち
- ① 紙とペン(スケッチブック、日記帳)
- 最強のアナログツールだ。
- WPFの画面設計に悩んでる時、PCの前にいると
GridとStackPanelのDefinitionことしか考えられない。でも、ゾーンで、スマホも持たずに、真っ白な紙に「ぼーっ」とペンを走らせる。 - すると、不思議なことに、頭の中で「あ、あのUI、
DataTemplateSelector使って切り替えればシンプルになるんじゃね?」とか、全然違う角度からの解決策が「降ってくる」。 - これは「考えてる」んじゃない。「降ってくる」んだ。
GCが終わって、空きメモリができた脳が、勝手にバックグラウンド処理を始めてくれた結果だ。- (別に絵じゃなくていい。殴り書きでも、今日ムカついたことでも。とにかく「書く」というアナログ行為が重要だ)
- ② 超・簡単なパズル(ルービックキューブ、知恵の輪)
- 「思考」を使わない、「触覚」にフォーカスした遊びだ。
- カチャカチャと手の中でいじってるだけ。
- 複雑な
async/awaitのデッドロック問題から解放され、脳は「目の前のカチャカチャ」にだけ集中する。 - 脳の「モード」が、論理的(
C#)モードから、触覚的(アナログ)モードに強制的に切り替わる。
- ③ 「仕事と無関係な」アナログ本(小説、漫画、写真集)
- 重要:技術書、自己啓発書は「厳禁」だ。
- あれは「仕事」だ。オアシスに持ち込むな。
- 電子書籍(Kindle)も、個人的にはグレーだ。バックライトが脳を覚醒させるし、スワイプ操作がスマホを連想させる。
- 「紙」を「めくる」という行為。
- 俺は、ハードボイルド小説とか、どうでもいいギャグ漫画を置いてる。
- ストーリーに没入することで、現実の「タスク」から完全に
disconnectできる。
- ④ (許可された唯一のデジタル)音楽プレイヤー
- 「承」で書いた「音」の延長だ。
- スマホじゃなく、専用のシンプルなBluetoothスピーカーか、スマートスピーカー(画面なし)がいい。
- 「アレクサ、ジャズをかけて」
- 操作が「声」か「物理ボタン」で完結し、「画面」を介在させないことが重要だ。
「転」は、これまでの「設計(ハード)」から、「運用(ソフト)」への転換だ。
この「ゾーン」は、君を「休ませる」ためにあるんじゃない。
君の脳に「GCを走らせる時間と空間」を「意図的に与える」ためにある。
「ゾーン=何もしない、を、する場所」
この、一見「非生産的」に見える「機能」こそが、海外というアウェイな環境で、複雑なコードの海に溺れず、最高のパフォーマンスを発揮し続けるための、最強の「戦略」なんだ。
最初はソワソワする。罪悪感すらあるかもしれない。
「俺、こんなことしてていいのか…?」
いいんだ。
この「何もしない時間」が、明日の君のコードの質を、バグの発見率を、そして人生の質を、劇的に変えることになる。
…じゃあ、この「ゾーン」を1ヶ月、3ヶ月と運用し続けた結果、俺の身に具体的に何が起こったのか?
それは、最後の「結」で話そう。
ゾーンが僕にもたらしたもの – これは「逃げ」じゃない、「戦略的撤退」だ
結論から先に言う。
俺の「コードの質」と「バグ発見能力」は、ゾーン構築前と後で、計測不能なレベルで、爆上がりした。
は?って思うだろ。
「休む」ための設計図を話してたのに、なんで「仕事」のパフォーマンスが上がるんだ、と。
これが、このオアシス設計の「肝」であり、俺がC#エンジニアの同胞たちに、喉から血が出るほど伝えたかった「人生術」なんだ。
1. ゾーンが「仕事(コード)」にもたらした、3つの具体的な変化
① 解決策が「降ってくる」ようになった
ゾーン構築前。俺はデスクで10時間うんうん唸ってた。
WPFのクソ複雑なVisualTreeの奥底で起きてるBindingエラー。
マルチスレッド下で、ごく稀に発生するasync/awaitのデッドロック。
もう、頭がカオスだ。try-catchで囲みまくって、ログを仕込みまくって、力ずくでねじ伏せようとしてた。
ゾーン構築後。
デスクでは、相変わらず唸る。でも、時間が来たら「儀式」をこなし、PCをシャットダウンし、スマホをキッチンに置き、ゾーン(ソファ)に座る。
そして、例のアナログノートに、ギャグ漫画のくだらない落書きとかしてたんだ。
仕事のことは、1ミリも考えてない。
脳はラベンダーの香りに包まれ、トロトロのジャズに浸ってる。
その、瞬間だった。
何の脈絡もなく、頭の中に「C#のコード」がポン、と浮かんだ。
「…あ、WeakReference使えば、あのEventのメモリリーク、防げるんじゃね?」
「待てよ、あのデッドロック、ConfigureAwait(false)の付け忘れが原因か?」
これだ。
「転」で話した「脳のGC」ってのは、比喩じゃなかった。
脳が「何もしない」空白の時間を得て、日中の膨大な情報(object)を整理し、デフラグし、不要なメモリ(ストレス)を解放した。
その結果、脳の「空き容量(ワーキングメモリ)」が劇的に増えた。
デスクでパンパンだったメモリ(RAM)では実行できなかった「重い処理(=複雑な問題の根本的解決)」が、バックグラウンドで勝手に走り出し、その「解(return value)」だけが、意識に「ポン」と上がってくる。
ゾーンは、最高の「デバッガ」であり、「アーキテクト」だったんだ。
② 「集中力の質」が変わった
「ゾーン」で強制的に脳を休ませることを覚えた結果、逆説的に、「オン」の時間の「質」が劇的に変わった。
ゾーン構築前は、ダラダラと8時間「オン」だった。
実際には、集中してる(ように見えてる)だけで、途中でTwitter見たり、ニュース見たり、脳は常に「コンテキストスイッチ」の嵐。Task.Delayだらけの非効率なコードだ。
ゾーン構築後は、「オン」の時間はむしろ短くなったかもしれない。
でも、その4時間なり5時間なりは、マジでThread.Sleep(いやawait Taskか)なしで、CPU使用率100%でコードに没入できる。
なぜなら、**「このタスクさえ終われば、あの最強のオアシス(ゾーン)が待ってる」**と、脳が知ってるからだ。
ゴール(報酬)が明確だから、そこまでの道のり(コーディング)を、最短距離で駆け抜けようとする。
人間の脳って、本当に現金だ(笑)。
③ 「空気」が読めるようになった
これは海外エンジニア特有かもしれない。
非ネイティブにとって、英語のミーティングは「技術」の話より、「雑談」や「空気感」を読むほうが100倍難しい。
ゾーン構築前は、脳が疲弊しきってたから、ミーティング中は「技術的なキーワード」を拾うのに必死。相手のジョークや、発言の裏にある「懸念」なんて、拾う余裕(メモリ)はゼロだった。
ゾーン構築後は、脳に「空き容量」がある。
だから、相手の表情や、声のトーン、言葉の選び方の「微妙なニュアンス」を感じ取る余裕ができた。
「あ、このマネージャー、口ではOKって言ってるけど、納期(Deadline)には不満そうだな」
「このIsOKのbool値はtrueだけど、裏のViewModelはState=”Warning”だな」
ってのが、分かるようになってきた。
これが、プロジェクトを円滑に進める上で、どれだけのアドバンテージになったか。
技術だけじゃ、海外ではやっていけない。この「空気を読む」能力こそ、聖域がくれた副産物だった。
2. ゾーンが「人生(プライベート)」にもたらしたもの
もちろん、仕事だけじゃない。
俺は、何のためにこの異国の地に来たんだっけ?
ゾーン構築前は、平日の夜も、週末も、頭は「仕事」だった。
せっかく現地の友人に誘われてパブに行っても、心の底から笑えない。
「あ、あのバグ、明日直せるかな…」
「日本との朝イチの会議、何て報告しよう…」
ゾーン構築後は、文字通り「別人」になった。
「儀式」を終え、スマホをキッチンに置いた瞬間、俺は「C#エンジニア」から「ただの俺」に戻る。
Dispose()メソッドが、完璧に呼ばれた状態だ。
だから、パブでは「酒と会話」に100%集中できる。
週末の小旅行では、目の前の「景色」に100%感動できる。
「今、ここ」に存在する能力を取り戻したんだ。
「海外で働く」ことの「苦」の部分(時差、言語、孤独)ばかりに目がいってた俺が、ようやく「楽」の部分(異文化、新しい出会い、美しい景色)を、心の底から享受できるようになった。
3. これは「逃げ」じゃない。「戦略的撤退」という名の「プロフェッショナリズム」だ
最後まで読んでくれた君に、一番伝えたいメッセージ。
僕らエンジニアは、「休むこと」に罪悪感を抱きがちだ。
「俺が休んでる間も、世界の誰かはコードを書いてる」
「もっと勉強しなきゃ、置いていかれる」
わかる。
でも、バーンアウトして、Exceptionを吐いて、Process.Kill()されたら、全部終わりだ。
海外という、日本よりずっと「サバイブ」が難しい環境で戦い続ける僕らにとって、「休む」ことは「サボり」じゃない。
これは、戦い続けるための、最も高度な「戦略的撤退」だ。
敵(ストレス、疲労、バグ)からいったん距離を置き、安全な城(ゾーン)に撤退し、補給し、装備を整え、次の日の朝、万全の態勢で再び戦場に戻る。
これこそが、「プロ」のやることだ。
C#でIDisposableインターフェースを実装するだろ?
リソース(ファイルハンドル、DBコネクション)は、使い終わったら必ずDispose()メソッドで「解放」しなきゃいけない。
これを怠ると、リソースリークが起きて、システム全体がクラッシュする。
君の「脳」と「心」は、君のシステム(人生)において、最も重要な「リソース」だ。
Dispose()し忘れたまま、次のnew(新しい一日)を始めてないか?
メモリリーク(ストレス)が溜まりまくって、クラッシュ寸前になってないか?
君だけの「ゾーン」を設計しろ。
それは、君の「脳」という最高のリソースを、毎日完璧にDispose()するための、最強のusingステートメント(finallyブロック)になる。

コメント