GitHub Projectsについて¶
GitHub Projectsとは¶
GitHub Projectsは、GitHub上でタスクや進捗を管理するための機能である。
簡単に言うと
GitHub内蔵のプロジェクト管理ツール
である。
なぜ必要なのか¶
開発を進めていると
-
やること
-
作業中の内容
-
完了した内容
を管理したくなる。
例えばAsterでは
・STM32基板設計
・CAN通信実装
・MkDocs作成
・Node.js開発
など複数の作業が同時進行する。
これらを管理するためにGitHub Projectsを利用する。
GitHub Projectsの特徴¶
-
GitHub標準機能
-
Issueと連携可能
-
Pull Requestと連携可能
-
無料で利用可能
-
Webブラウザから管理可能
基本構成¶
Projectは
Project
├─ Item
├─ Status
├─ View
└─ Automation
で構成される。
Itemとは¶
管理対象のタスク。
例
STM32のピン配置決定
CAN通信実装
MkDocs構築
Kanban方式¶
最もよく使われる表示方法。
例
Todo
↓
In Progress
↓
Done
イメージ
┌──────┬───────────┬──────┐
│ Todo │ Doing │ Done │
├──────┼───────────┼──────┤
│ PWM │ CAN │ Git │
│ ADC │ STM32 │ I2C │
└──────┴───────────┴──────┘
進捗が非常に分かりやすい。
Table表示¶
Excelのような表示もできる。
例
| タスク | 状態 | 担当 |
|---|---|---|
| CAN実装 | 作業中 | 自分 |
| PID実装 | 未着手 | 自分 |
Roadmap表示¶
時系列で管理できる。
例
6月
↓
回路設計
7月
↓
基板発注
8月
↓
ファームウェア開発
Issueとの連携¶
GitHub Projects最大の強み。
Issue作成
PWM制御実装
Project追加
Todo
作業開始
In Progress
完了
Done
自動で管理できる。
Pull Requestとの連携¶
PRも管理できる。
例
CAN通信追加
↓
Pull Request
↓
Review
↓
Merge
進捗が一目で分かる。
カスタムフィールド¶
独自項目を追加できる。
例
優先度¶
High
Medium
Low
担当者¶
mikannohako
分類¶
Hardware
Software
Document
自動化¶
GitHub Projectsは自動化機能を持つ。
例
Issue作成
Todoへ追加
Issue完了
Doneへ移動
手動操作を減らせる。
Asterでの活用例¶
おすすめ構成
Hardware¶
ALEO回路設計
AB回路設計
部品選定
Software¶
PWM実装
CAN実装
PID実装
Documentation¶
MkDocs
Knowledge作成
Server¶
Node.js
WebSocket
REST API
Aster向けおすすめステータス¶
Idea
↓
Todo
↓
Doing
↓
Review
↓
Done
Idea¶
思いついた段階
Todo¶
やる予定
Doing¶
作業中
Review¶
確認待ち
Done¶
完了
Aster向けおすすめラベル¶
Hardware¶
hardware
Software¶
software
Documentation¶
docs
Bug¶
bug
Enhancement¶
enhancement
GitHub Projectsのメリット¶
-
タスク管理が簡単
-
GitHubと完全統合
-
Issueと連携可能
-
無料
-
小規模開発でも使いやすい
GitHub Projectsのデメリット¶
-
高機能すぎる場合がある
-
Notionほど自由度は高くない
-
慣れるまで少し時間がかかる
Asterでの運用例¶
個人開発なら
Idea
Todo
Doing
Done
の4列だけで十分。
例
Todo
├ STM32起動確認
├ PWM実装
└ MkDocs整備
Doing
└ CAN通信
Done
├ GitHub Pages
├ I2C設計
└ PID資料作成
これだけでも開発状況がかなり見やすくなる。
まとめ¶
GitHub ProjectsはGitHub標準のプロジェクト管理機能である。
-
タスク管理
-
Issue管理
-
Pull Request管理
-
進捗可視化
を一元管理できる。
Asterのようなハードウェア・ソフトウェア・ドキュメントが混在するプロジェクトでは、開発状況を整理するための中核ツールとして活用できる。
Notionに飽きたし、どうせ内部の開発をするのは私だけなので勝手に使うことにする。