Accel Platform のつくりかた NTTデータイントラマート開発本部 2013/10/18
アジェンダ 1. アジャイルの ライトウィング と レフトウィング 2. intra-mart における チーム環境 スクラムの実践と 夫点 3. intra-mart における 開発環境 Commit, Build, Test, Deploy を える環境 4. まとめ 2
from An Agile Way アジャイルの ライトウィング と レフトウィング 3
情報種別 公開 会社名 NTTデータイントラマート 情報所有者 開発本部 アジャイルの ライトウィング と レフトウィング http://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing and leftwing of agile.html より図を引用 4
アジェンダ 1. アジャイルの ライトウィング と レフトウィング 2. intra-mart における チーム環境 スクラムの実践と 夫点 3. intra-mart における 開発環境 Commit, Build, Test, Deploy を える環境 4. まとめ 5
intra-mart における チーム環境 スクラムの実践と 夫点 6
情報種別 : 公開会社名 :NTTデータイントラマート intra-mart における チーム環境 情報所有者 : 開発本部 スクラムの実践と 夫点 弊社では アジャイルプロセスのひとつである スクラム を採 しています 7
スクラムとは? http://www.slideshare.net/ryuzee/scrum 8048905 より図を引用 8
スクラムとは? 詳細は割愛させていただきます http://www.slideshare.net/ryuzee/scrum 8048905 より図を引用 9
スクラムとは? 私達のチームが実践しているスクラム開発において 実際に使っているモノ コトを 裸々にお せいたします http://www.slideshare.net/ryuzee/scrum 8048905 より図を引用 10
ミーティング & ロール & 道具 定例ミーティング 計画ミーティング スプリントレビュー デイリースクラム 朝会 会 ふりかえり (KPT) その他 モヤモヤ MTG 1 on 1 形式のヒアリング ロール プロダクトオーナー スクラムマスター チーム 道具 プロダクトバックログ スプリントバックログ バーンダウンチャート タスクボード Done の定義 11
定例ミーティング 12
定例ミーティング その他 - モヤモヤ MTG - 1 on 1 の対話 13
定例ミーティング 期間は 2 週間 14
スプリント計画ミーティング 初 に実施 15
スプリント計画ミーティング アジェンダ 1. ミニ KPT のふりかえり 前回の チームとして取り組む Try 前スプリントのミニ KPT 2. Try の共有 3. 主担当決定 ストーリー執筆者ちょろ Story がチョロか確認する 4. 原稿執筆 5. プランニングポーカー 6. 決め事を決めましょう スプリント期間 スプリントレビューの場所 & 時 Done の定義 モットー スプリントのスコープ = 消化 標ストーリー 7. タスクボード作成 8. まとめ 16
スプリントレビュー 最終 に実施会議室ではなく 席付近のホワイトボードを利 17
スプリントレビュー タイムスケジュール 18
デイリースクラム 朝会チーム全員参加 10:15 から 15 分以内朝会終了後に 朝のご歓談 あり 会チーム全員参加 17:30 から 5 分程度 助けローイ 帰る時間宣 あり 19
デイリースクラム - 朝会 毎朝 10:15から10:30に実施 1. Tryの確認 2. 各 報告 1. 昨 やると ったことで 出来たこと できなかったこと 2. 今 やる事 3. 困っていること 3. 々の喜び 悩みの吐露 4. 周知事項 IMBoxの [ 周知事項 ] タグの読み上げ 朝会終了後 朝のご歓談 を実施 公私問わず現状を共有するための ち話 20
デイリースクラム - 会 17:30 から 5 分程度 1. 今 やると ったことで 出来たこと できなかったこと 2. 助けローイ 3. 帰る時間宣 21
デイリースクラム 効果 1. 情報共有 2. 障壁取り除きのきっかけ 3. の開始 & 終了の儀式 ( ルーティン ) 22
ふりかえり 毎週 曜 KPT 形式 23
ふりかえり - KPT Keep, Problem, Try 形式のふりかえり 24
ふりかえり - KPT 25
ふりかえり - KPT 26
ふりかえり - KPT 効果 チームの 体感を める チーム改善のアイデアを 緒に考え続ける メンバー同 が1つのチームになっていく感覚を味わう 能動的 有機的にメンバーが活動する 浄作 らふりかえりを い ら改善していくという意識を持つことの習慣化 27
その他のミーティング その他 - モヤモヤ MTG - 1 on 1 の対話 28
その他のミーティング モヤモヤ MTG 々の作業を通じて感じたモヤモヤをチケット化し 週に 度 みんなで解決する MTG アラートを埋もれさせない為に有効 1 on 1 形式のヒアリング 1 2 スプリントに 回の割合で メンバーとスクラムマスターが 1 対 1 で話をする ポジティブフィードバックとチャンスフィードバック 最 限の を発揮し 気持ち良く仕事するために 障壁は何か? やりたいことは何か? やりたい! という意思が重要 29
ロール 30
ロール 31
ロール 開発本部 私 11 2 名 32
道具 33
道具 34
プロダクト バックログ Redmine チケットとして管理 棚卸など整理する際は Excel 利 も 35
プロダクト バックログ 完全なる優先順位 超重要 機能追加も バグも 同列に優先順位付け Redmine のチケットにて管理 カスタムフィールド 優先順位 を作って その順番に並ぶようにしています 棚卸など整理する際はExcelを利 する場合あり 36
プロダクト バックログ 37
プロダクト バックログ ユーザーストーリーの形式 38
バーンダウンチャート 壁に 書き スプリント単位の他に シーズン単位のチャートもあり 39
バーンダウンチャート ( スプリント単位 ) 40
バーンダウンチャート ( シーズン単位 ) 41
タスクボード 緑 : 既に Done :Done 確実 :Done 怪しい :Done 無理決定 42
Done の定義 スプリントごとに改善 改廃を実施 43
Done の定義 44
まとめ 45
IM の場合 開発本部 私 11 2 名 Redmine チケットとして管理 棚卸など整理する際は Excel 利 も スプリントごとに改善 改廃を実施 初 に実施 壁に 書き スプリント単位の他に シーズン単位のチャートもあり 朝会チーム全員参加 10:15 から 15 分以内朝会終了後に 朝のご歓談 あり 会チーム全員参加 17:30 から 5 分程度 助けローイ 帰る時間宣 あり 期間は 2 週間 最終 に実施会議室ではなく 席付近のホワイトボードを利 毎週 曜 KPT 形式 その他 - モヤモヤ MTG - 1 on 1 の対話 46
事にしたいこと 47
事にしたいこと 1. と 体を壊さない!( これ絶対 ) 2. 楽しむ! ( 冗談を い合おう ゴッコから始めれば良い ) 3. 声を掛けあって 協 する 助け合う 情報共有する 4. 分からなかったら聞く ( 抱え込まない ) 5. 相 を信じる! 6. シンプルに考える ( 本質はなんなのか? 巧く を抜く 例の早く仕事を 付けるアレを意識する ) and More! 48
事にしたいこと 1. と 体を壊さない!( これ絶対 ) 2. 楽しむ! ( 冗談を い合おう ゴッコから始めれば良い 楽しさ に重点を置き ) 3. 声を掛けあって 協 する 助け合う 情報共有する イキイキとした現場 4. 分からなかったら聞く 律的なチームを 指して ( 抱え込まない ) 5. 相 を信じる! 6. シンプルに考える 々活動を っております ( 本質はなんなのか? 巧く を抜く 例の早く仕事を 付けるアレを意識する ) and More! 49
アジェンダ 1. アジャイルの ライトウィング と レフトウィング 2. intra-mart における チーム環境 スクラムの実践と 夫点 3. intra-mart における 開発環境 Commit, Build, Test, Deploy を える環境 4. まとめ 50
intra-mart における 開発環境 COMMIT, BUILD, TEST, DEPLOY を える環境 51
次次 1. 概要 2. 開発環境 開発端末 開発サーバ 環境構築 ビルド環境 テスト デプロイ 3. 運 管理対象 バックアップ / リカバリ 可視化 / 監視 52
intra-mart における 開発環境 1. 概要 53
1-1. 概要 : 規模 期間 開発者 チーム 2010 年 9 月 ~ 現在 40 名 ~80 名程度 4 チーム ~10 チーム モジュール 80 (400 プロジェクト ) ビルドジョブ 420 54
1-2. 概要 : 開発サイクル 3 カ 単位のリリース 4 1 Spring 7 1 Summer 10 1 Autumn 1 1 Winter リリース テスト 開発 55
intra-mart における 開発環境 2. 開発環境 56
2-2. 開発環境 :OS Windows 7 Mac OS X Ubuntu Linux CentOS Red Hat Enterprise Linux CentOS Windows Mac OS X Ubuntu Linux RHEL 57
2-2. 開発環境 : 開発端末 開発端末 ソフトウェア Java Platform, Standard Edition Eclipse Eclipse Plugin 各種 e Builder 業務スケルトン Apache Maven Apache Ant Resin Sphinx 概要 Java 開発 実行用 Java 開発用 IDE Fingbugs, Checkstyle, M2Eclipse, 独自 Plugin etc イントラマート開発用 IDE コードジェネレータビルドツール, 独自拡張 Plugin 含むビルドツールアプリケーションサーバドキュメント作成ツール 58
2-2. 開発環境 : 開発サーバ 開発サーバ ソフトウェア Apache HTTP Server Nginx Jenkins Stoplight Zabbix Subversion Git (Gitlab) Sonatype Nexus Coverity 概要 Webサーバ Webサーバ継続的インテグレーションツールジョブ監視サーバ監視ソースコード管理システムソースコード管理システム Mavenリポジトリ管理システムソースコード静的解析システム 59
2-2. 開発環境 : 開発サーバ 開発サーバ ソフトウェア Redmine Milkode ngircd IRC Bots PasteIt! Open LDAP 概要プロジェクト管理システムソースコード検索システム IRC Daemon IRC Robot 各種通知等内製コード共有ツール LDAPサーバ 60
2-3. 開発環境 : 環境構築 開発環境の構築は 1 クリックで実現完了 内製の環境構築スクリプト 初期導 コスト削減 環境の差異による品質のブレを防 61
2-4. 開発環境 : 開発の流れ ソースコードのコミット / プル 1 50 回以上 機能追加 / 不具合修正 62
2-4. 開発環境 : 開発の流れ 変更検知によりビルド実 コンパイル ユニットテスト 結合テスト (4DB) テストケース合計 50000 以上 63
2-4. 開発環境 : 開発の流れ ビルド実 画 64
2-4. 開発環境 : 開発の流れ ビルド完了後 レポート 成果物のデプロイ 65
2-4. 開発環境 : 開発の流れ 成果物を利 したテスト 動作確認 / 検証 ブラウザ 動テスト 66
2-4. 開発環境 : 開発の流れ 開発者はソースコードをコミット / プルするのみそれ以降の 順は意識する必要が無い状態を維持 インプット プログラムのソースコード ドキュメントのソースコード アウトプット 解析レポート ( 静的コード解析, 翻訳確認等 ) ユニットテスト結果 ビルド成果物 ( モジュール ) アプリケーション (e Builder, im-juggling 等 ) 67
2-5. 開発環境 : その他 検証環境 Vagrant + α による検証環境の 動構築 ソースコード コードの整形ルール / 動整形 メッセージの外部化 コミュニケーションツール IRC, IMBox, WordPress etc 負荷試験 Apache Jmeter Oracle eload 脆弱性試験 IBM AppScan 68
intra-mart における 開発環境 3. 運 69
3-1. 運 : 管理対象 モジュール 80 (400 プロジェクト ) ビルドジョブ 420 サーバ 5 台 モジュール数は Accel Platform のみ 70
3-2. 運 : バックアップ / リカバリ バックアップ / 冗 化 ビルドサーバは分散構成 都度バックアップ リカバリ リカバリ / サーバ追加も OS インストール含め数時間以内に可能 71
3-3. 運 : 監視 状態の可視化 / 監視 える化 統合監視 500 強のジョブ / サーバを 元的に監視 72
アジェンダ 1. アジャイルの ライトウィング と レフトウィング 2. intra-mart における チーム環境 スクラムの実践と 夫点 3. intra-mart における 開発環境 Commit, Build, Test, Deploy を える環境 4. まとめ 73
まとめ アジャイルの両ウィング 協調でゴールに向かう チーム環境 intra-mart でのスクラム実践 速に 橋を叩いて渡る 開発環境 intra-mart での CI 環境 74
ご清聴ありがとうございました ご要望 ご質問等は twitter:@intramart_dev まで 75