「進捗どうですか?」と聞かれなくて済む、カンバンとGitで始める進捗管理を自動化する方法[PR]
ソフトウェアの開発プロジェクトには、目に見えないソフトウェアを作っているがゆえに「プロジェクトの進捗が分かりにくい」という悩みがついて回ります。
そこでプロジェクトマネージャが開発メンバーに進捗を聞いて回ることになるのですが、「ほぼ予定通りです」「3日後には終わる予定です」という報告を受けていても、いざ納期直前になって実は大幅に遅れていたことが発覚、プロジェクトが炎上を始めるという例は枚挙にいとまがありません。
こうした状況を改善するには、まずはプロジェクトの進捗を可能な限り「見える化」し、問題の早期発見と対策ができるようにしなければなりません。見える化が実現することで個々のエンジニアがどのような作業にどれくらい取り組んでいて、どのような課題を抱えているのかが分かるようになります。
と同時に、「エンジニアは遅くまで残業しているみたいだけど、本当に効率のいい作業をしているのか?」といった、ソフトウェア開発の現場への誤解をなくし、エンジニアがより正当に評価される環境も揃ってくるはずです。
「WBS」や「カンバン」で進捗を見える化する
プロジェクトの進捗を把握しやすくするための手法はいくつかあります。良く知られているものの1つが「WBS」と「ガントチャート」の組み合わせです。
WBS(Work Breakdown Structure)とは、プロジェクトに関わる成果物や工程を担当者の作業のレベルにまで分解して洗い出すことで、計画を適切に作成するための手法の1つ。WBSによって洗い出した作業をガントチャートに当てはめて行くことで、プロジェクトにおけるスケジュール管理や工程管理、現在の進捗状況などが把握しやすくなります。
プロジェクトの進捗を把握するための、もう1つよく知られた道具が「カンバン」です。
カンバンは、トヨタ生産方式を起源とする手法で、タスクをホワイトボードなどの板(これが「カンバン」)の上で、「To Do」「Doing」「Done」などの現在の状態に合わせて表示していきます。カンバンは、プロジェクトで何をすべきなのか、いま何が行われているのか、何が終わったのかを分かりやすく見える化し、関係者で共有することができます。
WBSやガントチャート、カンバンをうまくプロジェクト管理に取り入れることで、進捗の見える化を進めることができます。
Gitでソースコード管理することで客観性を高める
しかし進捗管理にはもう1つの課題があります。進捗の状況把握を自己申告に依存しているという点です。
自己申告を信頼して進捗を管理していたのに、最後になって「実はできていなかった」ことが発覚、突然炎上が始まるという事態を予防し、より客観的に進捗が分かるようにするにはどうすればよいのでしょうか?
成果物であるソースコードを見える化する、例えば「Git」のようなソースコード管理の導入が1つの解決策になるはずです。
Gitでは一般に、ソースコード本体となる「マスター」を用意、新たに機能追加や変更などを行う場合には担当エンジニアがマスターから分岐する「ブランチ」を作成し、プランチで開発作業を行います。
担当エンジニアが機能追加や更新をし終わると「プルリクエスト」を発行、他の開発者にコードレビューをしてもらい、問題がなければブランチをマスターに「マージ」することになります。
プロジェクトマネージャはGitをチェックすることで、ブランチが切ってあれば、ある作業について担当エンジニアが着手したかどうかが分かりますし、プルリクエストが発行されていればそのコーディング作業が終わったことが分かり、マージされていれば他の開発者によって完了が確認されたことが分かるわけです。
ソースコード管理ツールの運営によって作業の進捗が分かるだけでなく、必要があればいつでもGitでソースコードを見て内容を確認できる環境もできあがります。もちろんGit以外のソースコード管理ツールでも似たような進捗管理ができるでしょう。
カンバンに対応したプロジェクト管理ツール「JIRA」
WBS、ガントチャート、カンバン、Gitなど、進捗管理の見える化を進める手法を紹介してきました。これらの手法はGitを除けば、壁に模造紙を貼ったりホワイトボードとポストイットを使うなど、アナログなツールで運用することができます。
しかし、ソフトウェアのツールを使って進捗管理を一連の流れとして自動化できれば、さらに高い透明度と作業の効率化が実現できるはずです。
アトラシアンは、こうした開発プロジェクトにおける情報共有や作業の自動化を支援する一連のツールを提供しているベンダとして知られています。
アトラシアンのプロジェクト管理ツール「JIRA」は、プロジェクトのためのタスク(課題)をリストアップして整理し、優先順位を付け、計画を立て、作業のためのワークフローを考えるといったことを、関係者とコラボレーションしながら進めていくことができるツール。
そして「JIRA」のアドオンである「JIRA Agile」を使うことで「カンバン」機能がすぐに利用可能。アドオンも充実しており、サードパーティのアドオンによってWBSやガントチャートの利用もできます。
JIRAは、Bugzilla、Redmine、trac、Excelなどの課題やタスクもインポートできるため、移行も容易になっています。
JIRAとGitの組み合わせで「進捗管理の自動化」
さらにJIRAはGitとも連係可能です。JIRAとGitを組み合わせると、マスターからブランチを切ってタスクが着手されたのか、そしてプルリクエストによって作業が終わろうとしているのか、マージによって無事に完了したのかといったタスクの状況が自動的にJIRAに反映されるようになり、進捗確認が自動化されます。
JIRAはGitの代表的なサービスであるGitHubはもちろん、アトラシアンが提供するGitとMercurialサービスであるBitbucketや、オンプレミスでGitをホスティングできるStashと連係が可能。
しかもプルリクエストによってコードをレビューする際、アトラシアン製品を組み合わせることでビルドが通ったかどうかまで通知して、ビルドが通ったものだけをコードレビューすることで、無駄なレビューの手間を省くといった、きめ細かい自動化が実現できます。
さらにStashではGitの操作をコマンドラインではなく使いやすいWebブラウザからのビジュアルな操作で実現できますので、より一層プロジェクトの効率化を促進するはずです。
アトラシアンの製品価格は基本的に月額払いとなっており、JIRAが10人までの場合月額10ドルから、アドオンのJIRA Agileも10人までの場合月額10ドルから。そしてBitbucketは5ユーザーまで無料で10ユーザーまでの場合月額10ドルから。Stashは10人までの場合月額10ドルから。1人あたり月額数百円程度でこうしたツールを導入可能です。
(本記事はアトラシアン提供によるタイアップ記事です)
あわせて読みたい
インスタンス不要、クラウド上でコードを実行できる「AWS Lambda」がJavaに対応
≪前の記事
Facebook、静的コード解析ツール「Infer」を公開。Objective-C/Java/Cコードのバグを指摘してくれる