SEはタイムマネジメントに優れている!?
こんにちは。
システムエンジニアのtomoです。
この業界で仕事をしている人にはあるあるネタかもしれませんが、結構な頻度で不可能なスケジュールで仕事を振られたりします。
どんなに頭で見積もっても1か月以上かかる仕事を1週間で完了させろとか上司は平気でのたまうのです。
そんなときシステムエンジニアはなぜかYesと言ってしまうのです。
なぜなら彼らには自分の技術力なら何とかなるという根拠のないプライドがあるのです。
つまりNoということは自分の能力を否定しているに等しいため、よっぽどことがない限りは仕事を断りません。しかもほとんどの場合、彼らは無理なスケジュールにも関わらずやりきってしまうのです。
僕もそういう意味では同じです。
今回はそんな無理なスケジュールを振られた場合のタイムマネジメント術を紹介します。
①超詳細なTODOリストを作る
まずはじめに計画を立てます。
そりゃ当たり前だろと思う方も多いでしょうが、意外と超具体化されたTODOレベルまで考えきれている人は少ないはずです。
では僕の場合、どこまで詳細なTODOを考えているかと言うと、たとえばAという機能の設計書を書く際は・・・
・要件定義書の読み込み(30min)
・上記をもとに機能の概要を洗い出す(30min)
・機能に必要な技術、不明な点を洗い出す(30min)
→ここでおそらく詰まるので上司にヒアリング(10min)
・ヒアリング結果をもとに設計書のドラフトを完成させる(30min)
・ドラフトをもとに詳細な設計書を書く
→①修正に必要な方針を記載する(10min)
→②方針をもとに詳細設計を文章化する(20min)
以上のようになります。
多くのエンジニアはこの作業を単に「設計書を作成する」といったTODOリストにしかしないでしょうが、経験が浅いうちにや時間が迫っている場合はすべての作業とリスクを見極めておく必要があります。
特にここでのポイントは上司にヒアリングが必要な部分が出てくることを想定していることです。こうすることであらかじめ上司の予定を抑えておくことができます。
これにより無駄な外的要素を極力排除できるので、仕事がスムーズに進みます。
②時間のかかる作業はできるだけ自動化する
システムエンジニアの思考回路のひとつとして単調な作業を避けるというものがあります。先ほどの詳細なTODOを作成した段階で単調な作業となるのがあらかじめわかったら、効率的にその作業を進めるにはどうすればいいか考えます。
例えば、以前ものすごい量のデータをまとめる作業を担当した時がありました。
ファイル数にすると1000ファイル以上の中から、一部のデータを集めてExcelにまとめるという作業です。
もちろん、ひとつひとつファイルを開いて必要な部分をコピペするといった無駄なことはしませんでした。この際に実施したのは持ち前のプログラミング力を生かして必要なデータを集めてExcelに貼り付けるツールを作成しました。
そのおかげで寝る前に上記のツールを実行して、朝起きたらまとまったドキュメントが完成していました。時間でいうと10分の1くらいの作業量になったはずです。
上記のようなツールを作るのは実はとても簡単なのです。
具体的なプログラミングでツールを作る方法は別途紹介します。
③新しい技術を利用する
時間を効率化するにあたり、新しい技術を用いることはかなり有効な手段です。
例えば、パソコンで作業する場合に携帯電話では当たり前となった予測変換を使って作業している人はどれだけいるでしょうか。
また過去にコピーした文字列をクリップボードに複数保存しておけるソフトも無料でインストールすることができます。
こうした技術を使うことでちょっとした作業の効率化をはかることができます。
以前はできなかったことでも、時代はどんどん進んでいるので常に情報を集めておくと仕事のスピードは加速します。
この効率化ソフトについても別途紹介したいなと思います。