集中できてる時間、1日2時間しかなかった話|リモートワーク5年目が4ヶ月で試したこと
「なんか最近コード書けてない」と感じたことありませんか?作業ログを取ったら深集中が1日2.1時間しかなかった現実から、4ヶ月かけて4.2時間に伸ばすまでの試行錯誤を正直に書きます。
去年の末くらいに「なんか最近コード書けてる時間が減ったな」と気になって、作業ログを振り返ったら愕然とした。1日8時間勤務のうち、本当に集中してコードを書けていた時間が平均2.1時間しかなかった。残りは会議・Slack・なんとなくブラウザを漂流・急に始まる家事という状況で、これはさすがにまずいと思って本気で環境を見直すことにした。
リモートワーク自体はもう5年目なんだけど、正直「慣れたからそれでいい」と思っていた部分が多くて、自分の集中環境をちゃんと設計していなかった。去年書いた「リモートワーク5年目、気づいたら集中できない環境を自分で作ってた話」でも触れたけど、環境の問題を放置し続けた結果がこの2.1時間だった。
今年に入ってから約4ヶ月、いくつかのテクニックを実際に試してみた。「本当に効いたもの」と「思ったより微妙だったもの」を正直に書いていく。
作業ログを取って現実を直視するところから
何かを改善しようとするとき、まずデータが必要という考えはエンジニアなら当然持っているはずなのに、自分の働き方に対してはまったくできていなかった。というわけで最初にやったのは時間の計測だ。
使ったのはToggl Trackと、最近話題のReclaim.ai(2026年版のAIスケジューラー)の組み合わせ。Reclaim.aiはGoogleカレンダーと連携して、集中作業ブロックを自動でスケジューリングしてくれる。会議の合間の断片的な空き時間に「Focus Time」を自動で確保してくれるのが地味に便利だった。
まず1週間ログを取って可視化してみた結果がこれ。
xychart-beta
title "1日の時間配分(計測前 vs 改善後)"
x-axis ["深集中", "浅集中", "会議", "Slack/メール", "雑務・その他"]
y-axis "時間(h)" 0 --> 5
bar [2.1, 1.4, 2.0, 1.8, 0.7]
bar [4.2, 1.5, 1.8, 0.8, 0.2]
「深集中」(フロー状態でコーディングできている時間)が2.1時間から4.2時間に伸びた。これが4ヶ月かけて到達した今の数値だ。まだ完璧には程遠いけど、体感的には全然違う。
タイムブロッキング × AI自動スケジューリングの組み合わせ
一番効いたのはタイムブロッキングだった。ただ、従来の「手動でカレンダーに集中ブロックを入れる」方式は続かなかった。会議が入るたびにブロックを動かして、その作業自体がストレスになる。そこでReclaim.aiに任せることにした。
設定はこんな感じ。
# Reclaim.ai 設定(概念的な表現)
habits:
- name: "Deep Work"
duration: 120min
priority: high
constraints:
time_of_day: "09:00-12:00" # 午前中を優先
min_sessions_per_week: 5
- name: "Shallow Work / Review"
duration: 60min
priority: medium
constraints:
time_of_day: "14:00-16:00"
meeting_preferences:
no_meetings_before: "10:00" # 朝イチは死守
buffer_between_meetings: 15min
focus_time_protection: true
このツールの何がいいかというと、チームメンバーが会議を入れようとしても「このエンジニアはこの時間は集中ブロック中」とカレンダー上で分かるようになっている点だ。うちのチームでは徐々に「午前中は集中ブロック、午後に会議」という文化が広まってきた。チームの意識変容って本当に大事で、これはエンジニア向けコミュニケーションツール比較の記事でも書いたけど、ツールだけじゃなくてチームの合意がないと機能しない。
正直、最初の2週間は「AIが入れたブロックを自分で動かす」という本末転倒なことをやっていた。徐々に「ブロックを守る」意識が育ってきたのは3週目くらいから。習慣って時間がかかるんだなと実感した。
Slack・通知の設計を根本的に見直した
集中を邪魔する最大の敵はSlackだと痛感している。でも「Slackを切ればいい」という単純な話でもなくて、チームで使っている以上は反応時間の合意が必要だ。個人でDNDを設定するだけだと、「なんであいつ返事しないんだ」という摩擦が生まれる。
実際に導入したのは通知スケジューリングとステータスの明示の組み合わせ。1日の流れはこんなイメージ。
09:00-11:00 Slackを完全ミュート + ステータス「Deep Work 🎯」
11:00-11:15 バッファタイム(通知確認・返信)
11:15-12:00 集中継続
12:00-13:00 ランチ + Slack確認
13:00-15:00 比較的ライトな作業(PRレビュー等)
15:00-15:30 Slack集中確認タイム
15:30-17:00 集中作業 or 会議
Slackのステータスを自動更新するのにAlfred(Mac)のワークフローを使っている。「deep」とタイプするだけでステータスが「深集中中 🎯 11時まで返信遅れます」に変わる仕組みを作った。シンプルだけど、チームへの透明性が確保されるのでかなりストレスが減った。
またcron的に動くシェルスクリプトでSlack DND(Do Not Disturb)を自動オン・オフする方法も試した。
#!/bin/bash
# Slack DND 自動制御スクリプト
# crontab: 0 9 * * 1-5 /path/to/slack-dnd-on.sh
SLACK_TOKEN="xoxp-your-token-here"
DND_DURATION=120 # 分
curl -s -X POST "https://slack.com/api/dnd.setSnooze" \
-H "Authorization: Bearer ${SLACK_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"num_minutes\": ${DND_DURATION}}" \
| jq '.ok'
echo "[$(date)] DND enabled for ${DND_DURATION} minutes" >> ~/logs/slack-dnd.log
これは正直まだ運用中で、Slackのトークン管理が少し面倒。セキュリティ的にも適切なスコープ設定が必要なので、導入する人は気をつけてほしい。
環境設計:音・照明・物理スペースの話
「在宅勤務の騒音対策」については以前の記事「在宅勤務の騒音対策完全ガイド」で詳しく書いたので重複は避けるけど、今回改めて取り組んで気づいたのは照明の重要性だ。個人的には「照明なんて明るければいいでしょ」と舐めていたんだけど、変えてみたら想像以上に変化があった。
2026年に入って試しているのはサーカディアンリズム対応の照明制御。昼間は高色温度(5500-6500K)、夕方に向けて低色温度(2700-3000K)に自動で変化させる。Matter対応のスマート電球とHome Assistantで制御している。
flowchart LR
A["☀️ 9:00
6500K・800lm
(集中モード)"] --> B["🌤️ 13:00
5000K・600lm
(標準)"] --> C["🌆 17:00
3500K・400lm
(落ち着き)"] --> D["🌙 20:00
2700K・200lm
(休息)"]
導入して2ヶ月だけど、夕方の集中力の落ち方が以前より緩やかになった気がする。ただ、これはプラセボかもしれないので「気がする」程度の話として受け取ってほしい。数値的な検証はまだちゃんとできていない。
ノイズキャンセリングについては、Sony WH-1000XM6(2026年春モデル)に変えた。前モデルより風切り音のノイズキャンセリング精度が上がっていて、エアコンの音がほぼ消えるのは地味に助かっている。
ポモドーロ・インターバル法の2026年版アレンジ
正直、昔ながらのポモドーロ(25分+5分)は自分には合わなかった。25分だとフロー状態に入りかけたところで強制中断になって、むしろ集中が途切れる感覚があった。「なんで自分はポモドーロが続かないんだろう」と思っていたけど、単純にサイクルが合っていなかっただけだった。
今やっているのは**「90分+15分」のウルトラディアンリズム式**だ。人間の集中サイクルは約90分という研究(スリープサイエンスの分野でも言われている)に則って、90分集中・15分完全休憩を繰り返す。
| 方式 | 集中時間 | 休憩時間 | 向いている人 |
|---|---|---|---|
| 従来ポモドーロ | 25分 | 5分 | タスク切り替えが多い人 |
| ショートサイクル | 45分 | 10分 | 集中維持が苦手な人 |
| ウルトラディアン | 90分 | 15〜20分 | フロー状態に入りやすい人 |
| フリーフロー | 制限なし | 疲れたら | 自己管理できる上級者向け |
90分式に変えてから「途中で強制停止された感」がなくなって、休憩後の再開もスムーズになった。ここは好みが分かれると思うので、自分のリズムに合った方法を探るのが一番大事だと思う。
15分の休憩には必ず離席するルールを設けた。スマホを見ながら椅子に座ったままだと全然回復しない。軽いストレッチかベランダに出て遠くを見るのが効果的で、エンジニアの昼寝術の記事で書いた10〜20分仮眠も組み合わせると午後の集中力が別物になる。
ツール・環境まとめと実測値
4ヶ月間で試したツールと効果をまとめるとこんな感じ。まず主観的な効果スコアのグラフを見てほしい。
xychart-beta
title "各施策の集中時間への貢献度(主観評価 10点満点)"
x-axis ["タイムブロック", "Slack通知制御", "90分サイクル", "照明制御", "ノイキャン強化"]
y-axis "効果スコア" 0 --> 10
bar [9, 8, 7, 5, 6]
コスト面も含めて整理するとこうなる。
| ツール/手法 | コスト | 効果 | 導入難易度 |
|---|---|---|---|
| Reclaim.ai | $10/月 | ★★★★★ | 低 |
| Slack DND自動化 | 無料 | ★★★★☆ | 中 |
| 90分ウルトラディアン | 無料 | ★★★★☆ | 低 |
| サーカディアン照明 | 初期3万円〜 | ★★★☆☆ | 高 |
| Sony WH-1000XM6 | 5万円 | ★★★☆☆ | 低 |
コスパで考えると、Reclaim.aiとSlack DND自動化が圧倒的に費用対効果が高い。照明は投資に見合う効果かはまだ正直判断できていない段階だ。
皆さんはどんな方法で集中時間を確保していますか?特に「会議が多いチームでどうタイムブロックを守るか」は未だに悩んでいて、もっといい方法があれば教えてほしい。
まとめ
4ヶ月の試行錯誤で得た知見を整理するとこんな感じ。
1. まず現状を計測する Toggl TrackやReclaim.aiで実際の作業ログを取って、何に時間が奪われているか可視化することが出発点。感覚で「集中できていない」と思っているより、数字で見たときのショックの方が改善モチベーションになる。
2. タイムブロッキングはAIに任せる 手動でブロックを管理すると、その管理作業自体がコストになる。Reclaim.aiのようなAIスケジューラーで自動化して、守ることに集中したほうがいい。
3. Slack通知の設計はチームの合意とセット 個人でDNDを設定するだけでなく、「何時間以内に返信する」という合意をチームで作ることが重要。ツールだけで解決しようとすると摩擦が生まれる。
4. 集中サイクルは25分じゃなくてもいい 90分ウルトラディアン式のほうが自分には合っていた。ポモドーロが合わない人は別のサイクルを試してみる価値がある。
5. 環境改善は地道に積み上げるもの 一気に全部変えようとせず、1つ試して効果を確認→次へ、というサイクルが続きやすい。
次のアクションとして、まず1週間だけToggl Trackで作業ログを取ることをおすすめしたい。「自分の集中時間が実は2時間しかない」という現実を直視するところから、改善は始まる。