猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

タイムマネジメントで重要なことと、「集中」「割り込み」の対処方法(エンジニアのための時間管理術)

『エンジニアのための時間管理術』を読む

この本を読んでまとめます。今回は1章と2章です。

  • 1章 タイムマネジメントの原則
  • 2章 集中と割り込み

エンジニアのための時間管理術

エンジニアのための時間管理術

この本の対象読者

タイトルのようにエンジニア(プログラマ)であることを想定している。

  • エンジニアは、コンピュータリテラシーが高かったり、ツールによる自動化が可能である

ただのプログラマではなく、SA(System Administrator)、つまりシステム管理者を対象としている。

  • 開発業務以外にも様々なタスクをする必要がある

一部はただの開発者でも役に立つ事が書いてあるが、基本的に、「様々なタスクをこなしながら開発を行う」人向けの本といえる。

1章 タイムマネジメントの原則

1章では、タイムマネジメントにおける重要なテーマについて説明しています。例えば、

  • 今取り組んでいることに頭を使い、それ以外のことは外部ストレージを活用する
  • 定期的に行うことに対してはルーチンを定める
  • 習慣やモットーを身につけることにより、事前に決断を下す
  • プロジェクトタイムでは集中力を維持する

などです。以降の章では、これらを詳細に説明しています。

2章 集中と割り込み

システム管理者には「割り込み」が多々発生します。割り込みによって作業の妨害をされないことが重要です。また、作業中は作業に「集中」することが重要です。

マルチタスクにする作業とそうでない作業

これは僕も最近気をつけていますが、「マルチタスクにするべき作業」と「マルチタスクにするべきではない作業」があります。

何でもマルチタスクにしていると、

  • どの作業をどこまでやったか忘れる
  • そもそも裏で実行していることを忘れたる

などのミスを起こしやすいです。

例えば、

  • ビルドは1時間くらいかかるし、ビルドが終わったらその作業は完了なので、ビルドの間に他のタスクをやろう(マルチタスクにする)
  • デプロイは10分くらいかかるけど、終わったらすぐに動作確認が必要で、手順もミスしたらまずいので、デプロイしている間は他のことをやらずに待とう(マルチタスクにしない)

といった判断を僕はしています。

仮想デスクトップを使う

デスクトップが散らかっていると作業に集中できないので、仮想デスクトップを使って「その作業専用の仮想デスクトップ」を作ります。

僕は今まで「切り替えるのが面倒」という理由で、仮想デスクトップを使っていませんでしたが、これからは使ってみようかと思います。

例えば、

  • ブログを書く仮想デスクトップ
  • 仕事の仮想デスクトップ

と分けます。これで「仕事中に突然ブログを書きたくなる」ことがなくなります(あんまりないけど)。

シェルのウィンドウをたくさん開く

これはすでに実践済みなのですが、シェルのウィンドウをたくさん開くのはおすすめです。

例えば、Apacheの設定を書き換えて動作確認するとき、

  • vimを開いて編集するシェル
  • Apacheの再起動をするシェル

の2つを起動しておくと、vimを閉じたり開いたりする手間がなくなります。

顧客からの割り込みが来た場合

「顧客」はお客さんだけではありません。連携している他の開発チームの場合もあります。

例えば、他の開発チームから「このAPI、このレスポンスが足りていないので、追加してもらえますか?」と質問されることがあります。

この時、僕が取りうる選択肢は3つです。

  • 誰かにお願いする
  • バックログなどにタスクとして積む
  • 今すぐやる

「今すぐやる」

  • この選択肢は、よほどのことでない限り取りません
    • システムダウン等の緊急事態の時
    • バックログにするよりすぐできる時
  • 「今すぐやる」と集中力が失われたり、元の作業に戻るのが大変になるためです

「誰かにお願いする」

  • Slack等を使っている場合、自分がやらなくても誰かがやってくれることもあります
  • 自分以外の誰かがやる場合、顧客に「誰がやってくれるのか」明確に伝えておくことが重要です
    • これを伝えないと、次回また僕のところに問い合わせが来ます
    • これを伝えることで、「対応してくれてる感」が出ます

「バックログなどにタスクとして積む」

  • 「このようにバックログに積んでおいたので、後で調査します」と伝える

3つの選択肢を説明しましたが、いずれの場合も、相手に伝えることで「無視していないよ」とアピールすることが大事です。顧客が信頼を失うのは、「無視したとき」ではなく、「無視されたと感じた時」だからです。

また、「誰かに頼む」「バックログにする」「すぐやる」いずれの場合も、これをした直後に、自分の脳内からこのタスクを消し去っても問題無いようにします。作業に集中できます。

間違っても「バックログに起こすのは面倒だから、覚えておいて後でやろう」と考えてはいけません。「忘れる」か「覚えておくことに気を取られて集中できない」のどちらかになります。

まとめ

2章はすでに実践していることが多かったのですが、仮想デスクトップだけは実践していなかったので、まずはこれを実践していく予定です。

次回は「定型的タスクのルーチン化」について学びます。

www.utakata.work