見えない敵との戦いが始まる ― “消えないバグ”がエンジニアを苦しめる理由**

  1. The Invisible Enemy – 見えない敵の正体
  2. 起:第一章「バグが“消えたフリ”をする瞬間」
    1. ■ そもそも、なんでバグは“見えない敵”になるのか?
    2. ■ 実例:原因不明の UI フリーズ事件
    3. ■ 海外現場で学んだこと:バグはローカルではなく「文化」から生まれる
    4. ■ さらに厄介な現象:“Zombie Bug”(ゾンビバグ)
    5. ■ 実は僕たちは「バグの発生源」を見誤っている?
  3. 第二章「ゾンビバグはどこから来るのか?」
    1. ■ 巣①:「認識のズレ」— みんな同じものを見ていない
      1. ● 僕
      2. ● 海外同僚
      3. ● 僕
      4. ● 海外同僚
    2. ■ 巣②:「一時対応のツケ」— その場しのぎのパッチが未来を蝕む
    3. ● 事件:半年後に蘇ったデッドロック
    4. ■ 巣③:「責任の分散」— 誰の仕事か分からないとバグは生き残る
    5. ■ 巣④:「学習の欠如」— バグの“死因分析”が行われない
    6. ■ 巣⑤:「状態管理の複雑さ」— 特に WPF はゾンビが湧く
  4. ■ ゾンビバグは「コードの問題」ではない
  5. 第三章「バグ退治の答えは、まさかの“医学”だった」
  6. ■ きっかけは、医師の友人との一言
  7. ■ エンジニアリングには“対症療法”が多すぎる
    1. ● 症状にパッチを当てても、
  8. ■ 医学の“診断プロセス”は、バグ調査にめちゃくちゃ使える
    1. **① 問診(状況把握)
  9. ■ 僕が実際に医学式“鑑別診断”を導入してみたら…
  10. ■ ゾンビバグは「一つの原因」ではなく、複合原因で生きている
  11. ■ そして気づいた:“治るバグ”と“治らないバグ”がある
    1. ● 対症療法=表面的な修正
    2. ● 根治療法=設計の見直し、責任範囲の明確化、暗黙知の排除
  12. ■ じゃあどうやって“根治療法”を実現するのか?
    1. **バグの根本原因は、
  13. 最終章「ゾンビバグをチームから“永遠に”追放する方法」
    1. バグ=誰かのミス
    2. バグ=プロセスの不備
    3. ● 解決策:
    4. ● NG:
    5. ● OK:
    6. ① 症状(ユーザーが見ている現象)
    7. ② 発症タイミング(いつ、どんな操作で)
    8. ③ 寄与しうる要因(コード・仕様・データ)を全列挙
    9. ④ 可能性の高いものに優先順位付け
    10. ⑤ 検証方法(ログ or 実機 or デバッグ)
    11. ⑥ 再発防止策(設計/運用/文化レベル)
  14. ● 対症療法(応急処置)
  15. ● 根治療法(後で必ずやる“原因除去”)
  16. ① 仕様・背景の透明性を最大化する
  17. ② 応急処置と根治療法を徹底的に分ける
  18. ③ バグを「誰かの責任」にしない文化を作る
    1. **文化さえ変えれば、

The Invisible Enemy – 見えない敵の正体

(約3000文字)


起:第一章「バグが“消えたフリ”をする瞬間」

エンジニアを何年かやっていると、必ず遭遇する現象があります。
それは 「直したはずのバグが、数日後にしれっと息を吹き返す」 というホラー映画みたいな出来事。

僕は海外で働き始めてから、この“バグの幽霊現象”に何度も振り回されました。
チームレビューも全部通して、QAも合格して、ユーザーのフィードバックも落ち着いた……はずのバグが、ある日 Slack でピコンと通知を鳴らすんです。

「Hey, we got the same issue again.」
(また同じバグ出てるよ)

あの瞬間の胸のザワッと感。
「え、まさか…?」って、背筋が冷えるあの感覚。

エンジニアなら分かってくれると思うんですが、
直したはずのものが直ってない
これは、普通のミスとはちょっと違う種類のストレスなんですよね。


■ そもそも、なんでバグは“見えない敵”になるのか?

海外で働いてから気づいたことがあります。
日本にいた頃は、僕はバグを“敵”というより“課題”として見ていました。
だけど海外の現場に出ると、言語の壁、文化の違い、レビューのスタイルの差が重なって、バグはもっと立体的なものとして現れます。

バグはただのコードのミスじゃない。

  • 設計の思い込み
  • コミュニケーションのズレ
  • 「書いた本人にしか分からない暗黙知」
  • 過去の暫定対応
  • ドキュメントの不在

こういう**“環境要因”**が合わさることで、バグは姿を変え、時に“見えない敵”になるんです。

特に WPF のように XAML と C# が混在する環境だと、UI とロジックの境界が曖昧なことも多く、「いや、そこで発火するのかよ!」みたいなイベント誘発が原因だったりする。

実際、僕も海外のプロジェクトでこんなことがありました。


■ 実例:原因不明の UI フリーズ事件

あるとき、ユーザーから
「操作すると UI が 1 秒固まる」
という報告が来た。

パフォーマンスログを見ると問題なし。
メモリも CPU も正常。
コードも追ったけど怪しいところがない。

なのに、確かに固まる。

そして翌日、なぜかフリーズが消える。
「直した覚えないのに…?」となる。

でも数日後、また再現する。

この瞬間に悟ったんです。

“あ、これは普通のバグじゃない”
“見えない敵だ” と。

なぜか?
海外チームではこんなことがよく起きるんですよ。

  • 別チームが裏でコードを変更してた
  • Feature flag が知らないうちに ON になってた
  • ローカルのビルド設定が微妙に違っていた
  • スレッド文化が人によって違う(async/await vs Task.Run vs 背景ワーカー)

原因はコード1行じゃなく、
“複数の要素が連鎖して起きている”

だから正体が分からない。
触れると消える。
放置すると現れる。

まさに “Invisible Enemy(見えない敵)”。


■ 海外現場で学んだこと:バグはローカルではなく「文化」から生まれる

日本で働いていたときは「バグ=技術の問題」と思っていました。
でも海外で働くと、考え方が変わります。

バグって、技術よりも“認識のズレ”から生まれる。

例えるなら…

  • 日本 → 丁寧に仕様を固めてから実装する文化
  • 海外 → スピード重視でまず実装する文化

この違いがバグにダイレクトに効いてくる。

また、海外チームは分業が進んでいるため、
「誰がどの部分を触ったのか分からない」という状況も普通。

Pull Request は見ても、
それが別コンポーネントにどう影響するかまでは誰も把握していない。

だから発生するんです。

“自分が作った覚えのないバグ” が。

そして、出たり消えたりする。


■ さらに厄介な現象:“Zombie Bug”(ゾンビバグ)

僕のチームでは、再発バグのことを
Zombie Bug(ゾンビバグ) と呼んでいます。

・完全に倒したと思ったのに蘇る
・倒すたびに違う姿で帰ってくる
・どこから湧いてきたのか分からない

たぶん、あなたも遭遇したことがあるはず。

特に WPF アプリのような状態管理の複雑な UI では、
バインディング・依存プロパティ・イベント・非同期処理など、
“ゾンビ化のトリガー” がそこら中に落ちている。

そして厄介なのは、
ゾンビバグには 伝統的なデバッグ方法が効かない こと。

ログを増やしても、
ブレークポイントを仕掛けても、
再現条件を絞っても、

ゾンビはゾンビ。
倒したフリをしても“また来る”。


■ 実は僕たちは「バグの発生源」を見誤っている?

あるとき、僕はふと思ったんです。
「なぜこんなにバグが再発するのか?」と。

コードが悪い?
レビューが甘い?
設計が雑?

もちろん全部関係あるけど、
それだけじゃない。

もっと根本的な原因がある。
多くのエンジニアが気づいていない、
“見えない問題”が潜んでいる。

実はこれ、
エンジニアリングの世界の外側にヒントがありました。

これは後の章(転)で詳しく話しますが、
ある意外な場所に、
“ゾンビバグを完全に消す方法” のヒント が転がっていたんです。

聞いた瞬間、僕自身びっくりしました。
「え、そこから学ぶの?」と。

ただ、その話をする前に、
まずはゾンビバグがなぜ発生するのか、
そしてなぜ僕たちがそれを“見抜けないのか”。

承では、その深層をさらに掘り下げていきます。

第二章「ゾンビバグはどこから来るのか?」

バグが何度も再発する理由。
これを突き詰めていくと、僕が海外で働く中で本当に痛感した、ある“残酷な真実”に辿り着きます。

それは…

ゾンビバグは、コードの中にいるんじゃない。
チームとプロセスの“隙間”に住んでいる。

ということ。

これに気づけなかったせいで、僕は何度も失敗しました。
直したはずのバグが翌週には息を吹き返し、
「この修正、本当に意味あったのか…?」と心が折れそうになったこともあります。

でも、その正体を知ってからは、
バグとの向き合い方が根本から変わりました。

では、ゾンビバグの巣はどこにあるのか?
実体験ベースで分解していきます。


■ 巣①:「認識のズレ」— みんな同じものを見ていない

海外現場でまず最初に驚いたのは、
“同じ仕様書を見ているのに、全員が別の解釈をしている” という状態が日常的に起きること。

例えば、こんな会話。


● 僕

「このボタンは“保存後に閉じる”動作で合ってる?」

● 海外同僚

「うん、そのつもりだけど、UI から閉じずに次へ進める動線も必要だよね?」

● 僕

「え、それ仕様に書いてた?」

● 海外同僚

「僕の理解ではそう。」


この瞬間、僕は悟った。

仕様とは“文書”じゃなくて、“文化+背景”で理解されるものなんだ、と。

文化も経験も違う人間同士で開発すれば、
当然そこに“認識のズレ”が生まれる。

そしてこの認識のズレこそが、
ゾンビバグ最大の発生源 なんです。


■ 巣②:「一時対応のツケ」— その場しのぎのパッチが未来を蝕む

あなたも経験したことがあるかもしれませんが、
海外チームではスピードが求められることが多い。

結果として、
“とりあえず動くパッチ”が本番に乗ることがしばしばあります。

問題は、そのパッチが
半年後、別の場所で牙をむくということ。

僕のチームではこんなことがありました。


● 事件:半年後に蘇ったデッドロック

ある非同期処理でデッドロックが発生した。

緊急だったので、僕たちは
Task.Run で包んで強引に非同期化するパッチを入れた。

その時は確かに治った。

しかし半年後、別の機能追加の際に、
UI スレッドとバックグラウンドスレッドの競合が発生し、
同じ種類のデッドロックが再発した。

コードを見ると、あの時のパッチが静かに残っている。

あのときは「応急処置」で済ませたつもりだったけど、
それは 未来の爆弾を埋めただけだったんです。

ゾンビが蘇る理由は、
こういう「一時対応の遺産」が積み上がることにある。


■ 巣③:「責任の分散」— 誰の仕事か分からないとバグは生き残る

海外プロジェクトでは分業が進んでいるので、
担当領域が細かく分かれています。

これは効率的なように見えるけれど、
実は大きな罠でもある。

“自分以外がやってくれるだろう”
この心理が、ゾンビバグにエサを与える。

ある時、通知機能のバグが出た。

誰が担当かというと…

  • 通知サービスは Backend チーム
  • UI の表示は Frontend チーム
  • エラーログのパイプラインは DevOps
  • 設計は Product Owner

結果どうなったか?

誰も自分が完全な責任者だと思っていなかった。

だから誰も“根本修正”をしない。
表面上は直っても、本体は残り続ける。

ゾンビバグはこうして息を吹き返す。


■ 巣④:「学習の欠如」— バグの“死因分析”が行われない

海外チームは改善の文化が強いと思っていた。
でも実際は、時間がなければ振り返りはすぐ削られる。

ある大規模な不具合が発生したとき、
僕は「Post-mortem やる?」と聞いた。

すると返ってきた答えは…

“We should, but not this sprint. Too busy.”
(やるべきだけど今スプリントは無理。忙しすぎる。)

この瞬間、僕は気づいた。

“忙しい”はバグを殺す時間を奪い、
ゾンビに変える魔法の言葉だ。

学ばないチームには、
同じ種類のミスがまた起きる。
それだけじゃない。
前回のミスの痕跡がコードに残っている。

結果、ゾンビバグが増殖する。


■ 巣⑤:「状態管理の複雑さ」— 特に WPF はゾンビが湧く

WPF 開発をしているあなたならわかると思います。

WPF は“状態”が複雑すぎる。

  • Binding
  • DependencyProperty
  • ICommand
  • async/await
  • UI スレッド
  • Behavior
  • Trigger
  • MVVM Framework

これらが絡み合って、
「正常に見えるけど裏側で異常が起きている」
という状態がいくらでも発生する。

特に海外チームはみんな書き方が違う。

  • Reactive Extensions を愛するエンジニア
  • 伝統的 MVVM 派
  • Task.Run 乱用派
  • コードビハインド大好き派

文化の融合が、
ゾンビバグのモンスター化を加速させる。


■ ゾンビバグは「コードの問題」ではない

ここまで読んで、
ゾンビバグの本質が少し見えてきたと思う。

ゾンビバグは…

  • 仕様のズレ
  • プロセスの隙間
  • コミュニケーション不足
  • 一時対応の遺産
  • 状態の複雑化
  • 文化の違い

こういった“目に見えない要因”に寄生して生まれる。

つまり、

ゾンビバグはコードではなく
“チームの健康状態”の指標なんです。

これに気づいた時、
僕はバグとの戦い方を大きく変えました。

そして、
ここから物語は「転」に向かっていきます。

次の章では、
僕が実際に海外現場で発見した、
“ゾンビバグを消し去るための、まったく別の視点”
について話します。

あなたが驚くような“意外な分野”から学んだ方法です。

第三章「バグ退治の答えは、まさかの“医学”だった」

ゾンビバグの正体を探る中で、
僕は「コードではない場所にヒントがある」ということに気づきました。

そしてある日、
思いもしないところでその“答え”に出会うことになります。

それは 医学の世界 でした。


■ きっかけは、医師の友人との一言

僕には医者をやっている友人がいて、
久しぶりに会ったときに、仕事の話になった。

僕が「直したはずのバグが再発するんだよ…」と愚痴ったとき、
彼がさらっとこんなことを言ったんです。

「それって、症状だけ治して原因を治してないからじゃない?」

僕は思わず固まりました。

え、何その一言で本質を突くのやめて?
ってレベルで心に刺さった。

医者の世界では当然らしい。

“症状”を抑えるのは対処療法。
“原因”を取り除くのが根治療法。

そして、こうも言われました。

「症状だけ治しても、患者は必ず再発するよ。
本当の原因は、別の臓器や生活習慣にあったりする。」

この瞬間に、
僕の中の点と点がスッとつながったんです。


■ エンジニアリングには“対症療法”が多すぎる

思い返すと、僕たちエンジニアがやっているのは…

  • 表面に出てきたエラーを潰す
  • 再現ログの最後の一点だけを修正する
  • 場当たりで Exception を握りつぶす

つまり、
“症状”にしか手を出していないことが多い。

医師の友人が言った
「根治療法をしなきゃ治らないよ」
という言葉は、そのままゾンビバグに当てはまる。

なぜ再発するのか?
理由はシンプル。


● 症状にパッチを当てても、

原因は体の奥(=コードの奥、設計の奥)に残ったままだから。


■ 医学の“診断プロセス”は、バグ調査にめちゃくちゃ使える

医師は、症状が似ていても
原因が全く違うケースを毎日相手にしているわけですよね。

だからこそ
“原因を絞り込む方法”を体系化している。

このプロセスが、
実はそのままエンジニアリングに応用できる。

例えば、医学ではこんな手順で診断します。


**① 問診(状況把握)

② 検査(再現条件を探す)
③ 鑑別診断(原因の可能性を全部洗い出す)
④ 臨床所見(ログや実機で裏付け)
⑤ 診断確定(根本原因に到達)
⑥ 治療(根治療法と対症療法を分ける)**


これ、よく考えると…

完全にバグ調査プロセスと一致する。

ただ僕たちは普段、“一部” しか使っていない。
ほとんどのエンジニアは…

  • ②の「検査(ログ確認)」だけして
  • いきなり⑥の「治療(修正)」に入る

つまり ③と④を飛ばしている

この“飛ばし”がゾンビバグを生む。


■ 僕が実際に医学式“鑑別診断”を導入してみたら…

医療の鑑別診断では、
症状から推測し得る“全ての可能性”を一度書き出します。

例えば「発熱」という症状でも、

  • 感染症
  • 免疫反応
  • 内臓疾患
  • 血液疾患
  • ストレス反応

…など、原因は多岐にわたる。

エンジニアリングでも同じ。

たとえば「起動時に UI がフリーズする」という症状なら…

  • Heavyな処理がUIスレッドを塞いでいる
  • Bindingの循環参照
  • コンストラクタで非同期処理
  • ViewModelの巨大初期化
  • Dispatcher.Invoke の誤用
  • static なキャッシュがパンパン

医学でいう“原因リスト”のように、
これを全部書き出して、
一つずつ潰していく。

これをやってみた結果、
驚くほど再発が減ったんです。


■ ゾンビバグは「一つの原因」ではなく、複合原因で生きている

医学の世界では
“原因は一つとは限らない”
という前提で治療するらしい。

その考えは、エンジニアリングでも完全に当てはまる。

ゾンビバグって、だいたい…

  • 過去の仮パッチ
  • 新しい仕様変更
  • スレッドの競合
  • データの境界条件
  • チーム間の認識ズレ

こういった複合要因が
スパゲッティ状に絡み合って起きている。

だから単純にコード1行直しても治らない。

医学式のアプローチは、それを見抜く。


■ そして気づいた:“治るバグ”と“治らないバグ”がある

医師の友人が最後に言った言葉が忘れられない。

「治せる原因を消さないと、
患者は一生薬を飲み続けることになるよ。」

この言葉をエンジニアリングに適用するとこうなる。


● 対症療法=表面的な修正

● 根治療法=設計の見直し、責任範囲の明確化、暗黙知の排除


僕は当時、
ゾンビバグが再発するのは「技術力不足」だと思っていた。

でも違った。

根治療法を知らなかっただけだった。


■ じゃあどうやって“根治療法”を実現するのか?

ここで転の最後に、
次の「結」につながる“ヒント”を出して終わりにします。

それは――


**バグの根本原因は、

コードではなく「人」と「プロセス」に潜んでいる。**


医学が原因を“人の生活習慣”まで遡って治療方針を作るように、
エンジニアリングも「チームの習慣」まで見直さないと治らない。

そして次の章では、
僕が海外現場でたどり着いた


“ゾンビバグを完全に封じ込める仕組み”


について詳しく書いていきます。

それは、コードレビューやテストのテクニックではなく、
もっと“根本的”で、
しかも “誰も教えてくれないのに超効果的” な方法です。

最終章「ゾンビバグをチームから“永遠に”追放する方法」

医学の世界にヒントを得て、
僕は「バグを症状ではなく“原因”から治療する必要がある」と気づきました。

そこから、海外現場のプロジェクトに戻り、
本気で “根治療法” を実践していくことになります。

結論からいうと……


ゾンビバグは、正しいプロセスと文化を作れば、本当に消える。


それは魔法でも才能でもなく、
チームが少しだけ行動を変えるだけで実現できる。

ここでは、僕が実際に海外チームで導入し、
再発率を劇的に減らした、超実践的な方法を紹介します。

今日からあなたのチームでも再現できるはずです。


■ Step1:バグを “人の問題” として扱わない

多くのチームで、バグ報告が起きると、
無意識に「誰がやった?」という空気になる。

でもこれが最悪。


バグ=誰かのミス

ではなく

バグ=プロセスの不備


医学の世界で
「この人が病気になったのは本人が悪い」
なんて言わないですよね。

システムのバグだって同じ。

僕のチームでは、最初にこの文化を根付かせた。


● 解決策:

“No blame culture(責任追及しない文化)”を徹底する


するとどうなったか?

エンジニアが
「深刻なバグでも素直に報告できる」
雰囲気が生まれた。

隠す必要がなくなる → 再発する前に捕まえられる

この効果は想像以上に大きかった。


■ Step2:バグを「治療」ではなく「診断」から始める

医学では治療より診断が重要。
エンジニアリングでも同じ。


● NG:

いきなりコードを開いて、いきなり修正する

● OK:

“原因の候補” をすべて書き出す


僕はチームに
医学の“鑑別診断”と同じシートを導入した。

シートの項目は以下の通り。


① 症状(ユーザーが見ている現象)

② 発症タイミング(いつ、どんな操作で)

③ 寄与しうる要因(コード・仕様・データ)を全列挙

④ 可能性の高いものに優先順位付け

⑤ 検証方法(ログ or 実機 or デバッグ)

⑥ 再発防止策(設計/運用/文化レベル)


これを導入するとどうなったか。

  • 「同じバグだと思ったら実は別件」
  • 「コードの深部に潜む本物の原因」
  • 「別機能に隠れていた根っこ」

こういった“見えない原因”が浮かび上がってきた。

つまり
ゾンビバグが隠れていた穴が全部見える化された。


■ Step3:一時対応(対症療法)と根治療法を分ける

医学では、

  • 痛み止め:対症療法
  • 手術:根治療法

と明確に区別する。

エンジニアリングでもこれを導入した。


● 対症療法(応急処置)

  • 急ぎのリリースで必要なパッチ
  • クリティカルバグを止血する暫定ロジック
  • Exception 捕捉で一時的に落ちないようにする

● 根治療法(後で必ずやる“原因除去”)

  • 設計の見直し
  • ViewModel の肥大化解消
  • スレッドモデルの再設計
  • コードビハインドからMVVMに移行
  • 長期的な技術的負債返済

そしてここで重要なのが、


「応急処置のまま本番に放置しない」文化づくり


僕たちは、

  • 応急処置をしたら
  • 必ず翌スプリントの “Root Fix タスク” を作成

というルールにした。

この一歩が
技術的負債の膨張を根本から止める。


■ Step4:仕様の“背景・意図”まで共有する文化を作る

ゾンビバグ最大の原因は、
仕様の誤解・ズレ

特に海外チームは背景が違うから起きやすい。

そこで僕が導入したのが、


仕様レビューでは「目的(Why)」から話す文化


仕様レビューをするときは、

  • 何を作るか(What)
  • どう動くか(How)
    だけでは会議を始めない。

必ず
「なぜそれを必要とするのか(Why)」
から始める。

これを導入すると、

  • 解釈のズレが激減
  • UI と Backend の認識が一致
  • 顧客の意図と実装のギャップが消える

結果的に
バグになる“種”自体が減った。


■ Step5:根治に必要なのは“技術力”より “透明性”だった

ゾンビバグの本質は「チームの隙間」だと話したけど、
その“隙間”は、
実は小さなコミュニケーション不足でできている。

そこで導入したのが、


開発プロセスの“透明性向上”


具体的には:

  • 障害やバグの情報はSlackで「全員が見える場所に自動投稿」
  • デイリースクラムで再発バグは必ず議題にする
  • Pull Request には必ず「なぜその修正にしたか」コメントを書く
  • 仕様議事録を全員がアクセスできる場所に置く
  • 誰がどの機能を理解しているか可視化するスキルマップを作る

すると、
“認識のズレの温床”がどんどん潰れていった。

透明性が高いチームは、
本当の問題が自然に表面化する。


■ Step6:最後に辿り着いた“究極のバグ根絶法”

長くなったけど、
僕が海外チームで何年も戦ってきて辿り着いた結論は、


**ゾンビバグの根源は「人と文化」にあり、

コードはその結果にすぎない。**


だからこそ、
ゾンビバグを永遠に消す方法は、
次の3つに集約される。


① 仕様・背景の透明性を最大化する

(WHY を共有するチームはズレが起きない)

② 応急処置と根治療法を徹底的に分ける

(パッチの遺産を未来に残さない)

③ バグを「誰かの責任」にしない文化を作る

(問題が早く表に出る → 再発前に潰せる)


この3つが揃った瞬間、
本当に、目に見えて再発が消えていった。

昔は
「またあのバグが出た…」
と胃が痛かったのに、

この仕組みをチームで回し始めてからは、

  • 再発率が激減
  • チーム間の衝突が減少
  • コードレビューの質が向上
  • 心理的安全性が高まる
  • 「また出た理由」がすぐに説明できる

開発のストレスが圧倒的に減った。


■ 最後に:あなたのチームにも必ずできる

ゾンビバグとの戦いは、
技術の問題でも、言語の問題でもない。

チーム文化 と プロセス の問題。

日本人エンジニアとして海外で働く中で、
僕はこの事実を全身で思い知らされました。

でも裏を返せば…


**文化さえ変えれば、

どんなチームでもバグは必ず減らせる。**


あなたが今、

  • 再発バグに悩んでいる
  • 理不尽な仕様ズレに疲れている
  • コードの複雑さに押しつぶされそう

そんな状態なら、
この章で紹介した“根治療法”は必ず役に立つ。

ぜひあなたの現場でも試してみてほしい。

コメント

タイトルとURLをコピーしました