チーム開発のためのツールたち

普段、私はeXcaleというサービスの開発に従事しています。今回はその開発チーム(6名)で使ってるツールを紹介します。

といっても有名どころしか使ってないのでそんなに目新しくはないです。
 
前提事項としては何か開発ツール等を導入する場合、基本的には既存のサービスを利用することにしています。
例えばRedmineを自分たちのサーバにインストールして使うことも出来ますが、そういうことは極力避けています。
なぜなら、我々がやりたいことはあくまでもプロダクトの開発であって、それに少しでも集中するために開発ツールの運用などしたくないからです。
 
という前提があるので必然的に利用している開発ツールのほとんどがサービス利用になっています。
 

 

Github

https://github.com/ 

これは特に説明する必要ないかと思います。
全てのソースコードをこれで管理してます。
Enterprise版ではなく普通のやつでプライベートリポジトリとして管理してます。
 

Pivotal Tracker

https://www.pivotaltracker.com/

これはプロダクトの開発の管理に使ってます。
私のチームはスクラム開発をベースにしたアジャイル開発なので手っ取り早くPivotal Trackerを使ってます。
プロダクトの開発用なので主にユーザーストーリー、つまり価値を届けるタスクを管理しています。
ちなみにイテレーションは2週間でポイントのスケールはフィボナッチ数列です。
ベロシティも参考にはしてますが不具合が多いと全くベロシティ増えないってことになってやる気がそがれます。
 

Trello

https://trello.com/ 

これはタスク管理用ですが、最近使い始めたところです。無料の範囲で使ってます。
Pivotal Trackerとの使い分けですが、サービス運営上の事務的なタスクやインフラ的な運用タスクなど、直接ユーザの価値に結びつかないタスクはTrelloで管理しています。
当初はそういったものもPivotalでChoreというストーリーとして管理していましたが、これだと開始と終了しかなくてFeatureにおけるDeliver的なステータスがありません。そこでBugとして管理してきたのですがそれだと気分が萎えるのでTrelloを使って管理することにしました。
 

PBWorks

http://pbworks.com/

これは単なるWikiサービスです。これも無料の範囲で利用しています。
私のチームでは設計書とか仕様書的な決まった形式のドキュメントは書いていません。その理由は我々の場合、顧客にドキュメントを納品するわけではないのでドキュメントを納品物として作成する必要がないからです。
ただし、チーム内での情報共有は必要ですし、「設計書」はなくてもそれに準ずるドキュメントは発生します。そういうわけでWikiを使って検討結果や設計などはフリーフォーマットでドキュメントに落としています。
それだけならテキストファイルとかでも構わないのですが、それだと横断的な検索性に乏しいためWikiを使っています。なお、使っているサービスに特にこだわりはありません。

youRoom

http://ja.youroom.in/

コミュニケーションツールの一つです。触れ込みとしてはメーリングリストの置き換えってことです。
以前はこれを使ってタスク管理とかも行っていました。ただ、期限設定ができないとか放置されがちになることもあって最近は課題とか検討事項を備忘録的にあげておく以外にあまり利用していません。
そういったものもTrelloなりに移行した上でいずれ利用を止めることを考えています。
こちらも無料範囲での利用です。

HipChat

https://www.hipchat.com/

先日のエントリでも紹介したチャットツールです。以前はSkypeとかLineを使ってましたが全面的に移行しました。
$2/人と無料ではないですが5名までなら無料で使えます。
最近はチーム内のあらゆる通知をHipChatに集める方向にしていて、例えば監視システムからのアラートとかGithubのプルリクエストとかPivotalのDeliverの通知とかもHipChatにメッセージが流れこむように仕込んでいる最中です。
このあたりはまた別途書きたいと思います。

Jenkins

http://jenkins-ci.org/

唯一、自分達のサーバで運用しています。使い方的にはオーソドックスな使い方です。
唯一にして最大の課題はチームの意識的にJenkinsさんをあまり重視していない傾向があることです。このあたりはチームリーダとして頭が痛いところでもあったりするのですがJenkinsはそんなことお構いなく日々、テストとビルドを繰り返しています。
我々のサービスはAWSを利用しているので将来的にはCIとステージングのデプロイ⇒テストを自動実行するようにしたりしたいところ。あとはやっぱり自前でサーバを持つとメンテナンスが面倒なので、できればCloudBeesDev@Cloudとか使うようにしたいなと考えています。