ぽんぽこ日記

プログラミング、読書、日々の生活

フリーランスエンジニアのためのクラウドサービスをつかった情報整理・時間管理術

昨年5月末で会社を退職し、一年が経とうとしています。

おかげさまで複数の会社からお声がけいただき、iOSアプリの開発を中心にお手伝いしている状況です。

一方で案件が一部同時並行することもあり、プロジェクト進行にまつわる諸々の情報を整理する必要が出てきました。

試行錯誤しましたが、一年間クラウドサービスを使った情報管理を試みてみて、割とうまくいく形が見つかったように思うのでご紹介したいとおもいます。

プロジェクト管理ルール

まず最初に、GTD的な意味で「プロジェクト」とみなせるもの(お客様からの依頼、自分が個人的に進めていること、成果物を伴う技術調査)をすべて列挙し、番号を振って管理することにしました。

ソースコード、メール、資料などプロジェクトにまつわる情報はそれら番号に基づいて各種クラウドサービスで管理しています。

プロジェクト一覧はgoogle spreadsheetという表計算アプリで一覧できるようにしています。 f:id:ponpoko1968:20150502183627p:plain

まずプロジェクトが立ち上がったら、会社名とプロジェクトを記入し、それぞれに連番を振ります。 (以下、会社に振られた番号を会社コード、プロジェクトに振られたコードをプロジェクトコードと呼ぶことにします。)

資料

仕事用に使っているデスクトップ型Macの文書フォルダに、「会社コード 会社名」でフォルダを作成し、プロジェクトコードでサブフォルダを作成します。メールなどで受け取ったファイルはここに置きます。紙ベースで提供された場合は、ScanSnapでPDF化して取り込みます。このフォルダはDropboxの同期対象にして、打ち合わせに持って行くMacbookAirと共有しています。

資料の整理にはEvernoteもつかっています。 こちらでは主に、プロジェクトを進める上で必要な技術情報へのリンク(ブックマーク)や記事の切り取りを保存しています。 Evernoteでは、プロジェクトコードごとにノートブックを作成し、ノートブックは会社ごとにノートブックスタックで束ねています。 Evernoteのデスクトップアプリでは、サイドバーを表示する設定にするともに、サイドリストビュー表示モードにすることで、情報の粒度が左から右に詳細になるように設定しています。

ブックマークの保存や切り抜きにはevernote web clipperというchrome拡張を愛用しています。 f:id:ponpoko1968:20150504124425p:plain chrome.google.com

これはボタン一つでWebのブックマークや記事の切り抜きをEvernoteに転送してくれる便利なもので、保存先ノートブックの選択やタグの添付もできます。

あと、認証が必要なサイトへのアクセスに必要なID・パスワードもEvertnoteの文字列暗号化機能をつかって暗号化した上で保存しています。

ブックマーク

ブックマークはサイトの用途・性格から、「フロー」・「ストック」の大きく分けて2つに分けて管理しています。

「フロー」型のサイトとは、Qiita:teamやgithubといった、内容が刻々と変化し、毎日開いて内容を確認する必要があるサイトを指します。こちらはchromeのブックマークに保存し、プロジェクト単位で管理します。

「ストック」型のサイトとは、プロジェクトを実装する上で必要な要素技術について書かれたサイトを指します。stack overflowのQ&Aや、QiitaのHowTo記事はこちらに含まれます。

上述したように、これらのブックマークはevernote web clipperをつかってEvernoteに保存します。基本的には関連するプロジェクトのノートブックに保存します。Evernoteには、表示しているノートと関連するノートをサジェスト表示してくれる機能があるので、この機能に引っかかりやすいように、内容に関連するキーワードをタグとして付けておきます。

下の画面はとあるGISに関連する業務用Androidアプリを開発していたときのノートブックの例です。 f:id:ponpoko1968:20150504135131p:plain

メール

メールはgmailを使っています。会社コードと、その下位ラベルとしてクライアントコードで分類しています。 gmailに限っては、打ち合わせ時などで画面をプロジェクタに映すときなど、予期せずPCの画面が他人の目に触れてしまうことが多いので、ラベル文字列のうち会社名を示すラベルは会社名のイニシャルを表記するようにしました。

f:id:ponpoko1968:20150504133148p:plain

ちなみに、ただ、この方法でラベルをネストさせて使うと、gmailの左側のラベル一覧画面が狭いため、プロジェクト名を表すラベルが途中で切れてしまい見づらいという欠点がありました。この領域はリサイズも不可なため、とてもフラストレーションを感じていました。

調べてみると、解決方法を紹介してくれているサイトを見つけることができ、スッキリしました。ありがとうございます。

webtrace-cuisine.com

工数(作業時間)管理

作業時間のタイムトラッキングには、昨年までtogglというサービスを使っていたのですが、クライアントやプロジェクト単位の管理が弱かったことが不満で、paymoというサービスに乗り換えました。

www.paymoapp.com

paymoはクライアント・プロジェクト・タスクの概念が備わっている時間管理サービスで、最初に、paymoのWebサイトでクライアント、プロジェクト、タスクを設定しておいて、それら単位ごとにかかった時間を集計してくれるサービスです。 *1

paymoにはpaymo widgetという、メニューバーに常駐させるタイプのデスクトップアプリをあり、これを使って、プロジェクトとそれにひも付くタスクを選択して計時します。 プロジェクトが終了したら、受注金額と,実際にかかった時間から効率や見積もり精度を計算し、振り返りに使っています。

f:id:ponpoko1968:20150504124455p:plain

こちらのサービスはAPIも公開されているので、プライベートの時間管理もカバーできるよう、スマホアプリやAppleWatchアプリを作ってみたいと考えています。

追記)

作りました。

ponpoko1968.hatenablog.com

paymoについてはとても多機能なサービスなので、別途詳しく紹介してみたいと思います。

ソースコード管理

gitリポジトリはアトラシアン社のバージョン管理アプリSourceTreeを使っています。CUI派の私も、gitの複雑なコマンド体系は苦手で、これだけは手放せません。 他のアプリ同様、ブックマーク画面で会社コード、プロジェクトコード単位で管理しています。

f:id:ponpoko1968:20150504133434p:plain

スケジュール管理

個人のスケジュール管理はBrabioというサービスをつかってガントチャートを作成しています。

brabio.jp

これからやりたいこと

プロジェクトコードをつかって統一的にクラウドのサービスを活用することで、情報の整理にまつわるフラストレーションや無駄な時間が減り、効率的に作業ができるようになりました。

現状、課題に思っていることとしては、一つプロジェクトが立ち上がると、プロジェクトコードの採番に始まり、たくさんのサービスへの登録が必要となっており、ちょっと面倒なことです。 各サービスで公開されているAPIを用いて、コマンド一発ですべてのサービスにプロジェクトを登録できるようにしたいと考えています。

(2016-01-12追記)このお正月休みに一念発起して、SourceTreeのブックマーク以外はすべて自動化しました。

[asin:B00JL4CTPK:detail]

*1:私は使っていませんが、欧米の弁護士、コンサルタントのように時間単位で課金する職業のため、請求書の発行まで代行してくれるサービスも付いています。