...

SIerにおくる、 アジャイルプロセスの実践

by user

on
Category: Documents
4

views

Report

Comments

Transcript

SIerにおくる、 アジャイルプロセスの実践
SIerにおくる、
アジャイルプロセスの実践
- アジャイル統一プロセス アジャイルプロセス協議会アジャイルプロジェクトマネジメントWG
株式会社アットウェア
牧野隆志
1
Copyright© 2009 atWare,Inc. All rights reserved.
自己紹介
• 牧野隆志(まきのたかし)
‒ 株式会社アットウェア 代表取締役
http://www.atware.co.jp/
‒ アジャイルプロセス協議会
アジャイルプロジェクトマネージメントWG
http://www.agileprocess.jp/
‒ 日本Javaユーザグループ幹事
http://www.java-users.jp/
2
Copyright© 2009 atWare,Inc. All rights reserved.
今日の目的
SIerがよりよいシステムを
構築するための手段として、
実践的なアジャイルプロセ
スを提案
3
Copyright© 2009 atWare,Inc. All rights reserved.
ターゲット
• 中∼大規模のSI(システム構築)
コーバーンの尺度
重要度
生命
(Life)
L6
L20
L40
L100
重大な経済的損失
(Essential money)
E6
E20
E40
E100
軽微な経済的損失
(Discretionary money)
D6
D20
D40
D100
使い勝手
(Comfort)
C6
C20
C40
C100
1∼6
∼20
∼40
∼100
人数
4
Copyright© 2009 atWare,Inc. All rights reserved.
(改めて)なぜアジャイルプロセスか
• 不安定な要求
• ビジネス要求の変化への追随
• ドキュメントだけを工程間、技術者
間のインタフェースにすることのロ
ス
5
Copyright© 2009 atWare,Inc. All rights reserved.
アジャイル宣言
私たちは、
プロセスとツールよりも
個人と対話に、
包括的なドキュメントよりも
動くソフトウェアに、
契約交渉よりも
顧客との協調に、
計画に沿うことよりも
変化に対応することに、
価値をおく
6
Copyright© 2009 atWare,Inc. All rights reserved.
中・大規模開発とアジャイル
• XPでは「中小規模のチーム」(X
P入門初版)、「多くの人が関与す
る場合、プラクティスを増やし、変
える必要がある」(XP入門第二版)
• Scrumでは「チームのメンバは最大7
人」「複数チームで構成」
• FDDでは、比較的大規模にも適用
可能(モデル駆動、設計を重要視)
7
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか①
• コミュニケーションとりづらい
‒ 毎日のスタンドアップミーティングで
全員が発言できない
‒ チームに分割した場合のチーム間での
コミュニケーション
8
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか②
• オンサイトする顧客がビジネス要求
の全てを把握できていない
‒ ある程度以上の規模では情報システム
部署の担当者がオンサイト
‒ 現場担当者からのフィードバックを継
続的に受けれない
9
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか③
• 核となるアーキテクチャ
‒ XPの「最良のアーキテクチャ、要件、
設計は、自己組織的なチームから生み
出される」のは、能力の高いプログラ
マがモチベーション高くチームを形成
しているから
‒ アーキテクチャがインクリメンタルに
変化したら、大規模=多人数に浸透さ
せることが困難
10
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか④
• 全体包括的なモデル
‒ プロジェクト全体(全員)でのコード
共有が難しいため、整合性とれてない
モデルが点在する
‒ 大規模なリファクタリングはコストが
かかる
‒ データベースリファクタリング
11
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか⑤
• 長期間のプロジェクト
‒ あまりにも遠い未来のゴールを見失う
‒ 変化がない、同じことの繰り返し
‒ モチベーションの維持
12
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか⑥
• 日本のSI=多重請負モデル
‒ 目的(ゴール)の共有
‒ スキルや経験のばらつきが激しい
‒ アジャイルに馴染めない人をバスから
降ろすわけにいかない
13
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか⑦
• なんだかんだといってもドキュメン
ト
‒ 規模が大きくなるにつれ、コード共有
どころか全体の仕様を把握することす
ら難しくなる
‒ 操作マニュアルの元ネタ
‒ コードが読めない顧客への運用・保守
の移管
14
Copyright© 2009 atWare,Inc. All rights reserved.
なぜ大規模に向かないか⑧
• 体系化されたガイドラインがない
‒ 標準
‒ 企業毎の規約
‒ 未経験なものにチャレンジする勇気
15
Copyright© 2009 atWare,Inc. All rights reserved.
教科書通り実行して成功するのは
• 毎日のスタンドアップミーティング
で全員が発言できる程度の人数の優
秀なプログラマが、常にコミュニ
ケーションをとりながら全体を把握
できる規模
16
Copyright© 2009 atWare,Inc. All rights reserved.
XPのプラクティス
• XPは全てのプラクティスがなんら
か関係を持っていて、全てを実践す
ることで成り立つ
‒ カスタマイズせず、そのまま適用する
ことを推奨している
‒ 現実的にはかなり難しい
17
Copyright© 2009 atWare,Inc. All rights reserved.
本格的に適用するには
• プラクティス集ではない、体系化し
たガイドラインが必要
‒ 経験が無くてもその通りやればある程
度うまくいく
‒ 必要以上にカスタマイズ(取捨選択)の
幅を持たせない
18
Copyright© 2009 atWare,Inc. All rights reserved.
ベースとなる規約
• 反復型開発として体系化されている
統一プロセス(UP)にアジャイル
マインドとXP、Scrum、FDDなどのプ
ラクティスを注入
アジャイル
プラクティス
マインド
統一プロセス
19
Copyright© 2009 atWare,Inc. All rights reserved.
ライフサイクル
方向
推敲
付け
作成
要件
設計
実装
アジャイルに
要求/設計/実
装/テストを
テスト
20
Copyright© 2009 atWare,Inc. All rights reserved.
移行
方向付けフェーズ
• ビジョン、ゴール、スコープの合意
• 技術的リスクの明確化
• 推敲フェーズの計画
• 数日∼1週間程度
21
Copyright© 2009 atWare,Inc. All rights reserved.
ビジョン、ゴール、スコープの合意
• UPより
• 価値の共有
‒ 顧客⇔開発者⇔開発者
‒ アジャイル宣言、原則
‒ プロジェクト・クレド
• 開発ルームの壁に貼る、開発者に配る
22
Copyright© 2009 atWare,Inc. All rights reserved.
推敲フェーズ
• 実行可能な中核アーキテクチャを実
装し、主要リスクを軽減
‒ アーキテクチャの早期確立
‒ 核となる部分とそれ以外の分離
‒ リスクの高いストーリ
‒ プロトタイプではない
• 全体包括モデル構築
• 全ての要求を定義しない
• 詳細な計画は立てない
23
Copyright© 2009 atWare,Inc. All rights reserved.
核となる部分とそれ以外の分離
• ソフトウェアプロダクトラインより
• プロダクトライン開発(厳格)とプロ
ダクト生産(アジャイル)
‒ アーキテクチャの核となるフレーム
ワークやコンポーネントとそれを利用
したビジネスアプリケーションを分離
24
Copyright© 2009 atWare,Inc. All rights reserved.
実装量
方向
付け
推敲
作成
その他のビジ
ネスロジック
核となるF/W、
コンポーネント
25
Copyright© 2009 atWare,Inc. All rights reserved.
移行
チーム編成
• 推敲フェーズのメンバが作成フェーズの各
チームのチーフプログラマに
26
Copyright© 2009 atWare,Inc. All rights reserved.
全体包括モデル構築
• FDD、アジャイルモデリングより
• ドメイン・モデル
‒ ホワイトボード→電子データに転記
• メンテナンスが容易になる
• 用語集
‒ Wiki
27
Copyright© 2009 atWare,Inc. All rights reserved.
作成フェーズ
• XPなどのプラクティスを用いて、
要求/設計/実装/テストをイテ
レーティブに、インクリメンタルに
• テーマ
28
Copyright© 2009 atWare,Inc. All rights reserved.
テーマ
• 複数回のイテレーションを束ねたリ
リース
• イテレーション、リリースのテーマ
の明確化
• テーマを達するために適切なイテ
レーション、リリースの長さを決定
‒ システムとして意味のある状態に保つ
29
Copyright© 2009 atWare,Inc. All rights reserved.
リリース内でのフェーズ
リリース
方向付け
推敲
移行
作成
イテレーション
バッファ
フィードバック
リファクタリング
結合テストコード
デザイン適用
性能テスト
技術リスク
の解消
主ストーリ
30
Copyright© 2009 atWare,Inc. All rights reserved.
リリース
ふりかえり
リリース計
画ゲーム
コミュニケーション
• 二段階朝会
‒ 全体:全員参加、チーム代表者のみ発
言(全体周知)
‒ チーム毎:チーム内の全員が発言
• 情報ボード
‒ テーマや直近のイベント、周知事項な
ど
• Skype(グループチャット)
31
Copyright© 2009 atWare,Inc. All rights reserved.
オンサイト顧客
• 開発室内に顧客用の席を確保
• Skype(チャット)
‒ オンサイトでないときのリアルタイム
な情報共有
• 顧客先と開発室との頻繁な行き来
‒ ホントのユーザと会話しやすい
‒ 要件定義チーム
32
Copyright© 2009 atWare,Inc. All rights reserved.
要件定義チーム
• 顧客+専任メンバ+開発チーム
‒ 各開発チームのうち一名が参加
→ 次イテレーションの開発リーダ
要件定義
要件定義
テストシナリオ
実装
設計・テスト
テストシナリオ
実装
設計・テスト
33
Copyright© 2009 atWare,Inc. All rights reserved.
要件定義
実装
設計・テスト
コード所有
• チーム毎に個別所有
‒ プロジェクト全体での共有はしない
• チーム内で共有
34
Copyright© 2009 atWare,Inc. All rights reserved.
見える化
タスクボード
バーンダウン
35
Copyright© 2009 atWare,Inc. All rights reserved.
タスクボード
優先順位
36
Copyright© 2009 atWare,Inc. All rights reserved.
タスクカード
ユースケースや
区分毎に色分け
付箋が付いてたり・・・
37
Copyright© 2009 atWare,Inc. All rights reserved.
移行フェーズ
• 本番環境相当でのシステムテスト
‒ 障害テスト、負荷テスト
• 運用テスト、運用訓練
‒ システム全体のフィードバック
• ドキュメント整備
38
Copyright© 2009 atWare,Inc. All rights reserved.
ドキュメント
• UPではオプションとして大量のド
キュメントを定義
→ 現実的に必要なドキュメントの
みに絞って、必須とする
• 名称、内容は各社固有のもの転用可
能とする
‒ ただしどの工程で作成すべきか考慮
39
Copyright© 2009 atWare,Inc. All rights reserved.
最後に
守 破 離
師匠の教えを忠実に守り、
師匠の教えに自分のアレンジを加え、
自分オリジナルなやり方を確立する
40
Copyright© 2009 atWare,Inc. All rights reserved.
ご清聴ありがとうございました
[email protected]
41
Copyright© 2009 atWare,Inc. All rights reserved.
Fly UP