Closed3

個人開発者のシンプルなタスク管理術

hujbvfhujbvf

個人開発で Web アプリを作っているのですが、タスク管理について色々試行錯誤したので、ここにメモを残します。

以前のタスク管理方法

Github Issues + Github Projects でタスク管理を行なっていました。この組み合わせは鉄板ですが、個人開発者にとっては少し多機能すぎるものだったと感じています。

開発手順

  1. Issue を作成し、実装目標を書き込む(どんな機能を追加したいかなど)
  2. Project で各 Issue の締め切りと状態(todo / in progress / done)を設定
  3. コードを書き、コミットメッセージで Issue とコミットを紐付け

メリット

  • コミットのグループ分けがしやすい(Issue にコミットを紐づけていたので)
  • 各タスクの締め切りを Project で設定、確認できる
  • 各タスクに関するメモを Issue に残せる
  • Issue をさらに Milestone でグループ分けできる
  • Github 上で全て完結する
  • 将来的に複数人でのプロジェクト管理に移行しやすい

デメリット

  • Project のロードマップが見にくい(もっとカレンダーアプリっぽい見た目がいい)
  • 他のタスク(家の用事など)とプロジェクトのタスクを一緒に確認できない
  • Issue や Project を設定するのが面倒(特に Project はカレンダーアプリや TODO アプリにタスクを追加するより面倒)
  • モバイルで確認しにくい

現在のタスク管理方法

Apple のカレンダーアプリ + Apple のリマインダーアプリでタスク管理をすることにしました。

開発手順

  1. プロジェクト全体の大まかな予定は、カレンダーアプリで管理する(≒ Milestone & Project)
  2. 翌日のタスクをリマインダーアプリに追加する(≒ Issue & Issue 内のチェックリスト)
  3. コードを書き、コミット
  4. リマインダーアプリのタスクにチェック

どうやってコミットのグループ分けをするか

この方法だと Issue を作成していないので、各コミットがどのタスクに紐づけられているのかが分かりません。そこで、ブランチを使用したタスクのグループ分けを行うことにしました。

  1. 各タスクグループごとに新規ブランチを作成
  2. すべてのタスクが終わったら主要ブランチにマージ
  3. タスクグループブランチにタグを打つ
  4. タスクグループブランチを削除

このようにすることで、どのコミットがどのタスクグループに紐づけられているのか明確になります。

私の場合、主要なブランチとして maindevelop があります。

main       # 公開用ブランチ
develop    # 開発用ブランチ

基本的に develop に全てのタスクグループを集約させます。新しいタスクグループ(機能ごと、バグ修正ごと)を作り、すべてのタスクが完了したら develop にマージします。

main                            # 公開用ブランチ
develop                         # 開発用ブランチ
    ├── doc/readme-typo-fix     # ドキュメントの誤字修正
    └── feature/profile-page    # プロフィールページの追加

ブランチを削除しても、そのブランチで行ったコミットやマージ履歴は Gitの履歴として残ります。ブランチの削除前にタグ git tag を打っておくことで、さらに参照しやすくしています。

hujbvfhujbvf

対応表

管理方法 全体 タスクグループ タスク
Github Projects + Github Issues Github Projects Milestone + Github Issues Github Issues のチェックリスト
Apple カレンダー + Apple リマインダー Apple カレンダー Apple リマインダー + Git ブランチ Apple リマインダー(サブタスク)
hujbvfhujbvf

ブランチやタグの命名ルール

ブランチの命名ルール

基本フォーマット:

<タイプ>/<簡潔な説明>

タイプ:

タイプ 用途
feature/ 新機能の追加 feature/login-form
fix/ バグ修正 fix/image-loading-error
hotfix/ 本番の緊急修正 hotfix/payment-crash
refactor/ 構造改善 refactor/db-schema
chore/ 依存更新などの雑務 chore/update-dependencies
doc/ ドキュメント関連 doc/readme-typo-fix
test/ テスト関連 test/user-auth-tests

ブランチの命名ルール

done/<ブランチ名>
意味
done/feature-login ログイン機能を作ったブランチの完了状態
このスクラップは2ヶ月前にクローズされました