スキップしてメイン コンテンツに移動

スプレッドシートでタスク管理

元ネタはJoel on Softwareですが、ここ数カ月バイト先での仕事のタスクをスプレッドシートにまとめて管理する作業を継続しています。

やることは単純で、朝仕事始める前に今日やるべきタスクを一通り書き出して、
要するであろう時間を適当に見積もって書き連ねていくだけです。


人によって使いやすい形などあると思いますが、必要最小限な列は

タスク名、詳細、最初に見積もった所要時間、修正した所要時間、既にそのタスクにかけた時間

といったところです。
後、タスクを書き連ねた行の最後にSumで合計した合計所要時間等あれば十分だと思います。

修正した所要時間というのは、
最初の見積もりでは予想できなかったタスクが増えたり、逆に予想より簡単に終わりそうで、必要な時間を減らせそうだといった時に所要時間を修正する列になります。
ので、最初は最初に見積もった所要時間と同じにし、
予想外の尺にならなそうだと感じた時に適宜修正していきます。

最終的に修正した所要時間と既にそのタスクにかけた時間が等しくなって完了となります。


このタスク管理の良いところは、まず手軽にできるところ。

最初にやることは、頭の中にもやもやと浮かんでいるタスクをとりあえずもりもりと書き出し、
その後それぞれのタスクで実際にやる作業を多少こまかく詳細に分割、
最後に「このくらいあれば終わるだろう。」くらいの気持ちで適当に所要時間を見積もって書き込んでおきます。
別に人に見せるような書類ではないので、気軽に書きます。

以上。どんなに長くかかったとしても30分くらいで出来る作業です。

しかしこれだけでも、今までの経験から大まかに予測された合計時間が目で確認でき、
明らかに勤務時間に対して所要時間が多すぎれば、優先順位をつけてどれから終わらすべきか整理できます。

整理できるというのは結構重要。
自分はものすごい忘れっぽい性質なため、
「あ、これやっておかなきゃなーまぁすぐ終わるから後でやっとくかー」とか思って他の作業始めると確実に忘れています。
しかし簡単に追加できるこのタスク管理表を作っておけば、

「思いついたらとりあえず追加。」

を心がけることで、ちょっと思い出したタスクも忘れずに記録しておくことができ(るはず)です(最悪簡単に追加できることさえ忘れていることがありますが)。

また、ちょっと早めにあるタスクが済めば、
次の長い時間をかけるタスクに取りかかるまでの合間に「簡単ですぐ終わるタスク」をピックアップして処理していけるため、
細かい雑務が後々最後にたくさん残ってうんざりするといったことも少なくなってきます。

新たに予期していなかったタスクが舞い込んできても、とりあえずこのタスク表の中に追加して、
その所要時間、優先順位を考え、無理であれば断るなり、他の優先順位の低いタスクを別の日に回すなり、
最悪残業うん時間を覚悟するなりできるでしょう。


次に良いところは工数見積もりの練習になるところ。
また、最終的に最初に見積もった時間と最終的にかかった時間が残るため、その差を見ることで反省もできること。

今まで会社でのバイトなんてやったこと無かったころは、工数の見積もりなんてことは全く縁がなかったのですが、
このバイトになってからプロジェクトに組み込まれるようになり、
「これこれこういう作業をお願いしたいんだけど、どのくらいで終わるか工数出して知らせてくれる?」とか普通のことのように聞かれるようになりました。

最初は無理でした。かなり。基本的に少なすぎる工数で考えてしまって後から修羅場を迎えることが多々ありました。

そもそも仕事としてプログラムを書くことがなかったので、「プログラムを書く時間」の他に「テスト」、「本番実装」があり、更には「エラーが出た際の修正時間」のバッファなんてものを考えるということ自体頭にありませんでした。

まぁ、それでも苦労しながらある程度幅を持たせて必要そうな時間を見積もれるようにはなりましたが、やはり細々したタスクの尺を予想することが難しく、適正な工数見積もりがなかなかできませんでした。

が、このタスク管理をスプレッドシートでやり始めてからは結構変わった気が(しないようでもない気が)します。
まず、細かいタスクを頭で思い浮かべることを「詳細」列を埋めることで反復練習しているので、見逃した小さい工数が重なって大きな誤差になるといったことが少なくなりました。
また、タスクをザクザクと思い浮かべる練習にもなっているので、
ディレクションの方にぱっと尋ねられた時に細かいところまで詰める前に、大雑把に日単位で必要な日数を、ある程度自信を持って伝えられるようになりました。
もちろん、詳細を後で考えて大きく変わった場合は伝えますが。


他にも色々と良いところはありますが、あえて後言うとすれば、モチベーションの向上でしょうか。

タスクとそれにかかる時間が最初から見えている状態で仕事に取り掛かれるので、
仕事を進めれば進めるほど残りの作業時間が減っていくのが目でみえ、完了したときの満足感も増量(する気が)します。
また、残りのタスクが見えているので、「まだ仕事がたくさんある・・」といった不安も多少解消されます。

自分は根が単純なので、タスク完了行が埋めていくこと自体がゲーム感覚の目的にすり替わっている気さえすることがあります。

更にはタスク管理のスプレッドシートを日付つけるなりしてどこかに放り込んでおけば、
どんどん完了していくタスクの山に満足感を見出したり、
あとからこの作業いつやったっけ・・といったときの簡易作業ログ代りになったり
と、役に立つことはいくらでも思いつきます。

自分は学生アルバイターなので、一日の仕事の終わりに「今日何をどのくらいやったのか」といった作業報告を提出しなければいけないのですが、
それもこのタスク管理表があるので、基本コピペ。多少見栄えを整えるのみで完了でき、楽々です。


このようにやることは簡単なのに得られる利益が結構大きいので、
知っている方はもちろん、知らない方も是非実践してみてください。


ちなみに自分が使ってるスプレッドシートは多少プラスアルファの列があり、

プロジェクト 状態 タスク 詳細 見積時間 修正時間 経過時間 残り時間 見積差分

のような感じで並んでいます。

大きい区切りでプロジェクト、
作業の完了未完了状態を書いておく状態、
見てすぐわかるように残り時間、
見積もりと修正時間の差分の列

を追加しています。

この辺は人それぞれの好みでいろいろと試行錯誤してみるのも面白いかと。
セルや文字の色変えたり。


後、最初にも書きましたが元ネタはJoel on Softwareで刊行物なので、まず無いと思いますがなんか色々と大人の事情でまずかったら注意されれば削除しますpq

口頭ではいろんなひとにお勧めしてることなので、気軽に試してみてください。


追記:
Joel on Softwareは、このネタ以外にもかなり面白くて有用なことが多々載っているので非常にお勧めです。
有名なブログの本なので知ってる人も多いと思いますが。結構小さい店でも売ってるのよく見ますし。
価格は3000円弱で単行本なので電車通勤通学に携帯するなどにもいいかと思います。
読んだこと無い人は読んでみては・。・

コメント

このブログの人気の投稿

git を操作したい時にちょっと便利かもしれない unite-source を書いています

こんばんは。この記事は、 Vim Advent Calendar 2012 の 50日目の記事です。
49日目は、 @uryt さんの vim.orgにアップロードされていないプラグインがあるかチェックするgit-unreleased-vimplugins作った でした。

本日は、長いこと自前で作成している、 unite を利用して 簡単な git 操作を行える unite-source 、 giti を紹介します。

vim-unite-giti
https://github.com/kmnk/vim-unite-giti

これは何?初期構想としては、自分の自分による自分のための git 操作用 unite source です。
現在はドキュメントも書いたので、自分以外の方にも、お使いいただける物になっていると思います。

言わずと知れた unite のインターフェースを用いて、 git の色々な操作を実現するための plugin's plugin になります。
unite を使って git 操作をしたい気持ちになる方に、是非使ってみて頂きたいです。

普段の仕事でヘビーに使っているので、基本的な操作に関しては、この source で(多分)完結できるはずです。

何故作ったの?git の vim plugin と言えば、有名な vim-fugitive があります。

自分も、仕事で使うバージョン管理システムが svn から git に移行したタイミングで、最初は使おうとしていました。
ですが、長らく(こちらも自前の) vim-unite-svn で、バージョン管理システムを unite 経由で使うことに慣れきってしまっており、
差分をコミットするごとにフラストレーションが溜まり、限界を超えた頃、気づくと自前で作成していました。

何ができるの?(自分が仕事を使ってる分には不自由しない程度に)基本的な操作は大体出来ます。

source 名を羅列すると、以下のような物を用意してあります。

* giti/branch, giti/branch_all
* giti/config
* giti/log
* giti/remote
* giti/status

それぞれ、簡単に説明してみます。

giti/branch, giti/branch_allgit branch や git branch -a を叩いた結果を…

builderscon tokyo 2017 に行ってきた

builderscon tokyo 2017 に行ってきたbuilderscon tokyo 2017 (2017/08/03-05) の本編1,2日目に行ってきましたきっかけは rebuild.fm のスポンサー宣伝
YAPC ASIA の系統をついでいるのもあるのか、 コンテンツ はかなり幅のある内容で、誰でも興味のある内容が何かしらあるであろう。な、カンファレンスでした発表資料は既に タイムテーブル の各詳細ページに大体公開されているので、内容はそちらを参考にしていただければと思います(リンクが貼られていないものも少し有りますが、検索すればどこかに上がってることが多いはずです)このエントリでは、自分が聞きに行ったセッションがどこだったかのリストとセッション全体についてのざっくりとした感想、及び、カンファレンス自体についてのざっくりとした感想を書いておき、来年以降また開催された時の参加判断の資料にできればと思います更新履歴2017.08.07 公開聞いたセッション実際にその場に行って、聞いたセッションのリスト1日目OpeningDeepLearningによるアイドル顔識別を支える技術ランチセッション A 株式会社VOYAGE GROUPランチセッションB Momentum株式会社マイクロチームでの高速な新規開発を支える開発・分析基盤Goで実装する軽量マークアップ言語パーサー2日目静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話小さく始めて育てるコンパイラランチセッション【PR】エンジニアがkintoneを使うべき3つの理由 サイボウズ株式会社ランチセッション 【PR】検索サービス開発が絶対におもしろいと思う理由 Supership株式会社polyglot になろう !!WEB+DB PRESS 100号記念 特別企画聞きたかったセッション後評判を聞いたりして、聞きたかったかなーと思ったセッション(後でスライド読む)1日目Desktop Apps with JavaScript横山三国志に「うむ」は何コマある?〜マンガ全文検索システムの構築RDBアンチパターン リファクタリングLT全部
#builderscon TL が大分沸いていた(残っていた人全員が見ていたのもあると思うけれど)2日目Ionic 3+ではじめる次世代アプリ開発(…

のどか(と窓使いの憂鬱)のvim風キーバインド設定を書いてみた

せっかくのどかを購入したのにあんまりキーバインドの改造をしていないので、練習がてらざっくりとvim風キーバインド設定を書いてみました。

多分窓使いの憂鬱でも動きます。動作確認はしていないです。

個人的に以下のキーバインドを先に行っているので、それ前提で見ていただければ。


# CapsLock 単発だと Esc になり、押しながら何かを押すと Ctrl になる
mod ctrl += !!英数
key *英数 = *Esc

# SemiColon を Enter に
key *IC-SemiColon = Enter

# Control を押しながら SemiColon で SemiColon
key *IC-C-~S-SemiColon = SemiColon


で、以下がvim風キーバインド


### vim mode
## vim mode トグル
key C-OpenBracket = &Toggle(Lock0)

## keymaps
# 一行ヤンク
keymap2 LineYankReady
key L0-*S-*C-*A-Y = Home S-End C-C Home

# 一行デリート
keymap2 LineDeleteReady
key L0-*S-*C-*A-D = Home S-End C-X

# 一行カット
keymap2 LineCutReady
key L0-*S-*C-*A-C = Home S-End C-X

# 頑張って一番上まで戻ろうとする
keymap2 GoTopReady
key L0-*S-*C-*A-G = PageUp PageUp PageUp PageUp PageUp

# exモードセーブ
keymap2 ex_mode_save
key L0-*S-*C-*A-Enter = C-S
key L0-*S-*C-*A-SemiColon = C-S # Enter代替

# exモード
keymap2 ex_mode
key L0-*S-*C-*A-W = &Prefix(ex_mode_save)

keymap Global

## vim mode 時の挙動
# default mode (Lock0 : on)
key L0-*S-*C-*A-_1 = &Undefined
key L0-*S-*C-*A-_2 = &…