"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

オフライン

現代においてWiFiのある作業空間というのはあまりにありふれ、WebエンジニアとしてはWiFiが欠乏した環境で作業をすることは想定することすら難しい。自分がやっている作業のうち、WiFiがない時間の開発は実際には何が困るのか、障壁を軽減するにはどうすればよいかという思考実験をしてみる。

コミュニケーション

Slack, Facebook, メール, LINE,Skypeなど。

同期コミュニケーションの場合

連絡先がわかるのであれば電話する。

非同期コミュニケーションの場合

お互いに待ちが多いのが問題の場合は、待ち時間が少なくなるように資料やテスト、実装の叩き台をなるべく早く共有しておく(Work-In-Progress)。コミュニケーションがとれない時間が長くても齟齬が少なくなるように要件定義の精度を上げる。

タスク管理

オフラインでも使えるタスクリストをつくる(Asanaのモバイルアプリなど)。

メモの保存、書き物

Evernoteを使う。自分の場合はメモにSlackも使うのだが、SlackのMacアプリはオフラインだと機能しないのでモバイルでやる必要がある。ただしオンラインになったときに再送信する必要がある。Kobitoは画像はオフラインで保存できないが、他の場所にあるのであれば実質困ることはあまりないと思う。

過去の資料・メモの閲覧

Evernoteの場合、事前にダウンロードしておく。

作業時間の記録

Togglはオフラインでも一応動く。最悪カレンダーアプリに記録してあとでTogglに移す。

地図の閲覧

慣れていない場所の場合は事前によく調べておく。もしくは紙の地図を入手する(実際にアメリカで運転していてよく知らない場所に迷い込んだとき、ホテルのフロントで地図をもらってなんとか脱出したことがある)。

速報・ニュースの閲覧

リアルタイムで情報を受ける必要性を減らす。ニュースへの依存度を減らす。ニュースの取捨選択をする。

プログラミング

これが滞ると本業が成立しない。

クラウドでの動作に依存している場合

Dockerなどでローカル開発環境を整える。

クラウドへの接続に依存している場合

利用するAPIの挙動をもとに、stubやfixtureを用意する。挙動が明確なAPIを使う。

ドキュメント閲覧が必要な場合

ドキュメントをダウンロードしておく。ライブラリ内のテストを読む。

グーグル検索

こればかりはどうしようもない。検索せずに悶々と過ごす。

音楽ストリーム

音楽を聞くのは集中のためなので、ホワイトノイズと耳栓などで代用する。集中効果の高い音源はダウンロードしておく。

WiFiがないと落ち着かない

慣れと集中の問題。日頃から積極的にWiFiを切断する仕組みを作る。ポモドーロで集中を切断するサイクルを作る(日本のカフェのWiFiは30分/60分程度で切れることが多いので、それに慣れる意味もある)。オフラインになったときにやることのリストをつくる。

時代逆行的なアイデアばかりになったが、常にWiFiに接続しているという状況はある種の甘えを生む。上のような極論的な選択肢を考えておくことで安定して作業できる体になるようにしたい。