日本のソフトウェア開発におけるプロジェクト管理ソフトのデファクトスタンダードとカンバンの普及
諸事情あって、使っているプロジェクト管理ソフト(Webサービス、OSS、物理)のアンケートに先日ご協力頂いたので、その結果を皆さんにも見えるようにパブリックな位置であるこの記事に書いてみます。
アンケート結果は記事中ほどにあります。そこだけ見たい方は早送りしてください。
編集後記: タイトルに「2017年 プロジェクト管理ソフト 人気ランキング Top15」とか付けようと一瞬思いましたが、明らかに記事がそれだけじゃない長文なのでやめました。
前段: スタートアップがスクラムに取り組む課題
イテレーションが長すぎる!
私の所属する企業ではプロジェクト管理にTrelloを使って、カンバン形式で開発を進めています。今年の頭2ヶ月ぐらいは2週間に1イテレーション、見積もりもしてベロシティを求める、結構真面目にスクラムを組んでやっていました。
イテレーションが2週間では優先度の変更やタスクの追加に耐えられない、一方で、見積もりには時間が掛かるので1週間1イテレーションは回せない、という問題がありました。
そのため、スクラムをやめて、ただカンバンを使うだけにしました。やっていることは下記の3つだけです。
- タスクはTrelloを使ってカンバン形式で管理する
- 週に1回、タスクの優先度を決めるミーティングをする
- 週に1回、振り返り(レトロスペクティブ)をする
優先度決めやレトロスペクティブはPO、PM、全開発者でまとまった時間を取ってやっています。
見積もりをやめる
スクラムを組んでいたときは1回の振り返りと見積もりに6時間ぐらいかかっていましたが、2時間ぐらいまで減ったので、2週間で2時間時間が浮き、また、開発サイクルが早くなりました。(前述の課題が解決されました)
ベロシティを計測することでリリース日がなんとなく分かった気になれたり、ベロシティの変化を見ることによって、技術的負債の蓄積を感じて返済に重きを置いたり、ベロシティを上げるために業務の自動化を検討する機会になるなど、見積もりにはとても価値があると思います。そのため、見積もりをする・しないは各々のトレードオフ、カルチャーかと思います。
余談ですが、コードレビューの振り返りもやってみていて、定期的にレビュー内容のうち自動化出来るものはRuboCopやYAMLファイルに4行ぐらいぱぱっと記述して防ぎたいコードを見つけることが出来るQuerlyなど使って、コードレビューの時間の削減もいつもやっています。合わせてSideCIも使っています。
さて、本題に戻ると、一応見積もりを無くしてもいい、そういうプラクティスもあるという事例として、「カンバン仕事術」からこの一文を引用しておきます。
補足: スクラムとアジャイルとカンバンはよく混同されがちで、「カンバンする」みたいな(カンバンはするものではない)言葉もよく見かけます。私も誤用があると思うのでご指摘下さいませ。
9.5.3 #NoEstimates — 見積もりをなくせるか?
他の人も見積もることをやめ、私が「平均の平均の法則」と読んでいる考えを利用するに至っている。この法則は、以下のようなものである。
平均すると、平均的な作業項目は完了するのに平均的な時間がかかる。
本題: Trelloがはたしてベストなのか?プロジェクト管理ソフト色々
色々なプロジェクト管理ソフト(物理含む)
長らくいろいろなプロジェクト管理ソフトを使ってきました。RedmineやBacklogを使ってこともありますし(主に前職)、Trello、JIRA、JIRA Agile、Pivotal Tracker、Waffle.io、ZenHub、ただのホワイトボード、GitHub Projects(試しただけ)なども使ってきました。
見積もりを行っていたときはTrelloに加えて、Trello for Scrumみたいなプラグインも使ってきました。どれも一長一短あります。一例だけを上げてみます。
- Trelloは柔軟性に優れています。誰でも使える簡単さがあります。プラグイン(Power-Ups)も多く、拡張性にも飛んでいます。ZapierとTrelloがあればだいたいのことはTrelloで管理できます
- PivotalTrackerはFeature、Choreなどの分類が強制的に行われ、また、ベロシティを計算することがほぼ強制されます。見積もりとベロシティ、Featureへのフォーカスに必ず意識を向けさせられます
- Redmineはチケットが忘れられることがなく、また、チケットには沢山の情報を書くことが出来ます。みんなが大好きなガントチャートを書くことも出来ます。(TrelloもPower-Upsでガントチャート出来るよ!)
Trelloのデメリット
普段Trelloを使っていく中で、次のような意見がありました。
- 「Trelloの画面狭い!もっといっぱい書きたい!(詳しくはGitHub PullRequestsを見て下さいが多すぎる)」
- 「Trelloは他の会社の人などを巻き込みづらい(Board単位の共有は単位が大きすぎる)」
補足: さも私がツールの選定も行っている風に書いていますが、実際にはこれは全て開発チーム内で行われているやり取りを勝手にブログにしているだけです(もし問題があったら教えて😁)
そこで、とある開発者のモストレコメンデッドはBasecampだったので、Basecampを使い始めました。合わせて、私の方でいくらかの知り合い、知り合いの知り合いにアンケートをお願いしました。
プロジェクト管理ツールとして、皆さん何をお使いですか?
CTO並びにCTOご経験者のに聞きました。(ありがとうございます!)
こちらが72票の内訳です。1人複数件への投票も含みます。
アンケート結果に対する雑感
GitHub Issues単体でのプロジェクト管理はなかなか難しいし、書き方上GitHub Issuesかつwaffle.ioかZenHubという選択肢なので、waffle.ioとZenHubどちらかを使っているチームが一番多いという結果になりました。
JIRAはJIRAかJIRA Agileか分かりませんが、おそらくJIRAかなと。その後Backlog、Redmineなどが続いて、アジャイル界の申し子的なPivotal TrackerはAsanaと同順位でした。
GitHub ProjectsがリリースされたときにはWaffleは終わったなと思ったものですが、以前顕在でございます。
日本の上場企業ではソフトウェア資産の管理などが必要になってくるので、プロジェクト・機能ごとにどれだけの工数が掛かったかなどを管理する必要があり、JIRAなどが上位に来るのは超納得です。(単にJIRAが良い、Atlassian大好きという説も大いにあります)
(ところで、選択肢にHuBoardを入れるのを忘れていましたが、誰も追加しませんでした。日本では忘れられた存在?それとも一番上の選択肢に暗黙的に含まれている?)
思っていたより多いカンバン
最上位がwaffle.ioかZenHub、3位にTrelloということもあり、思っていたよりもカンバンが多いなと思いました。日本発とも言えるカンバン文化は強いですね。
カンバンについての伝統的な本のリンクをペタリ。
カンバンでスループットを上げる、ボトルネックを可視化するといった効果を期待して「WIP制限」をする事があると思いますが、スループットの話がでる「ザ・ゴール」に恥ずかしながらコミック版があることを最近知ったのでこちらもぺたり。
結論: カンバンとチケット管理がデファクトスタンダード
チケット管理型とカンバンがデファクトスタンダード感があると思います。
カンバンもチケット管理もあくまでツールであって、方法論、開発のプラクティスではないので、うまく使うのは難しい、カンバンを使っているからモダンというわけではない点は注意が必要ですね。
(恥ずかしながら最近までWIP制限や、カンバンにおけるサービスクラスを知りませんでした)
アジャイルの本、スクラムの本、カンバンの本あたりを日本語書籍が出ているものを全て買うだけでとても諭吉が飛んで行く、10諭吉ぐらい簡単にイケるので、もしまだお持ちでない方は会社に買ってもらう事もオススメしておきます。(いつもいっぱい買っています。もちろん個人でも買っています)
ところで、Railsをお使いの企業の皆様方は、Railsを作っている伝統的な企業であるBasecamp社のBasecampはお使いになられないのでしょうか?(投票ゼロ件!びっくり!)