996から効率的な仕事へ:あるプログラマーの集中力改造の道
去年の10月、私はリストラ寸前でした。
技術力が足りないわけではありません。Java開発8年の経験があり、アーキテクチャ設計も問題ありません。問題は、期限内にタスクを完了できないことでした。朝9時に出社して夜11時まで働いても、本当に効率的な作業時間は3時間以下でした。
上司に呼ばれた日のことをはっきり覚えています。「君は努力家だが、効率が低すぎる。」
その夜、地下鉄でストループ効果についての記事を見つけました。著者は、注意力は筋肉のようにトレーニングできると言っていました。ダメ元でやってみようと思いました。
私の問題は何だったのか?
後になってわかりました。私は怠け者ではなく、注意力がコントロール不能だったのです。
典型的な1日はこんな感じでした。IDEを開いてコードを書こうとすると、DingTalkにメッセージが来て、クリックして返信。返信し終わると昨日のバグをまだ見ていないことを思い出し、JIRAを開く。途中でプロダクトマネージャーが要件を聞きに来る。話し終わるともう11時、コードは1行も書いていません。
聞き覚えがありませんか?
実験をしてみました。ポモドーロテクニックで1日に何回中断されるか記録したのです。結果にショックを受けました。平均8分に1回です。研究によると、プログラマーは中断された後、集中状態に戻るまで平均23分かかるそうです。
仕事が終わらないのも当然です。私は本当の意味で「始めて」すらいなかったのです。
意外な発見
試しに、毎朝10分間ストループテストをやり始めました。
最初のテストで、反応時間は1.8秒、エラー率22%。サイトは「注意力が著しく散漫」なレベルと表示しました。正直、ショックでした。
しかし1週間続けた後、魔法のようなことが起こりました。
その金曜日、複雑な並行処理のバグを修正しなければなりませんでした。以前ならこんな問題に少なくとも2日かかり、しばしばここを直すとあそこが壊れるという状態でした。しかしその日、3時間ぶっ通しでコードを書き、一度もスマホを見ませんでした。午後4時、バグは修正され、すべてのテストが通りました。
同僚の小張が言いました。「強さん、今日は調子いいね。」
自分でも信じられませんでした。
3ヶ月の改造計画
この成功に励まされ、体系的なトレーニング計画を立てました。「21日で人生が変わる」的な自己啓発ではなく、認知科学に基づいた方法です。
1ヶ月目:基礎を築く
毎朝8時半、デスクで5分間ストループテストをしました。最初は同僚に「赤、青、緑」と画面に向かって言っているのを変だと思われました。
しかし効果は明らかでした。最初の週で、平均反応時間が1.8秒から1.5秒に下がりました。さらに重要なのは、テスト後の1-2時間が1日で最も集中できる時間だとわかったことです。
そこで作業スケジュールを調整し、最も難しいタスクを午前9時から11時に入れました。この時間帯は通知をすべてオフにし、スマホは機内モードです。
一度、プロダクトマネージャーが10時に来ましたが、ノイズキャンセリングヘッドホンをつけてコーディングしている私を見て、黙って立ち去りました。後で「すごく集中してたから邪魔したくなかった」と言われました。
2ヶ月目:トレーニングをアップグレード
ストループテストだけでは足りませんでした。「認知負荷トレーニング」を試し始めました。
どういう意味か? わざと邪魔のある環境で作業するのです。例えば、カフェでコーディングしたり、音楽をかけながらコードレビューをしたり。最初は辛かったですが、徐々に妨害への抵抗力が強くなりました。
ある水曜日の午後、隣のチームが技術的解決策について激しく議論していて、とても騒がしかったです。以前なら絶対にコードが書けなかったでしょうが、その日は決済モジュール全体を書き上げ、以前のひどいコードまでリファクタリングしました。
別のテクニックも発見しました。異なるタイプのタスクに異なるプログラミング言語を使うのです。ビジネスロジックはJava、データ処理はPython、並行処理はGo。この切り替え自体が認知トレーニングになり、脳を柔軟に保ちます。
3ヶ月目:システムを形成
この時点で、ストループテストのスコアは0.9秒前後で安定し、エラー率は5%以下でした。しかし最大の収穫は、自分に合った仕事のリズムを見つけたことです。
1日を4つの時間ブロックに分けました。
午前9-11時:深い作業、コアコードを書く 午前11-12時:メールとメッセージを処理 午後2-4時:コードレビューとペアプログラミング 午後4-6時:新技術の学習やドキュメント作成
各時間ブロックの間に、2分間の「認知リセット」をします。ストループ問題をいくつかやるか、簡単な瞑想です。
最も魔法のようなのは、残業が必要なくなったことです。以前は徹夜で完成させていた機能が、今は午後には終わります。
実用的なテクニック
この3ヶ月で、プログラマー専用の注意力テクニックをまとめました。
デュアルスクリーン作業法: メインスクリーンでコーディング、サブスクリーンはドキュメントのみ。サブスクリーンでチャットソフトは絶対に開かない。これで少なくとも50%の気が散るのを防げます。
コンパイル時間トレーニング: コードのコンパイル中、スマホを見ずにストループテスト10問をやる。時間も無駄にせず、集中状態も保てます。
デバッグ集中法: デバッグ前に30秒深呼吸し、それから一気に問題の説明を書き下す。これで思考が整理され、やみくもな修正を防げます。
レビュー間隔リセット: コードレビューは注意力を大量に消費します。各PR後に立ち上がって2分歩くか、窓の外を見る。脳にはこの短い空白時間が必要です。
意外な収穫
集中力の向上は仕事の効率だけでなく、他にも恩恵をもたらしました。
今は運動する時間があります。毎日18時に退社して、会社の下のジムでランニング。3ヶ月で4kg痩せ、精神状態が以前よりずっと良くなりました。
技術ブログを再開しました。以前は時間がないと言っていましたが、今は週に1-2記事書けます。先月のGolang並行処理の記事はJuejinのホットランキングに入りました。
最も重要なのは、コーディングの楽しさを取り戻したことです。集中して問題を解決できる時のフロー感覚は、本当に中毒性があります。
先週金曜日、認証モジュール全体を一気にリファクタリングし、コード量を40%削減、パフォーマンスを3倍向上させました。CTOがコードレビューで「これまで見た中で最もエレガントな実装だ」と言いました。
あなたへのアドバイス
同じような悩みがあるなら、私のアドバイスは:
- まず自分のベースラインを測定する。どんなに悪くても、それは出発点に過ぎない。
- 1日5分から始める。欲張らず、継続が鍵。
- 自分のゴールデンタイムを見つける。私は朝型、あなたは夜型かもしれない。
- 儀式を作る。深い作業を始める前にコーヒーを淹れる、これは脳へのシグナル。
- 進歩を記録する。Excelで毎日のテスト成績と仕事の生産性を記録、進歩曲線を見ると達成感がある。
3ヶ月後の振り返り
昨日でトレーニング開始からちょうど3ヶ月でした。データを比較してみました。
10月(トレーニング前):
- 1日の平均有効作業時間: 2.8時間
- 完了したストーリーポイント: 13
- バグ率: 8.2%
- 残業日数: 22日
1月(トレーニング後):
- 1日の平均有効作業時間: 5.5時間
- 完了したストーリーポイント: 31
- バグ率: 2.1%
- 残業日数: 2日
年末の業績評価でCからAに上がりました。年末ボーナスが倍になっただけでなく、昇進の機会も得ました。
しかし私にとって最も重要なのは、生活の質の向上です。彼女と映画を見る時間ができ、週末に登山に行けるようになり、夜は明日の締め切りに焦らず安心して眠れるようになりました。
効率的な仕事の秘訣は、もっと頑張ることではなく、もっと集中することだったのです。
最後に
先月、私の効率が低いと言った上司がまた呼びました。今回は「君の方法をチームでシェアできないか?」と言いました。
笑いました。3ヶ月前にリストラ寸前だった人が、今や効率のお手本です。
変化は本当に難しくありません。必要なのは魔法の方法ではなく、科学的なトレーニングと少しの継続です。
もしあなたも試したいなら、このストループテストから始められます。覚えておいてください、今のあなたがどんなに下手でも重要ではありません。重要なのは3ヶ月後にどれだけ強くなっているかです。
コードが常にリファクタリングを必要とするように、私たちの脳も継続的な最適化が必要です。違いは、あなたが始める準備ができているかどうかだけです。
そうそう、今日は金曜日、18時にジムに行きます。あなたは? まだ残業ですか?