Tech Sketch Bucket of Technical Chips by TIS Inc.

開発者必見!チーム開発がみなぎるWebサービス&ツールまとめ

Pocket

この記事はeXcale Developer's Blogから移転されたものです。

eXcale開発チームの西谷(@Keisuke69)です。
今回はチーム開発を行う際に有用なWebサービスやツールとして、実際にeXcaleの開発チームで普段、開発業務を行うために使っているWebサービスやツールを紹介しようと思います。

eXcaleの開発チームについて


我々のチームではeXcaleというサービスを開発しています。
ちなみにeXcaleは誰でも無料でサインアップして使うことができるのですが、今ならキャンペーン中で新たにサインアップすると有料機能の利用に使えるクーポンを配布しています。ぜひこの機会にeXcaleも試してみてください。

チームメンバは全部で6名と比較的小規模と言えます。当初は2名でスタートしたのですが、それ以降は5名前後を維持していてあえて増員をしないようにしています。このあたりはまたどこか別の機会でお話できれば、と思います。
また、開発チームと言いつつも開発以外の運用だとかマーケティングとかそういったことも自分たちでやってます。
開発はスクラムをベースにしたアジャイル開発でテストファーストを導入しています。
リリース頻度はそれほど高くなくて、週に1回以上ってくらいです。もっとリリース頻度を上げたいところですが、Amazonとかクックパッドさんみたいにはなかなかいかないですね。

前提

我々のチームでは新たに開発ツール等を導入する場合、基本的にはサービスとして提供されているものを利用することにしています。
例えばRedmineを自分たちのサーバにインストールして使うことも出来ますが、そういうことは極力避けています。
なぜなら、我々がやりたいことはあくまでもプロダクトの開発であって、それに少しでも集中するためには、開発ツールの運用などしたくないからです。
人数も限られているのでなかなか手が回らないのも実情ではありますが。

従って、今回紹介するものは必然的にほとんどがツールと言ってもWebサービスとして提供されるものになっています。

Github

https://github.com/

みんな大好きGithubです。これは今更特に説明する必要ないかと思います。
全てのソースコードはGithub上でプライベートリポジトリとして管理しています。
全てとは言わないまでもパブリックにできるところは公開してしまいたいなーと考えていたりはしますがまだ公開はしていません。
なお、コンポーネントごとにリポジトリを分けていて20個くらいのリポジトリがあります。

パブリックなリポジトリだけであれば無料で使えますが、プライベートリポジトリを使う場合は有料になります。

そういえばシステム監視のIssueの管理にも使っていて、監視システム(Zabbixとか)からアラート発生時はメール等での通知とともに自動で新たなGithub上のIssueを発行する感じになっています。

HipChat

https://www.hipchat.com/

開発者向けのチャットツールです。以前はSkypeとかを使ってましたが全面的に移行しました。iOS/Androidクライアントもあります。
$2/人と無料ではないですが5名までなら無料で使えます。ただし6名からは5名分が無料になるわけではないです。
チーム内のコミュニケーションはなるべくHipChatでやるようにしています。HipChatだと全てのログが永遠に残ることと検索ができるので後から経緯を追ったりすることができ、非常に助かっています。

なお、チャットツールの導入時に同様のサービス(ChatWorkidobata etc)を検討したのですが、主にファイル添付の可否、apiのあるなし、各種ツールとの連携の容易さ、過去ログの検索性あたりが理由でHipChatを選択しています。

一つ注意点をあげるとするとHipChatに添付したファイルはAWSのS3上に保管されていてパブリックな状態です。従ってURLさえ分かってしまうと誰でも見れる状態です。
Are files uploaded to HipChat secure/private? – Help Center
URL自体は推測しづらいものであるものの要注意と言えます。従って機密性の高い情報は添付しないほうがいいかも知れません。
なお、上位ディレクトリがパブリックになっているわけではないので他のファイルが一覧できるとかそういうわけではありません。

また、最近はチーム内のあらゆる通知をHipChatに集める方針にしていて、例えば監視システムからのアラートとかGithubのプルリクエストとかPivotalのDeliverの通知とかもHipChatにメッセージ通知されます。
あとは本番、開発ともに新しいコードがリリースされた場合に、どのコンポーネントのどのバージョンがリリースされたかが通知されるようになっています。

PivotalTracker

https://www.pivotaltracker.com/

これはプロダクト開発の管理に使ってます。こちらも公開する場合は無料ですが非公開の場合は有料です。
前述の通りスクラム開発をベースにしているのでスクラム開発と相性の良いPivotalTrackerを使ってます。
プロダクトの開発用なので主にユーザーストーリー、つまり価値を届けるタスクを管理しています。

PivotalTrackerでは全てをストーリーとして管理します。各ストーリーはFeature、つまりビジネスバリューを生むストーリーであれば見積もりポイントを設定します。
各ストーリーは優先度に従って上から順に並べるので各メンバーは上から粛々と対応していく感じでやっています。
ちなみにイテレーションは2週間でポイントのスケールはフィボナッチ数列です。
ポイントの見積もりは2週間に1度のスプリントミーティングでプランニングポーカー使って見積もっています。
ベロシティも参考にはしてますが不具合が多いと全くベロシティ増えないってことになってやる気がそがれます。
こちらはiOSクライアントはありますがAndoroidのものはないようです。

Trello

https://trello.com/

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

PBworks

http://pbworks.com/

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

MindMeister

http://www.mindmeister.com/ja

マインドマップを書くことができるサービスです。無料でも使えます。
特徴は1つのマインドマップを複数人でシェアして同時に編集ができることです。
誰かが行った編集はリアルタイムで他の人の画面上にも反映されます。

我々の場合、チーム内でディスカッションする時には大きなモニタには誰かが代表でディスプレイ出力していることが多いです。そうすると誰かの意見を反映するのはディスプレイに繋がっている人だけになってなかなか面倒だったりします。
MindMeisterを使えばディスプレイにMindMeisterの画面を表示しておけば、各メンバーは手元のマシンで修正するだけでリアルタイムにディスプレイに表示させるということができます。
唯一の問題はリアルタイムに手元のマシン上でも反映されるので誰も大きなディスプレイを見なくなってしまうことくらいです。

Cacoo

https://cacoo.com/

誰もが知ってるであろうドローイングツールです。
開発チームと言えどもプログラミングばかりしているわけではありません。
スライドとかを作ることも多いです。そういったときのちょっとした絵を書くときに使っています。
あとはMindMeister同様、複数人でシェアできるのでそういった使い方もしています。
AWSのアイコンやiOS、Andoroidなども無料のステンシルとして提供されていたり、構成図やワイヤーフレーム、UIのデザインをさらっと書くのに便利です。

Google Analytics

http://www.google.com/analytics/


これも誰もが知ってる超メジャーなツールですね。
Googleが無料で提供しているWebサイトのアクセス解析ツールです。有料版のGoogleアナリティクスPremiumもあり、こちらでは各種件数の制限が緩和されていますが多くは無料版で問題ないかと思います。

我々のチームはマーケティングやプロモーションも自分たちで行っているため、Webサイトのアクセス解析は非常に大事になってきます。
日々の計測だけでなく、とあるプロモーションを実施した際の効果測定のため、傾向分析など非常に重要なツールとなっています。
また、Google Analyticsにはウェブテストという機能があり、これを利用すると非常に簡単にA/Bテストが行えます。
我々も画面上の微細な修正に関するA/Bテストのために活用しています。

Elasticsearch + Kibana3

http://www.elasticsearch.org/

こちらのエントリで先日紹介したものです。
前述のGoogle Analyticsを用いたWebサイトのアクセス解析だけでなくあらゆるログの解析と可視化を行うことを試みています。
そのためのツールとしてElasticsearchとKibanaを導入しています。実際にはfluentdを使って各ログをElasticsearchに流し込んでいます。
こちらはWebサービスではなく我々自身でサーバの運用を行っています。

youRoom

http://ja.youroom.in/

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

Jenkins

http://jenkins-ci.org/

これも自分達自身で運用しています。使い方的には非常にオーソドックスな使い方で普通にCIしています。
Github上のマスターリポジトリへのpushがあるたびにテストとビルドを繰り返しています。
我々のサービスはAWSを利用しているので将来的にはCIとステージングの環境そのものをデプロイしてテストするということを自動で実行するようにしたいところです。
あとはやっぱり自前でサーバを持つとメンテナンスが面倒なので、できればCloudBeesのDev@Cloudとか使うようにしたいなと考えていたりもします。

どれも有名どころなのでそれほど目新しいものはなかったかも知れませんが、少しでも参考になれば幸いです。
余談ですが、各サービスのトップページをキャプチャして貼り付けていて気づいたのですがコラボレーションという言葉を使っているサービスが多いですね。
そういう意味でもどれもチーム開発のためのWebサービスと言えるではないでしょうか。

エンジニア採用中!私たちと一緒に働いてみませんか?