ccpmの考え方を活用した...

27
1 CCPMの考え方を活用した テストフェーズにおける課題解決 ~課題発見、解決までのケーススタディ~ 三菱電機株式会社 通信機製作所 水野昇幸 ソフトウェア品質シンポジウム2014 ※CCPM:Critical Chain Project Management

Upload: others

Post on 02-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

1

CCPMの考え方を活用した テストフェーズにおける課題解決 ~課題発見、解決までのケーススタディ~

三菱電機株式会社 通信機製作所

水野昇幸

ソフトウェア品質シンポジウム2014

※CCPM:Critical Chain Project Management

c-asaka
タイプライターテキスト
SQiP2014
c-asaka
タイプライターテキスト
Page 2: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

2

発表の目標&コンテンツ

現場におけるマネジメント上の課題を解決するためのヒントを

持ち帰ってもらう

CCPMを簡単に 紹介する

CCPMを用いた 現場課題解決に向けた考え方を知ってもらう

上手くいった場合、 上手くいかない場合を含めてケーススタディと考察を紹介する

※CCPM:Critical Chain Project Management

Page 3: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

3

背景

昨年のSQiP発表 システムテスト/テスト実施フェーズにおける ボトルネック/クリティカルチェーンを特定した 残日数管理マネジメントとその効果

クリティカルチェーン

「CCPM」の考え方を活用

詳しくは、SQiPシンポジウム2013の サイトに情報があります! http://www.juse.jp/sqip/symposium/2013/program/

Page 4: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

4

CCPMとは?

CCPMとは? Critical Chain Project Management: クリティカルチェーン・プロジェクトマネジメント

「ザ・ゴール」で有名なエリヤフ・ゴールドラット博士 考案のTOC(Theory of Constraint:制約理論)に基づく 全体最適の観点で構築されたプロジェクト管理手法。

PERT図的に整理されたタスク毎の安全余裕(バッファ)をまとめる。 そのバッファの減り具合をグラフ化することで、プロジェクトが どのように遅れている状況か?を判断することが出来る。

目立つ特徴は、バッファの設定方法とバッファ管理グラフ。

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率タスク1

タスク2

タスク3 バッファ

バッファ

バッファ

タスク1

タスク2

タスク3 バッファ バッファ

バッファ

Page 5: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

5

昨年の流れの紹介(ケース①)

試験装置が 1台なので これ以上の 速度向上は 無理です!

CCPMの活用

ボトルネック特定

ひとことで言うと…

プロジェクトの課題にCCPMの考え方を 用いて改善を行ってみました!

Page 6: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

6

1日~ 6日~ 11日~ 16日~ 21日~ 26日~ 31日~ 36日~ 41日~

テストケース群

残テストケース数

試験効率(項目/日)

予定日数

0XXXX 100 25 41XXXX 211 25 92XXXX 30 25 23XXXX 202 30 74XXXX 220 35 75XXXX 79 20 46XXXX 70 15 57XXXX 44 10 58XXXX 13 15 1

合計残日数 44

6XXXX

5XXXX

1XXXX

2X

0XXXX

3XXXX

7XXXX

4XXXX

8X

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン

グラフ管理 数値化 残日数

日々の課題 毎日の目標 進捗ギャップ

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

目標設定

バッファ

解決への 活動

タスク

タスク

タスク

タスク

試験装置が 1台なので これ以上の 速度向上は 無理です!

見積り

実際の進捗

※ケース①

Page 7: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

7

ですが、こんな意見も・・・

・今回がたまたま上手く行く条件だっただけで、 他の条件では上手く行かないのでは?

・事前に見積りなんて出来ない、 ⇒クリティカルチェーンを作ることが出来ない。 見積りが出来てもあてにならない。

・予定なんて変わるし、割り込みもたくさん入る。

・解決出来ない課題がある場合はどうするの?

・…etc

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

タスク

タスク

タスク

タスク

Page 8: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

8

ケーススタディ

昨年の発表を含め1年間で6件の事例がありました。 追加で3つ(ケース②~④)を紹介します。

ケーススタディ(実際の事例) ・試験装置ボトルネックのテスト実施(ケース①) ・並列3名でのテストケース作成 ・開発作業への適用(ケース②) ・HW試験への導入(ケース③) ・ソフトウェアテスト実施作業(ケース④) ・プロジェクト全体の改善

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

タスク

タスク

タスク

タスク

Page 9: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

9

遅れているが、何日に終わるか言うことが出来ない。 何処が問題で対応すべきか明確に出来ない。 ⇒発生している課題、目の前の課題が議論の対象。

開発作業への適用(ケース②)

【背景・課題】 開発人数7名ほど。詳細設計~コーディング~単体テスト

ガントチャート+イナヅマ線での管理あり。

昨日のXXの問題はどうなった?

これ、何で 進んでないの?

朝会にて ・・・

※朝会での状況は… タスク 担当 進捗

AAA詳細 Xさん

BBB Yさん

CCC Zさん

・・・ ・・・

AAAコード

・・・なんか 遅れてる?

Page 10: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

10

開発作業への適用(ケース②)

【対策】 ボトルネック⇒人。 人の制約を考慮して先のつながりを明確化。

朝会にて

※朝会での状況は… 各担当作業

Aさん(2日)

Aさん(4日)

Aさん(2日)

Bさん(4日)

Aさん作業を短くすると全体が 短くなるけど、何か出来ない?

Cさん(3日)

Cさん(3日)

Dさん(3日)

Dさん(2日)

この作業を改善しよう! ※Aさん作業がクリティカル

Bさん(2日)

この作業はXXの部分で時間がかかるので、そこを誰かに

手伝ってもらえると嬉しいです。

Page 11: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

11

開発作業への適用(ケース②)

【効果】 元々予定された日数よりも遅れる…という相談が 来ていたが、前倒しにて完了。

各担当作業

Aさん(2日)

Aさん(4日)

Aさん(2日)

Bさん(4日)

Cさん(3日)

Cさん(3日)

Dさん(3日)

Dさん(2日)

Bさん(2日)

-60

-40

-20

0

20

40

60

80

100

0.0 20.0 40.0 60.0 80.0 100.0バッファ消費率[%]

進捗率[%]

バッファ管理

作業の 見直し

実施出来ない 作業の見直し

2日前

1日前

遅れなし

Page 12: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

12

朝会

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン ・弱いチェーン

グラフ管理 数値化 残日数

日々の課題 毎日の目標 進捗ギャップ

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群 見積り

目標設定

バッファ

解決への 活動

※ケース②

実際の進捗

タスク 担当 進捗

AAA詳細 Xさん

BBB Yさん

CCC Zさん

・・・ ・・・

AAAコード

Page 13: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

13

各担当作業

Aさん(2日)

Aさん(4日)

Aさん(2日)

Bさん(4日)

Cさん(3日)

Cさん(3日)

Dさん(3日)

Dさん(2日)

Bさん(2日)

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン

グラフ管理 数値化 残日数

日々の課題 毎日の目標 進捗ギャップ

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群 見積り

目標設定

バッファ

※ケース②

実際の進捗

解決への 活動

主に担当者作業の偏りと 全体進捗とのつながりを改善

対策の対象と進捗が 結びついており、効果あり。

Page 14: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

14

HW試験への導入(ケース③)

【背景・課題】 HW系の試験不足により追加試験実施を考えるが、 試験作業自体を定義する作業に不安感。 どのくらいの作業があるかも見積ることが出来ない。

単純にWBSの定義、見積り方法を工夫して対処を実施。

試験装置が不安定で HWの追加試験が必要。 ですが、作業自体の定義

が出来るか…orz そんな状況で見積りも…

試験項目? 見積り?

Page 15: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

15

HW試験への導入(ケース③)

【対策】 試験項目:まず作成してもらい、レビューで合意 見積り :今までの作業との相対値で大中小を定義

試験項目 見積り

AAA 0.5日(ベース)

BBB 大(4日以上)

CCC 小(0.5日)

DDD 中(2日)

… ひとまず

このくらいは 必要では…

BBBに関連してXXXもやった方

が良いよ

AAAと比較してDDDは「中」の サイズですかね。

Page 16: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

16

朝会 マネージャへ展開

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン ・弱いチェーン

グラフ管理 数値化 残日数

日々の課題 毎日の目標 進捗ギャップ

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

目標設定

バッファ

実際の進捗

解決への 活動

※ケース③

Page 17: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

17

朝会 マネージャへ展開

実施した内容・状況の分析

人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

実際の進捗

解決への 活動

※ケース③

クリティカル チェーン

・最も長いチェーン ・弱いチェーン

グラフ管理 数値化 残日数

日々の課題 毎日の目標 進捗ギャップ

競合要素

目標設定

バッファ

主にタスクの出し方、 見積りのベースを改善

※ただ、この先も課題あり

Page 18: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

18

-30.0

-20.0

-10.0

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

0.0 20.0 40.0 60.0 80.0 100.0

バッファ消費率[%]

プロジェクトの進捗率[%]

試験項目ALL

SWテスト実施作業(ケース④)

【背景・課題】 テストケース10,000件以上の実施。 テスト対象が短納期のため作りこみが甘い。 ケース①と同様に、CCPM的に進めてみるが…

タスク

タスク

タスク

タスク

見込み作業(クリティカルチェーン)

不具合 が 多過ぎて作業 出来ません!

真上へ (作業できず)

発生した状況

Page 19: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

19

-30.0

-20.0

-10.0

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

0.0 20.0 40.0 60.0 80.0 100.0

バッファ消費率[%]

プロジェクトの進捗率[%]

試験項目ALL

SWテスト実施作業(ケース④)

【課題×2】 課題A:隠れた課題が発生して、大きな停滞が発生 課題B:課題を解決するための影響範囲の限界 発生した状況

実際には…?

改修作業

改修作業

※CCPMを実施した効果: ・出来る/出来ない作業範囲が明確 ・「いつ作業が停滞」が判断できた

⇒早期の対策・見直しを実施できた

対策実施期間 停滞発生が早いタイミングで 見えており、 早期に対策実施

Page 20: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

20

-30.0

-20.0

-10.0

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

0.0 20.0 40.0 60.0 80.0 100.0

バッファ消費率[%]

プロジェクトの進捗率[%]

試験項目ALL

SWテスト実施作業(ケース④)

【課題×2】 課題A:隠れた課題が発生して、大きな停滞が発生 課題B:課題を解決するための影響範囲の限界

1チーム内でCCPM実施

他チームではCCPM実施せず

全体に対してCCPMが適用してはいない

⇒全体としてのボトルネックまでは不明確

他チームからの支援までは受けづらい

このチームの 解決範囲が 速度の限界

Page 21: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

21

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン

グラフ管理 数値化 残日数

課題分析

日々の課題 毎日の目標 進捗ギャップ

タスク群への影響課題

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

目標設定

バッファ

実際の進捗

解決への 活動

タスク

タスク

タスク

タスク

※ケース④

Page 22: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

22

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

実施した内容・状況の分析

クリティカル チェーン

・最も長いチェーン

・弱いチェーン

グラフ管理 数値化 残日数

課題分析

日々の課題 毎日の目標 進捗ギャップ

タスク群への影響課題

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

目標設定

バッファ

実際の進捗

解決への 活動

タスク

タスク

タスク

タスク

隠れた課題や リスクを含む

「弱いチェーン」が 存在する

課題A:隠れた課題の発生

※ケース④ 課題B: 課題解決の 影響範囲

Page 23: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

23

課題とケーススタディ

・今回がたまたま上手く行く条件だっただけで、 他の条件では上手く行かないのでは?

・事前に見積りなんて出来ない、 ⇒クリティカルチェーンを作ることが出来ない。 見積りが出来てもあてにならない。

・予定なんて変わるし、割り込みもたくさん入る。

・解決出来ない課題がある場合はどうするの?

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率試験装置ボトルネックのテスト実施(ケース①) 開発作業への適用(ケース②) HW試験への導入(ケース③) ソフトウェアテスト実施作業(ケース④)

ケース①~④

ケース③

ケース④課題A

ケース④課題B

Page 24: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

24

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

必要な考え方の構造

クリティカル チェーン

・最も長いチェーン ・弱いチェーン

グラフ管理 数値化 残日数

課題分析

日々の課題 毎日の目標 進捗ギャップ

タスク群への影響課題

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

目標設定

バッファ

実際の進捗

解決への 活動

タスク

タスク

タスク

タスク

どの段階で問題が発生しているか、その状況でどういったことを考える必要があるか?

Page 25: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

25

朝会 マネージャへ展開

0

20

40

60

80

100

0 20 40 60 80 100

バッファ消費率[%]

プロジェクトの進捗率[%]

バッファ消費率

必要な考え方の構造

クリティカル チェーン

・最も長いチェーン ・弱いチェーン

グラフ管理 数値化 残日数

課題分析

日々の課題 毎日の目標 進捗ギャップ

タスク群への影響課題

競合要素 人・モノ リソース状況

タスク郡 タスク郡 タスク群

タスク 抽出

見積り (相対でも可)

目標設定

バッファ

実際の進捗

解決への 活動

タスク

タスク

タスク

タスク

どの段階で問題が発生しているか、その状況でどういったことを考える必要があるか?

CCPMを適用してみることで、 これらの活動の試行錯誤が行われました

※結果、多数の課題発見と解決策を考えることが出来ました。

Page 26: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

26

スキルや知見が向上!

発表の目標とまとめ

現場におけるマネジメント上の課題を解決するためのヒントを

持ち帰ってもらう

CCPMを簡単に 紹介する

CCPMを用いた 現場課題解決に向けた考え方を知ってもらう

上手くいった場合、 上手くいかない場合を含めてケーススタディと考察を紹介する

皆様の職場でも 参考にしてもらう 試してもらう

実際に現場の課題解決につなげてもらう!

Page 27: CCPMの考え方を活用した テストフェーズにおける課題解決:課題を解決するための影響範囲の限界. 1チーム内で ccpm実施 他チームではccpm実施せず

27

おしまい

ありがとう

ございました!