NTTドコモ様_dカーシェア
NTTドコモ様_dカーシェア
2017.06.05
#61
それいけ!フロントエンド

Webエンジニアが考えた絶対に寝坊しない4つの対策。信頼性設計を身近な課題に応用しよう

ほりでー

こんにちは。フロントエンドエンジニアのほりでーです。

これは本当に恥ずかしい思い出なのですが、21歳の頃、私が社会人になって初めて上司に怒られた原因は寝坊による遅刻でした。それ以来、自分なりに色々な方法を編み出して対策してきましたが、その対策がかなり安定してきた為、記事としてご紹介します。

 

努力に頼らずシステムとして考える

人間というものは、どんなに強い決意のもと頑張ろうとしても、結局はその日の気分に流されてしまうものです。ミスの発生率を努力や頑張りによって0%に近づけることはできますが、決して完全な0%にはできません

それはシステムの設計をするときにも同様です。ユーザーのオペレーションには常に間違いや勘違いのリスクがあり、研修の徹底やユーザーインタフェースの改善をがんばったとしても、そのリスクを絶対にゼロにはできません。それではどうすれば良いかというと、はじめから間違いが起こる前提でシステムを設計し、それが致命的な結果にならないようにあらかじめ対策を施しておくのです。

究極の寝坊対策

基本的に、寝坊の根本的な対策は「早く寝る」「目覚ましをかける」「二度寝しない」の3つだと考えられますが、それを努力だけで対策できるなら苦労しません。経験的に、寝坊のきっかけは何らかの例外(エラー)で引き起こされます。

  • たまたま夜中に始めたプログラミングが面白くて止められず、結局深夜まで夜更かししてしまう
  • 遅い飲み会のあとに酔っ払って帰宅し、目覚しをかけずにベッドに倒れこんでしまう
  • 部屋が寒いので起床後に布団から出られず、いつのまにか二度寝してしまう

こういった例外は起きないに越したことはありませんが、絶対に無くすことは不可能です。むしろ、こういった状況でもどうにか寝坊せずに済むための仕組み作りこそ必要だと言えるでしょう。具体的には以下のような対策を行っています。

  1. 睡眠の質を改善して、時間あたりの睡眠効率を高める
  2. 起床から外出までの所要時間を必要最小限にする
  3. 複数の手段で目覚ましを実装、運用を自動化する
  4. 職場に近い場所に住む

1. 睡眠の質を改善して、時間あたりの睡眠効率を高める

時間あたりの睡眠の質を改善すれば、より短い時間でも睡眠の効果を高められます。私が導入してとても効果が高かったのは、ちょっと値段が高くて圧迫感のないアイマスクです。

電子機器のLEDランプ・窓外からの明かり・手元のスマートフォンの画面をシャットアウトし、寝付きの良さが改善されます

2. 起床から出勤までの所要時間を必要最小限に

朝やらなければならないタスクを最適化し、ギリギリの起床でもすぐに外出できるようにします。これは少しでも睡眠時間を長くできることにも繋がります。具体的には

  • 普段着るもののセットを決まった場所へハンガーでかけておく
  • 肌着は前日就寝前に着替えておく
  • 何も考えなくても必要最低限のみだしなみが成立するように構成しておく

といった対策をしています。なお、この部分の要件を詰め過ぎると変人のレッテルを貼られてしまうので注意しましょう。ちなみに、私は起床してから5分あれば出社できるように対策しています。

3. 複数の手段で目覚ましを実装、運用を自動化

アラームアプリによる実装

最もシステム化のメリットが大きいのは目覚しの運用です。

まず、1週間の動作をプログラムできる目覚ましアプリを導入し、家に余っていた古いiPadを目覚し専用機としてベッドサイドへ常設しました。もちろん、普段使いのスマートフォン/タブレットと常設機が同時に充電できるよう、ソケット数の多い大型のUSB充電器も導入します。これにより、目覚ましのかけ忘れ自体が起こりえないようにしています

このアラームは複数回のタイミングで動作するように設定し、万が一二度寝した場合でも起床のチャンスがあるようにもしています。

これだけでも十分に思えます。しかし、実際のところ祝日休みのために一時的に解除したままになってしまったり、ソフトウェアアップデートの適用でアプリが落ちてしまう可能性もあるため、対策としては不十分です。そこで、第2・第3の対策も講じます。

睡眠分析アプリによる実装

普段使いのスマートフォンへ「Sleep Cycle」などの、手動でセットするレム睡眠分析型の目覚ましアプリを導入します。この種類のアプリは睡眠中の寝返りの分析からユーザーのレム睡眠/ノンレム睡眠の間隔を学習し、最も目覚めやすいタイミングで起床を促してくれる機能を持っています。

自動点灯式ライトによる実装

聴覚だけに訴える実装だけではまだ不安があります。そこで、目覚ましと同様、1週間の動作を予約できるプログラムタイマー式コンセントを導入し、ベッドサイドのフロアライトが起床時間の30分前から自動で点灯し、出社予定時間の5分前に消灯するようにしました。窓から太陽光が部屋に入るようにしても良いのですが、曇天時なども考えるとこちらの方が確実です。

消灯のタイミングは、自分が安全に出社できる最後のタイミングであることも示しているので、布団から抜け出す合図にもなっています。

(前述のアイマスクの使用と矛盾しているように思われるかもしれませんが、いくらアイマスクをしていても近くでライトが付けば光が感じられるので効果はあります。一旦起床したあとの二度寝防止にも効果ありです。)

この製品は単なるコンセントなので、扇風機を繋いで顔の近くに置いたりなどの応用もできますね!

エアコンによる実装

冬季は布団の中と外気温の差が大きな二度寝リスクの原因となります。これについても、プログラムタイマー式の赤外線リモコン端末を導入し、起床の30分前から自動で部屋の温度を温めるように設定しています。布団の中と部屋の温度差がなくなると、冬でも布団から抜け出しやすくなります。もちろん家を出る時間になると自動で停止するため、消し忘れることもありません。

4. 職場に近い場所に住む

住環境自体を変えてしまうのもとても強力な施策です。職場まで2時間近くかかる環境より30分で着ける環境の方が明らかに有利で、往復を考えれば後者の方が3時間も多く睡眠時間を確保できることになります

3時間というのはレム睡眠/ノンレム睡眠の1サイクルにも相当する違いなので、このことが心身の健康や寝坊のしにくさに寄与する投資効果はかなり大きいと考えています。

東京でもうまく路線や地域を選択すれば、そこそこ安くて都心に近い物件や、距離的には遠くても鉄道アクセスの良い町が見つかります。

信頼性設計の概念

このような、システムの耐障害性(不具合があったときにどれだけ安定を維持できるか)を考える際には「信頼性設計」という言葉がよく出てきます。今回ご紹介した対策も信頼性設計の概念を応用したものと言えるでしょう。

フール・プルーフ(fool proof)

ユーザー(この場合は私のことです)が愚かな行動をとりえることを想定して対策することをフール・プルーフ(fool proof)と言います。翌日仕事があるのに夜中の4時まで自分の作業に熱中したり、一度起きたのに二度寝してしまうのは愚かな行動です。しかし、現実に発生する可能性がある以上は対策が必要になります

フォールト・トレランス(fault tolerance)

また、プログラムタイマー式の目覚ましと手動設定方式の目覚ましを複数個併用するのはフォールト・トレランス(fault tolerance)と言えます。フォールトトレンランスは、システムの一部に障害(この場合は何らかの原因で自動タイマーが動作しなかったり、手動目覚ましをかけ忘れることなどが想定できます)が発生しても、システム全体の停止までには至らないような設計を差しています。この例では聴覚、視覚に訴える複数の方法が用意されているため、どれか1つでも機能すれば、寝坊せずに起床できる可能性が残されているのです

フォールト・アボイダンス(fault avoidance)

通勤時間の短縮や、起床〜出勤時間の短縮はフォールト・アボイダンス(fault avoidance)的です。フォールトアボイダンスは、細かい構成要素の品質を高めるなどして、障害の発生そのものを回避する設計を差します。この例では、従来の起床時間では回避できなかった遅刻が、起床後の必要時間の短縮によって遅刻ではなくなる訳です

寝坊しない仕組みを作ろう

どんなに人と違った人生を歩もうとしても、ほとんどの場合人間の生活は同じことの反復によって構成されています。自分の生活をシステムとして捉え、ルーチンワークを改善し、よりクリエイティブな活動に注力しましょう!