LabHub

ブログ

マルクス・アウレリウスのコードレビュー:ストア哲学で開発者のメンタルを整える

한국어English日本語

皇帝の私的日記

西暦170年頃、西洋世界で最も権力を持つ男が悪い一日を過ごしていました。

マルクス・アウレリウス・アントニヌス——ローマ皇帝、40万人の軍団の司令官、史上最大の帝国の統治者——は同時に、疫病、ゲルマン民族の侵攻、財政危機、政治的な裏切りにも対処していました。悪いスプリントとそれほど変わりません。

毎晩、彼は私的な日記をギリシャ語で書きました。ラテン語ではなく——ギリシャ語は哲学者の言語、厳密な思考の言語でした。自分以外の誰かのために書くことはなかった。タイトルは Τὰ εἰς ἑαυτόν——自分自身へ。私たちが『自省録(Meditations)』と呼ぶ本です。

『自省録』を今日読んで驚くのは、その即時的な適用可能性です。いくつかの名詞を変えれば、マルクスはシニアエンジニアがパフォーマンスレビューシーズンの振り返りを書いているように見えます。

"Confine yourself to the present." (現在に集中せよ。)— 自省録 VIII.7

Slackの通知を閉じてバグを修正しろ、という意味ではないかと思います。


ストア哲学とは何か

ストア哲学は紀元前300年頃、アテネでキティオンのゼノンによって創設されました。名前は彼が弟子たちを教えたStoa Poikilē(彩色された柱廊)に由来します。後にローマに伝わり、3人の巨人を生みました:マルクス・アウレリウス(皇帝)、セネカ(政治家・劇作家)、エピクテトス(元奴隷)。

ストア哲学の核心的な主張はエレガントで過激です:外部の出来事が私たちを悩ませるのではない。外部の出来事に対する私たちの判断(はんだん)が私たちを悩ませるのだ。

マルクスはこう述べています:「もし何か外部のものによって苦しめられているなら、その痛みはその物事自体によるものではなく、それに対するあなたの見積もりによるものだ。そしてこれはいつでも取り消す力があなたにある。」— 自省録 VIII.47

これは受動性ではありません。良い人生のための作業がどこで実際に行われるかについての正確な主張です:外部ではなく、内部で。


エピクテトスと二分法(にぶんほう)的制御(せいぎょ)

ストア哲学で最も実践的に有用な概念は、元奴隷エピクテトスのものです。彼の*提要(Enchiridion)*はある区別で始まります:

"Τῶν ὄντων τὰ μέν ἐστιν ἐφ' ἡμῖν, τὰ δὲ οὐκ ἐφ' ἡμῖν." (存在するものの中で、あるものは私たちの力の中にあり、あるものは私たちの力の外にある。) — エピクテトス、提要 1.1

私たちの力の中にあるもの:判断、衝動、欲求、嫌悪——私たちの内的な精神活動。 私たちの力の外にあるもの:私たちの体、評判、財産、他人の行動。

開発者の生活に適用すると:

私のコントロール内私のコントロール外
自分のコードの品質PRがマージされるかどうか
レビューへの反応の仕方レビュアーの態度
デプロイ後のモニタリングサードパーティAPIの障害
自分の学習ペースチームの技術スタック決定
自分のバーンアウトの認識会社の人事決定

ストアの処方:左の列にエネルギーを注ぎましょう。右の列で何が起きても、苦悩なく受け入れましょう。これは無関心を意味しません——コントロールできない結果で内的状態が決まらないようにすることを意味します。


Memento Mori:死を忘れるな

最も直感に反するストア的実践(じっせん):

Memento mori——あなたは死ぬということを覚えておけ。

現代の耳には陰鬱に聞こえますが、ストア哲学者たちにとっては解放的でした。自分の死を視野に入れると、今朝壊滅的に思えたコードレビューが実際のサイズに縮小されます。

日本では「一期一会」という禅の概念がこれに近い感覚を持っています。今この瞬間は二度と来ない。だからこそ今、目の前のことに最善を尽くす。

マルクスはこう書きます:「アレクサンドロス大王と彼のラバの御者は共に死に、同じことが両者に起きた。」— 自省録 VI.24

これはニヒリズムではありません。マルクスは統治することを深く気にかけていました。しかし宇宙的な視点が、小さなことが大きなことになるのを防いでいました。彼は帝国を運営し、私たちはマイクロサービスを運営しています。どちらも悪いコードレビューで一週間を台無しにすべきではありません。


セネカと時間の哲学

ストア哲学者の中で、セネカは最も緊急に読める存在です。彼がルキリウスという友人に書いた手紙は、賢い同僚が長い一日の終わりに送るメールのようです:

"Dum differtur vita transcurrit." (先延ばしにしている間に、人生は過ぎ去っていく。)

そしてより直接的に:

"Ita fac, mi Lucili: vindica te tibi." (こうしなさい、ルキリウスよ:自分自身のために自分を取り戻せ。)

日本のエンジニア文化では「残業が当たり前」「会社のために自分を捧げる」という文化がかつて強くありました。しかしセネカは2000年前に問いかけています:あなたは自分の時間を本当に生きていますか?

"Nusquam est qui ubique est." — セネカ、手紙 2.2 (どこにでもいる者は、どこにもいない。)

Slack、メール、JIRA、GitHub、Confluence、PagerDuty。どこにでもいるエンジニアは、どこにもいません。セネカならこれについて一言言いたいことがあったでしょう。


3つのストア的訓練

マルクス・アウレリウスは3つの訓練を中心に実践を組み立てていました(Robertson, 2019):

1. 同意の訓練(判断の訓練)

出来事に自動的に反応しないこと。刺激と反応の間に間を置くこと。ストア哲学者たちは自動的な感情反応を*パトス(pathos)と呼び、理性的な感情をエウパテイア(eupatheia)*と区別しました。感情そのものは悪いことではありません。感情が判断(はんだん)を支配することが問題なのです。

シナリオ:PRの全面書き直しを求められたとき

月曜日の朝。金曜日に提出したPRに「このアプローチは根本的に問題があります。再設計してください」というコメントが付いています。

自動反応(パトス):3日間かけて作業したのに。この人は私の能力を否定している。

同意の訓練の適用:

理性的感情(エウパテイア):残念だが、より良い設計を学ぶ機会だ。具体的にどの部分が問題なのか質問しよう。

シナリオ:チームミーティングで自分のアイデアが無視されたとき

アーキテクチャミーティングで提案したキャッシュ戦略が、一言の議論もなく飛ばされました。

同意の訓練の適用:

2. 行動の訓練(衝動の訓練)

共通の善のために行動しつつ、結果は緩やかに保つこと。ストア哲学でいうプロエグメナ・アディアポラ——好むが執着しないもの——を実践すること。

シナリオ:技術的負債の解消提案が却下されたとき

テストカバレッジ20%のレガシーモジュールをリファクタリングする技術提案書を書きました。詳細なマイグレーション計画、コスト見積もり、ROI予測まで含めました。しかしプロダクトマネージャーは「今は新機能が優先」と言い、来四半期に持ち越されました。

行動の訓練の適用:

シナリオ:オンコール中にサードパーティ障害(しょうがい)が発生したとき

決済システムの外部APIがダウンし、注文が失敗しています。外部サービスの復旧はコントロール外です。

行動の訓練の適用:

3. 欲求の訓練(望むことと避けることの訓練)

コントロールできるものだけを望むこと。コントロールできるものだけを失うことを恐れること。

シナリオ:昇進審査に落ちたとき

同期の2人がシニアに昇進しました。あなたは「もう一四半期様子を見ましょう」という答えを受けました。

欲求の訓練の適用:

マルクスは莫大な富と権力を持っていましたが、それを十分に緩やかに握っていたため、失っても別人にはなりませんでした。


インポスター症候群(しょうこうぐん)について

『自省録』は驚くことを明かしています:ローマ皇帝マルクス・アウレリウスはインポスター症候群を持っていました。

これは開発者だけの問題ではありません。1978年に心理学者ポーリン・ローズ・クランスとスザンヌ・アイムス(Clance and Imes, 1978)がこの現象を初めて学術的に定義した際、高い業績を上げている女性たちが自分の成功を運や他者の間違いに帰属させるパターンを発見しました。その後の研究によると、約70%の人が人生で少なくとも一度はインポスター経験をするとされています(Sakulku and Alexander, 2011)。特にテクノロジー業界では、新しいフレームワークやパラダイムが絶えず登場し、「知らないこと」が目に見える形で露呈するため、この現象は特に深刻です。

マルクスは常に、自分が哲学に生きているかどうかを心配していました。怠惰さ、ベッドで長く過ごしすぎること、ストアの英雄ほど良い人でないことを自分に言い聞かせていました。西洋世界で最も権力ある男が、ジュニアエンジニアとほぼ同じ方法で自分を疑っていたのです。

彼の反応は示唆的です。自己疑念をなくそうとせず、注意を向け直しました。私は十分に良いか?(答えられない、外部の検証に依存する)と問う代わりに、今、手持ちのツールで最善の仕事をしているか?(答えられる、コントロール内にある)と問いました。

"You have power over your mind, not outside events. Realize this, and you will find strength." (あなたは自分の心に力を持っている、外部の出来事ではなく。これを理解すれば、力を見つけるだろう。)

開発者のインポスター症候群が発動する瞬間:

ストア的再解釈:

これらすべての状況で、インポスター症候群はエピクテトスの表の右側の列(コントロール外)に自己価値を置いているために発生しています。他人の認識、比較対象の成果、特定の時点での結果——すべてコントロール外です。

インポスター症候群は、ストア的な意味で、どちらの列にいるかの混乱です。あなたは不十分と感じる、なぜなら自分を外部の基準(あなたについての他人の認識)で測っているからです——内部の基準(改善しているか、正直か、努力しているか)ではなく。ストア的な動きは、実際にコントロールできるものに戻ることです。

そして覚えておいてください:マルクス・アウレリウス自身も資格を疑っていました。インポスター症候群はあなたが不十分だという証拠ではなく、あなたが成長しているという信号かもしれません。快適な領域を離れない人は、インポスター感覚を経験しません。


開発者のための実践的ストア哲学

朝の予期 (premeditatio malorum) 仕事を始める前の5分:今日どんな困難に遭遇するかもしれないか?論争的なPRレビュー?混乱した要件?本番アラート?それぞれを平静に処理する様子を視覚化します。これは悲観主義ではなく——予防接種です。

夜の回顧(かいこ)(セネカの実践) 一日の終わりの3つの質問:

二分法チェック ストレスを感じたとき:これは私のコントロール内にあるか、ないか?ない場合、この状況のどの部分が実際にコントロール内にあるか?エネルギーをそこに向け直す。

高みからの視点 衝突が全てを占領しているように感じるとき:1年後、これはどう見えるか?10年後は?地球の反対側の思慮深い観察者にとっては?スケールが均衡を取り戻す。


ストア日誌(にっし)テンプレート:開発者のための朝/夜の実践

セネカには毎晩一日を振り返る習慣がありました。マルクスは毎朝 premeditatio malorum(ネガティブ・ビジュアライゼーション)を実践していました。この2つを組み合わせた、開発者専用のストア日誌テンプレートです。

朝の日誌(にっし)(出勤前または業務開始前の5分)

## 日付: \_\_\_\_

### 1. Premeditatio malorum(ネガティブ・ビジュアライゼーション)

今日起こりうる最悪のシナリオ3つ:

- (例:PRが全面却下されるかもしれない)
- (例:本番障害が発生するかもしれない)
- (例:要件が完全に変わるかもしれない)

### 2. コントロール内/外の区分

今日のストレス要因のうち:

- コントロール内:(例:コードの品質、コミュニケーションの態度)
- コントロール外:(例:マージの可否、チームメイトの気分)

### 3. 今日実践する美徳ひとつ

- (例:忍耐 - コードレビューに防御的に反応しない)

夜の日誌(退勤前または業務終了後の5分)

### 1. セネカの3つの質問

- 今日直した悪い習慣:(例:会議中にマルチタスクしなかった)
- 今日実践した美徳:(例:後輩の質問に誠意を持って答えた)
- 今日改善した点:(例:新しいエラーハンドリングパターンを学んだ)

### 2. 同意の訓練の復習

今日、感情的に反応した瞬間があったか?

- 状況:(例:Slackで鋭いメッセージを受けた)
- 自動反応(パトス):(例:怒り、防御)
- 理性的再解釈(エウパテイア):(例:相手もストレスを抱えていたかもしれない)

### 3. 明日のためのメモ

- (例:明日の朝一番に技術的負債のイシューを整理する)

この日誌を毎日書く必要はありません。マルクス・アウレリウスも毎日書いたわけではありません。しかし特につらい日——本番障害があった日、コードレビューで感情が傷ついた日、バーンアウトの兆候が感じられる日——5分の省察が驚くほどの違いを生みます。


バーンアウトとストア哲学

開発者の燃え尽き(もえつき)症候群(しょうこうぐん)は単なる過労ではありません。世界保健機関(WHO)はバーンアウトを「慢性的な職場ストレスが適切に管理されなかった結果生じる症候群」と定義しています。その3つの次元は:(1) エネルギーの枯渇または消耗、(2) 仕事への心理的距離の増大またはシニシズム、(3) 職業的効能感の低下。

ストア哲学の視点からバーンアウトを分析すると、3つの訓練の失敗と正確に対応します:

1. 同意の訓練の失敗 → 消耗

すべてのフィードバックを個人攻撃として受け止め、すべての障害を自分のせいにし、すべての変更要求を不合理と判断すると——感情のエネルギーが急速に枯渇します。同意の訓練が機能しなければ、たった一つのSlackメッセージでもその日のエネルギーが消耗されます。

2. 行動の訓練の失敗 → シニシズム

結果に執着しながらも結果をコントロールできないとき、学習性無力感が生まれます。「どんなに良いコードを書いても要件が変わるから」「提案しても誰も聞かないから」。このシニシズムは、コントロール外の結果に自己効能感を賭けているために生じます。行動の訓練は、結果から切り離された内的な満足を見つけることを教えます。

3. 欲求の訓練の失敗 → 効能感の低下

昇進、認知、完璧なコード——コントロール外のものを渇望すると、達成しても満たされず、失敗すると崩壊します。欲求の訓練は、内的基準——今日最善を尽くしたか、正直だったか——で効能感を測ることを求めます。

バーンアウト回復(かいふく)のストア的アプローチ:


結び:皇帝の最後の言葉

マルクス・アウレリウスは180年、ドナウ川の前線で遠征中に亡くなりました。自省録を出版したことはありませんでした。私たちのためのものではなかった。これは個人的な訓練レジメンでした——たまたま世界を統治していた男が、プレッシャーの下で忘れ続けた原則を毎日自分に思い出させていた。

「最初のルールは穏やかな精神を保つことだ。第二は物事を直視し、それが何であるかを知ることだ。」自省録 VIII.7

穏やかな精神——何も難しくないからではなく、悪いコードレビューが届かない場所に自己価値を置いたから。物事を直視する——問題が存在しないふりをせず、しかし破滅的にもしない。

本番サーバーはダウンします。PRは却下されます。ロードマップは変わります。あなたが最も誇りに思ったコードは削除されます。

そしてあなたは、ドナウ川のマルクスのように、振り返りを書き、仕事に戻り、もう一度選びます——困難に平静さで向き合う人間であることを。

それが皇帝のコードレビューです。そしてそれはあなたのPRを承認します。


実践クイズ:ストア的開発者シナリオ

以下のシナリオを読み、ストア哲学的にどう対応するか考えてみてください。

シナリオ1:3ヶ月間取り組んだプロジェクトが突然キャンセルされました。チーム全体の士気がどん底です。テックリードとして、チームに何と言いますか?

ストア的アプローチ:

まず同意の訓練を適用します。「プロジェクトがキャンセルされた」という事実と、「私たちの努力は無意味だった」という判断を分離します。キャンセルはビジネスの決定であり、この過程でチームが成長したことは事実です。

二分法的制御を活用します:

  • コントロール外:キャンセルの決定、ビジネス方向の変更
  • コントロール内:チームの感情に共感すること、この経験から学んだことを整理すること、次のプロジェクトへの方向性を示すこと

Amor fati — 道を阻むものが道になる。キャンセルされたプロジェクトから得た技術的洞察、チームワーク経験、失敗の教訓をドキュメント化しましょう。そしてチームに正直に伝えましょう:「プロジェクトはキャンセルされた。しかし私たちが学んだことはキャンセルされていない。」

シナリオ2:あなたが書いたコードが本番でデータ損失バグを引き起こしました。50人の顧客が影響を受け、CEOが直接Slackチャンネルに入ってきました。次の行動は?

ストア的アプローチ:

マルクスが戦場での敗北の知らせを受けたとき——パニックではなく、次の行動を考えました。

ステップ1(同意の訓練):「自分はひどい開発者だ」という判断を止めます。事実だけを見ます:バグが発生し、影響範囲は50人、データ復旧が必要。

ステップ2(行動の訓練):コントロール可能なことに集中します。

  • 即時:バグの原因特定、ホットフィックスまたはロールバック
  • 短期:影響を受けた顧客のデータ復旧計画
  • 長期:再発防止テストの追加、ポストモーテムの作成

ステップ3(欲求の訓練):CEOの反応、チームメイトの視線——これらはコントロール外です。あなたがコントロールできるのは、状況を透明に共有し、責任を持って対応することです。

エピクテトスの言葉のように:起こったことがあるがままであることを望みなさい。バグはすでに起こりました。今は最善の対応だけが残っています。

シナリオ3:1年目のジュニア開発者です。チームミーティングでシニア開発者が「最近の新人は基本が足りない」と言いました。あなたを名指ししたわけではありませんが、顔が火照り、資格への疑いが押し寄せます。どうしますか?

ストア的アプローチ:

これはインポスター症候群の典型的なトリガーです。同意の訓練を適用します:

  • 事実:シニアが一般的な発言をした。自分を指名していない。
  • 自動判断(パトス):「自分のことを言っている。自分は不十分だ。」
  • 理性的再解釈(エウパテイア):「一般的なコメントだ。自分の学習過程とは無関係だ。」

コントロール内外を区別します:

  • コントロール外:シニアの発言、チームメイトがどう思うか
  • コントロール内:自分の学習ペース、わからないことを質問する勇気、毎日少しずつ良くなること

Clance and Imes(1978)の研究を思い出してください:70%の人がインポスター経験をします。シニア開発者も例外ではありません。マルクス・アウレリウスも例外ではありませんでした。資格への疑いを感じることは、あなたが成長中である証拠です。不快感を感じても、不快感が学びを止めさせないようにしましょう。


参考文献

コメント

まだコメントはありません。

ログインするとコメントできます