アジャイル開発において、三種の神器とよばれる3種類のツールがあります。アジャイル開発をするうえではかかせない存在です。
Contents
目的
ツールを導入することで無駄な時間を省き、コミュニケーションロスを無くし効率的な開発が行えるようにします。
三種の神器
それは下記3つのことを指します。
- TBS/BTS(Issue Tracking System/Bug Tracking System)
- SCM(Source Code Management)
- CI(Continuous Integration)
TBS/BTS
Issue Tracking System:課題管理システム
Bug Tracking System:バグ追跡システム
代表されるツール
- Redmine
- Trac
SCM
Source Code Management:ソースコード管理
代表されるツール
- Git
- Subversion
- Mercurial
CI
Continuous Integration:継続的インテグレーション
代表されるツール
- Jenkins
- Circle CI
- Travis CI
今回はホスティングサービスを使わずRedmine、GitLab、Jenkinsを構築してみます。
さらに無料でも使えるチャットサービスslackをプラスします。
下記はイメージです。
ツールの役割
Redmine
Backlogs画面(バックログ)
- ストーリカードを作成
- ストーリーカードの優先順位を更新
- スプリントを作成
- スプリントの進捗を更新
- ストーリーカードの優先順位が高いものからタスクカードを作成
- ストーリーカードとタスクカードの関係は親子関係で形成される
TaskBoards画面(カンバン)
- タスクの管理
- ベロシティの設定
- ベロシティの確認
- バーンダウンチャートの確認
- スプリント障害事項に表示させている項目の確認
備考
- バージョンをスプリントとすることができる
- リポジトリやソースの確認もリポジトリブラウザから可能
Git/GitLab
- リポジトリの管理
- マージリクエストが可能(Githubでいうところのプルリクエスト)
- Redmineのチケット(ISSUE)と連携
- コミットログやプロダクトバックログ項目(ストーリーやタスク)と連携
- コミットを契機にJenkinsと連携して自動的にさまざまな処理が可能
Jenkins
- 成果物の管理
- 成果物のデプロイ
- テスト/ビルド/デプロイの自動化
- メールやSlackへJenkinsからテスト/ビルド/デプロイなどの結果通知が可能
注意
- 目的では無く手段なので、何の為に行うのかを理解する
- 手段に固執するのではなく、柔軟にカスタム、ローカライズすることでチームにあったアジャイル開発手法が出来上がる
- プロダクトに必要が無いものは省き、必要があれば追加する
目的はビジネス価値の最大化である
まとめ
チームの自己組織化が重要
- チームや自分自身が考え、その実現に向かって行動を起こすこと
- スクラムチームのメンバー全員が対等
- 誰の意見でもフラットに受け入れ、判断していくことが必要
- やれることからチャレンジする
- 最初から失敗せずに上手くいくことは無いので、try & error で経験をつむ
- チームでの情報共有、意見の交換、全員が同じビジョンを持つ
- プロダクト、チームにあったカスタマイズが重要
- あくまでプロダクトを成功させる為の1つの手段である
スクラムガイドには習得は困難とあるが、自分達でスクラムをベースにプロダクトに合ったオリジナルフレームワークを作っていくことが成功の秘訣だと思います。
関連リンク
スクラム開発とDEVOPS
http://vistylee.com/agile-devops/
これほんとに管理できますか?
仕組みを作りましたウェーイ、な目線じゃないでしょうか?
参考いただきありがとうございます。
仕組みを作った後は、運用しながら改善をしていくことが重要になるかと思います。
管理自体は可能ですが、仕組みそのものは手段ですので、プロジェクトにフィットさせていく必要は出てきますね。
チームで目的を共有し、メンバーの認識を合わせたうえでローカライズを行うことが重要だと思います。(プロジェクトによって抱える問題や状況は様々となりますので)
例えば、この仕組みで運用しながらスクラムであれば KPT で問題点をあぶり出し改善を行っていくなどです。
注意やまとめの項目も参考にして頂ければ幸いです。