ソフト開発をするのに必須な要素って何でしょうか? 十分な開発費と納期? 優秀なプログラマー? イケてるフレームワーク?
確かにどれも大切ですが、忘れてはならないのが、適切な課題管理/ソース管理ツールとプロジェクトマネージャー(PM)です。
いくら優秀なプログラマーがいようと、PM業務がないがしろだとプロジェクトは確実に炎上します。
WBSが云々かんぬん、ことプロジェクトマネージメントになると小難しい言葉が飛び交いますが、要は大事なことって下記のようなことだと思います。
- タスクはどれだけあるか
- 誰のタスクか
- どんなタスクか
- バグ? 要望? タスク?
- いつまでに終えれば良いか
- 進捗はどうか
- ソース管理ができる?
- タスクとソースの紐つけを明確化
これだけ把握できていれば良いわけです。
有料のBacklogやgitプラグインを入れたRedmineなどを駆使すれば、上記の要素は網羅できます。
が、Backlogはお金がかかるし、Redmineは多少エンジニアの力が必要です。
本記事では、お金も手間もかけたくない方向けに、「無料」で「即座」にプロジェクト管理ができるようになるオススメツールを紹介します。面倒なインストール、課金の心配などはありません。即日実行可能です。
こちらの記事は当初運営者メンバーの執筆でしたが現在は離れており、寄稿記事となっています。そのため当記事の情報アップデートにつきましては2020年1月をもって終了・サポート・内容についての問合せなどは受けておりません。また、記事内容を利用された際に生じた内容にも責任を負えませんのでご了承ください。
Bitbucket + Google SpreadSheet + Gantt Chart Generatorで無料でガッチリ管理
ズバリ、Bitbucketのソース管理と課題管理機能、Google SpreadSheetのガントチャート作成アドオン「Gantt Chart Generator」を使えば、即日ちゃんとしたプロジェクトマネージメントができるようになります。
僕も個人の仕事ではBitbucket+Gantt Chart Generatorで管理を行なっています。
それぞれの活用法をご紹介します。
Bitbucketを活用する
タスクやバグを課題登録して管理
Bitbucketはgitによるソース登録はもちろん、gitリポジトリごとに、タスクやバグをカテゴリー分けして登録することができます。
こんな感じ。
タスク一覧
タスク詳細ページ
フィルタすることも可能です。下記はバグのみフィルタした結果。
PMは何かタスクやバグがあったら、課題を登録して担当者に振り分けます。フィルタ検索がしっかりしているので、各担当が今どんな作業を持っていて、どんなことが起きているのか一覧にして見ることができます。
メーリングリストでタスクやバグを通知できる
メーリングリスト機能が用意されていて、タスクを新規登録したら特定のメールアドレスに通知することも可能です。ML宛に送るも良し、メンバー全員のアドレスを登録しておくも良し。バグが多くて炎上しても、これで通知漏れが防げます(笑)
(準備中) Bitbucketでメーリングリストを設定する方法と活用法
課題と修正ソースを紐つけることが可能
githubでも行えますが、bitbucketではgit commit時に課題をcloseしたり、openにしたりできます。
試しに下記のようなcommitをgit pushすると。。。
resolved #1 課題#1 収支一覧の勝敗カウントがおかしい 修正
「resolved #1」など、<status> #課題番号 を記載してcommitすると課題番号のステータスが自動でresolvedに移行し、
このようにcommit番号とともに、課題のコメント欄に書き込みが行われます。
commitログにも
課題へのリンクが貼られており、どのcommitで何を直したかが明確になります。これの何がいいって、デグレードを起こした時に、課題とソースが紐ついていれば、怪しいところの発見が早くなる点。後、commitに課題番号を書くのを習慣化すると、必ず課題を登録してからcommitすることが習慣化するので、プロジェクトのcommitログが無法地帯にならずに済みます。
(準備中) Bitbucketの課題をcommit時にステータス変更する方法と活用法
課題登録時にテンプレも表示できる
課題登録時に、各々が適当なテンプレで書いて、わけがわからなくなること、ありますよね。僕が前職でPMしてる時も、
「表示バグ」
とだけ書かれた課題が起票されてブチギレしそうになりました(笑)。ただ僕もエンジニアなので分かるんですが、バグ起票ってめんどいんですよね。そもそもバグというのは書くことが多いです。どんな内容で、問題動作がこれこれで、期待動作がこれこれで、修正確認事項はこんな感じでって。それを各々の記載に任せるのはPMの怠慢というもの。だいたいgithubもbitbucketも課題登録時のマークアップが大変めんどいし。
そんな時にオススメなのが、New issue message機能です。
(準備中) New issue message機能を使って、課題登録時にテンプレ表示をしよう
New issue messageを設定しておくと、課題登録時に
こんな感じで、メッセージを表示することができます。課題はこう書いてねっていう風に表示し、あらかじめマークアップしておくのがポイント。新規登録時は、本文にこれをコピペしてもらって使います。これだと表記レベルのブレもある程度抑えられます。
バグ票をちゃんと書かないエンジニアは結構いますが、であれば、ちゃんと書けるように取り計らうのがPMの仕事です。エンジニアがキチンとバグ票を書かないと怒るより先に、最低限、このくらいはやるのが筋というものでしょう。
課題に様々なカテゴリーを付与することが可能
コンポーネントやマイルストーン、アプリVersionなどもあらかじめ設定しておけば、課題登録/編集時に設定することが可能です。
もちろん、検索フィルタの対象にすることができます。ITバグが今どのぐらいあるかー、なんてのも検索フィルタを使えば一瞬で把握できますね。僕はやりませんが、よくSIerが使うバグ曲線なんかも簡単にできちゃいます。
無論、エンジニア視点でも有用で、アプリVersionなんかはテスターからバグ起票された時の重要な情報となります。発生Versionを書かないテスターなりエンジニアなりって、結構いるので予め欄を作っとけば良いわけ。入れてくれる確率が高くなりますので。(100%ではない)
ただしBitbucketにはガントチャートがない
Bitbucketでほとんどのプロジェクトは事足りるのですが、ガントチャートが書けないんですよね。RedmineやBacklogであれば課題をそのままガントチャートに落とし込め、進捗%までいれれます。が、Bitbucketにはそういう機能がありません。
メンバーとタスクが多くなってくると、全体の進捗が分からなくなってきますよね。そんな時にガントチャートが使えると楽なのですが。。。
ではどうするか。Google SpreadSheetに「Gantt Chart Generator」アドオンを入れてガントチャートを作っちゃいましょう。
Gantt Chart Generatorを使って、ガントチャート作成 進捗把握もバッチリ
Google Spread Sheetはご存知でしょうか。エクセルみたいなののWeb版です。無料な上、Webアプリケーションなので、ブラウザとGoogleアカウントさえあれば使えます。共有にしてリアルタイムに同時編集などができるのも魅力。全体に共有はもちろん、特定のGoogleアカウントのみ共有するなどもできるため、チーム開発に重宝します。
ここまでであれば、いい感じの表計算アプリがあるぞで終わるのですが、アドオン「Gantt Chart Generator」を使うと簡単にガントチャートが作れます。
ガントチャートの作成は簡単
下記からアドオンをインストールし、
Gantt Chart Generator - Google Sheets add-on
Google SpreadSheetから「アドオン」->「Gantt Chart Generator」->「ガントチャートの作成」を押すと、
こんな感じで
簡単にガントチャートを作成してくれます。
タスク名を入れて、期間入力。工数と進捗を書くとあら不思議。
[st-kaiwa-yhei]進捗が丸分かりじゃないか。。。[/st-kaiwa-yhei]
当然のごとく土日祝日は表示されてますし、タスクを階層にして管理することも可能です。Redmineでもこういう機能はありますが、手軽さが全然違う。
運用としては、まずはBitbucketの課題Noと紐つけたりしつつ、全タスクを洗い出します。そして、エンジニアに、毎日定時前に進捗を入力してもらえば、どこがボトルネックになっているかは一目瞭然です。
ぶっちゃけこれはRedmineのチケット機能を使ってもできます。
が、が、が。
それでもGoogle Spread Sheetを勧めたいです。というのも、Google Spread Sheetはリンククリックなどせず、1画面で全部を把握できるのが最高です。要はタスクを出して進捗パーセンテージだけ入れてもらえればいいんですから、複雑な操作や余計な要素が増えるのは避けたいところ。
RedmineやBacklogだと、やれチケットリンクを開いて、進捗%を入れて、親チケットがどうのこうの。。。まどろっこしいことこの上ないんです。だいたい、チケットだと大げさすぎて細々としたタスクは誰も起票しないんすよね。前職で7年管理兼プログラマーをやってましたが、せっかくRedmineがあってもめんどくさすぎて形骸化しているプロジェクトをめちゃくちゃ見てきました。
その点、Google Spread Sheetはその気軽さによってエンジニアにも受け入られやすいのが良いです。Web上にしかないのでどこでも見れますしね。お客さんとも共有しやすいのも良いです。
Bitbucket + Google Spread Sheet×Gantt Chart Generatorで開発管理するためのまとめ
- 課題登録はBitbucketで。ソースと課題を必ず紐つける
- Bitbucketの課題はアプリバージョンやコンポーネント、バグやタスクなど、様々なカテゴリーを付与して使う。後の分析や進捗把握に役立つ
- タスクの進捗把握はGoogle Spread Sheet×Gantt Chart Generatorで。エンジニアに進捗入れてもらうだけ。
- Google Spread Sheetの進捗は気軽だからみんな入れてくれる。エンジニア自身も自分が今日帰れるかの指標にできて◎(笑)
ぜひ使ってみてください。
Gantt Chart Generatorアドオンをインストールする
[st-kaiwa-yhei] ちょっとしたコラム。PMやSIerという人種について。
[/st-kaiwa-yhei] [st-kaiwa-yhei] 完全に偏見ですが、日本の50%のPMと自称する輩は、PMに必要なツールを模索しようという気が全然まったくからっきしありません。いや。ちょっと嘘をつきました。すみません。日本の90%です。
[/st-kaiwa-yhei] [st-kaiwa-yhei] この記事をここまで見ているような真面目な方はそうではないと思います。しかし、大抵のPMというのは、プロジェクトの遅れの本質を捉えず、バグ数と、いつ終わるかしか見ていない素敵で頭の良い連中が大半です。30分に一回ぐらい電話をかけてきて、進捗どう? 進捗どう? と邪魔ばかりして、結果、進捗を遅らせるような奴。それで本当に遅れようものなら「お客様のため」という名目でエンジニアに残業と休日出勤を強要します。自分も休日出勤をするものの、やることは特になく、「進捗どう?」としかチャットしてきません。お前会社来なくてよかっただろ。
[/st-kaiwa-yhei] [st-kaiwa-yhei] そういう奴は、ツールの使い方もウンコみたいなものです。進捗報告用にエクセルでゴリゴリ謎のマクロを組み(あるいは誰かの貴重な時間を搾取して組んでもらい)、エンジニアに色々な項目を入力させます。ただ、元々フォーマットがまずいもんだから、結局エンジニアに謎の進捗報告作業を口頭で毎日2時間強要し、そしていつもプロジェクトも自分も炎上しています。
[/st-kaiwa-yhei] [st-kaiwa-yhei] マクロを組んで進捗を作るやつは優秀な方で、謎の独自エクセルフォーマットで謎の進捗を書く奴もいます。
[/st-kaiwa-yhei] [st-kaiwa-yhei] 進捗のエクセルは常にローカルか共有サーバーに保存してあり、sinchoku_ver1.xls、sincyoku_new_ver1.xlsなどというファイルがたくさんあります。
[/st-kaiwa-yhei] [st-kaiwa-yhei] エクセルの共有機能を使っていますが、度々バグり、読み込み専用で開く羽目になります。
[/st-kaiwa-yhei] [st-kaiwa-yhei] その度にsinchoku.temp.xlsファイルがコピーされます。
[/st-kaiwa-yhei] [st-kaiwa-yhei] 当然、バグ管理もエクセルです。一番左の列に「open」って書いてあります。備考欄には「クローズ」と書いてあります。
[/st-kaiwa-yhei] [st-kaiwa-yhei] 2000年代前半ならそれで良かったのかもしれませんが、今そのレベルはやばいです。厳しい言い方をすると、そういう人は迷惑なのでPM辞めた方がいいと思います。もっと厳しい言い方をすると(以下略
[/st-kaiwa-yhei] [st-kaiwa-yhei] とは言いつつ、僕もかつてはそっち側にいました。
[/st-kaiwa-yhei] [st-kaiwa-yhei] ですが、エンジニア側に立つことが増え、無駄が多いツールで進捗報告をすると、モチベーションが低下し、何よりエンジニアとして集中する時間が減り、ソフト品質にも悪影響を与えることを知りました。毎週、2時間も割いて進捗報告する必要があるプロジェクト自体がおかしいのです。そして進捗のエクセルフォーマットに入力するのに1時間もかかるのは頭がおかしいです。その3時間で何行コードを書けたのでしょう。いくつバグを潰せたでしょう。エンジニアの時間を非効率なツールを使うことで奪うのであれば、プロジェクトがマネージメントされていないと言わざるをえません。PMの職務放棄です。
[/st-kaiwa-yhei] [st-kaiwa-yhei] そうならないよう、できるだけエンジニアが楽で、開発に集中してもらえるよう、PMとしてのツール探しをし続けていくことが、正しいPMの姿かと思います。何もゴリゴリプログラムが組める必要はないし、技術的なことは分からないでもいいんです。でも、gitが出てくるだけでアレルギー反応を起こすようなPMは今すぐ退職して職業訓練学校に行くか、dotinstallで勉強しやがれ、ということです。ほんと、大学1年でもできることだからな?
[/st-kaiwa-yhei]
ということで、優秀なPMだと自負している方はぜひいろんなツールを試してみてください。
Gantt Chart Generatorアドオンをインストールする