情報処理技術者試験対策のページ
>
午前対策 目次
マネジメント系 プロジェクトマネジメント プロジェクトマネジメント
プロジェクトマネジメント
立上げ
情報化戦略、中長期戦略に基づいて個別システム計画(プロジェクト計画)が策定される
プロジェクトの立上げ
プロジェクトを立ち上げるときにプロジェクト目標の明確化を最初に行う
スポンサーがプロジェクトを正式に承認し、開始させること
プロジェクトマネージャはプロジェクト立ち上げ時に任命される
プロジェクト概要書
立ち上げ時にプロジェクトマネージャが作成し、スポンサーが承認する
プロジェクト憲章作成
プロジェクト立上げ時に、プロジェクトの活動を総合的に管理及び調整するために定める
作成目的
プロジェクトを公式に認可させるために発行する
盛り込むべき内容
プロジェクトの目的
キックオフミーティング
プロジェクトが正式に発足したことをステークホルダに発表する
プロジェクト概要書の内容が説明される
計画
スコープ定義
スコープ
プロジェクトにおいて作成する成果物とその成果物を生み出すために必要な作業の範囲
プロジェクトスコープ記述書
プロジェクトの要素成果物と、これらの要素成果物を生成するために必要な作業について記述する
プロジェクト概要書に記載されている内容を掘り下げて明確にする
スコープ検証
スコープコントロール
プロジェクト計画書の作成
プロジェクト概要書とWBSを詳細化し、プロジェクトのあるべき姿を示したもの
プロジェクト管理の対象について計画する
進捗計画 (スケジュール計画)
進捗管理のためのスケジュールを計画するために日程計画を作成する
WBSを作成し、利用する
大・中・小日程計画の作成
大日程計画
プロジェクト全体の日程の計画であり、重要な管理項目(設計・開発・テスト・移行・本番稼動)について比較的粗い時間の単位で策定するもの
最小の計画期間
3ヶ月または6ヶ月程度
WBSの上位層を見ながら作成する
全体スケジュール、マスタースケジュールとも呼ばれる
中日程計画
大日程計画に基づいて作成する日程の計画であり、サブシステム別、工程別に策定する
最小の計画期間:1ヶ月程度
WBSの中位層を見ながら作成する
大きなシステムの場合、サブシステムごとに作成されることもある
フェーズドスケジュールとも呼ばれる
作業項目だけでなく担当チームを表記することもある
中日程計画では納期、予算などの制約条件を確認し、作業量や必要工数を算出し、各月に作業項目を割り当てていく
小日程計画
中日程計画に基づいて作成する日程の計画であり、サブシステムごとに詳細な作業項目に分割し、各作業項目に日単位の時間と要員を割り当てたもの
最小の計画期間:1週間〜1日単位
WBSの下位層を見ながら作成する
作業項目と担当チーム、担当作業者を明示する
ワークスケジュールとも呼ばれる
作業順序の検討
正しい日程計画を作成するために、依存関係にある作業感の整合性を保つ
アローダイアグラムやガントチャートなどを使用する
作業量と要員配置の検討
作業順序が決まったら、各作業の所要日数を算出し、工数を確保し、要員配置を決定する
工数の山積み
各作業の工数を期間ごとに合計し、期間別必要工数と保有工数(プロジェクト内の要員の工数合計)とを比較すること
工数の山崩し
期間別工数が保有工数を上回っており、工数が不足している場合に、作業を後回しにして、期間別必要工数を平準化すること
工数山積表
各作業の所要工数を期間に沿って累積し、期間ごとに必要な工数の総計を明らかにする表
TRM ( Task Responsibility Matrix ) / RAM ( Responsibility Assignment Matrix )
各作業とそれを担当する要員を表にまとめたもの
WBSで展開した作業単位ごとに関連する人とその責任権限関係を表形式で表したもの
WBS、作業順序、作業見積り、工数山積み、TRM/RAM
相互に関連しているため、どれかを修正したら影響を受ける他も修正しなければならない
相互に関連しているため、これらすべての整合性がとれた時点で完成となる
段階的詳細化と管理指標
段階的詳細化
プロジェクトの特性の一つで、プロジェクトの進捗にしたがって成果物が徐々に詳細化されていくこと
プロジェクト計画も成果物の詳細かに応じて詳細化していく必要がある
PPP ( Phased Project Planning ; 段階的プロジェクト計画 )
計画を段階的に詳細化していく手法
@予備分析、A仕様決定、B設計、C開発・運用のC段階に区分してプロジェクトを計画し、管理する
プロジェクト→フェーズ→タスクの3段階において、計画―実行―評価、が繰り返され、詳細化される
進捗管理指標の設定
管理指標は進捗度を表す定量的指標
進捗計画策定段階で作業工程ごとに設定する
レビュー計画
プロジェクト計画の一環として作成する
日付、出席者、回数、時間、エラー発見数、レビュー手法、レビューするドキュメント枚数、などを決定する
テスト計画
テスト計画の立案
プロジェクト計画の一環として作成する
テスト期間、テスト実施者、テスト項目及びその数、テストデータ、バグ発見予定数、テスト手法、テストするプログラム行数、などを決定する
テスト計画書は、品質に大きな影響をおよぼすので、プロジェクトマネージャは必ずチェックしなければならない
テスト範囲に例外ケース、以上ケースが含められていることを確認する
テスト計画の作成タイミング
単体テスト計画書
プログラム設計が完了した時点
結合テスト計画書
内部設計が完了した時点
システムテスト計画書
外部設計が完了した時点
運用テスト計画書
システム分析・要求定義・外部設計が完了した時点
費用計画
ソフトウェア開発プロジェクトの場合、費用のほとんどが人件費である
プロジェクトの開始、終了期間は、財務会計制度の会計期間とは一致しないので、プロジェクト原価は会計期間をまたがって発生する
原価計算の方法
個別原価計算と総合原価計算の比較
個別原価計算
総合原価計算
集計単位
製品1つ
会計期間と同じ
(期間別に集計する)
計算方法
財務会計で把握された費用の一部を抽出して計算する
工場で発生した会計期間の前原価を集計し、製品別に分類する
適用する業種
建設業、造船業、ソフトウェア、開発業など
製造業、運輸業、サービス業など
総合原価計算
少量の製品を大量に生産する工場に適用する
個別原価生産
1つの製品を生産するものに適用する
費用別計算と部門別計算
費用別計算
勘定科目別に費用を集計する
直課
特定のプロジェクトに関連して発生した費用のみを抽出してプロジェクト原価とする
直課できない費用は、いったん部門別費用として集計される
部門別費用
部門別に集計された費用
プロジェクト別計算
プロジェクト直接費
配賦基準によってプロジェクト別に分配できる費用
プロジェクト間接費
適切な配賦基準がなく、プロジェクトに分配不能な費用
プロジェクト直接費の合計で分配または均等に配分する場合が多い
プロジェクト直接費の配賦
プロジェクト直接費は、配賦基準によって各プロジェクトに配分する
配賦基準
費用を各プロジェクトに配分する場合の基礎となる基準
配賦基準の例
社内外要員の稼働工数
プロジェクトが使用している部屋の面積
サーバやクライアントの台数
予定単価によるプロジェクト原価の計算
1年を通しての予定単価とそれに要する数量から毎月のプロジェクト別原価を計算する
人件費は、予定単価と工数をかけた金額を各プロジェクトの原価にする
予定単価を使用すると実績額との差額が発生する
差額は決算年度末に再配賦して調整する
費用計画の策定手順
費用計画の策定は、他の計画と整合性をとりながら策定する
手順
WBSの作成
作業順序の設定、作業量の見積り、要員配置
開発規模および工数の見積り
配賦基準、予定単価の設定
人件費以外のプロジェクト原価の見積り
費用計画書の作成
費用計画書
プロジェクトの前提条件や制約条件などのすべてを含んだ策定手順のまとめ
月別原価計画書
費用計画を月別にまとめたもの
勘定科目別、サブシステム別、作業別、担当チーム別などプロジェクトの特性に応じて様式を決定する
費用計画作成上のポイント
ソフトウェア開発をするため以外の営業費などの費用はプロジェクト原価に含めない
リスクとして想定できない事故が発生した場合の原価予定分は予備費として計上する
組織計画
開発体制
ユーザチーム
ユーザ側の意見を代表するチーム
開発後のシステムを運用する者の立場で要求定義・テストを行う
開発チーム
ユーザチームの要求定義に従って、設計・プログラミング・テストを行う
社内の要員だけでなく協力会社からの要員も含まれる
支援チーム
監査・品質保証。開発環境・データベース・ネットワークなどの専門的な立場からシステム開発を支援するチーム
プロジェクト組織
プロジェクト開発プロジェクトのほとんどはタスクフォース組織である
プロジェクトチームの類型
開発チーム
フェーズ別チーム編成
設計チーム、開発チームなど
サブシステム間の調整が容易
機能別チーム編成
受注サブシステムチーム、出荷サブシステムチームなど
プラットフォーム別チーム編成
サーバ関連、通信関連、端末関連など
動作するハードウェアによって設計・開発の手法が異なる場合に使われる
アプリケーション、ミドルウェア、OSのようにソフトウェアの層によって分割する場合もある
会社別チーム編成
受託側が複数の会社から構成される場合に利用することがある
会社間のコミュニケーションが不足しがちになるため工夫が必要となる
開発支援チーム
品質保証チーム
開発環境チーム(基板チーム / インフラチーム)
新技術チーム
当該プロジェクトで初めて使用する技術を専門に担当するチーム
プログラミング作業におけるチーム構造
チーフプログラマチーム
チーフプログラマがプログラム作成の全責任を負い、他のメンバはチーフプログラマを支援する役割を負うチーム編成
スペシャリストチーム
チーフプログラマと専門分野を持ったスペシャリストとで編成するチーム
民主的チーム
1人のチームリーダと複数のプログラマが対等な関係に位置づけられるチーム編成
階層的チーム
チームリーダの下に上級プログラマを置き、その下に中級・下級プログラマを置くチーム編成
組織計画策定手順
WBSの作成
要員選定と調達
要員配置の決定
研修計画の決定
事前集合研修とするのかOJTにするのかについて決定する
コミュニケーション計画の決定
情報の伝達方法やタイミングを決定する
組織計画策定上の留意点
各要員の経歴・経験一覧などの書類だけでなく、面談して人柄などを確認して要員選定する
要員が他のプロジェクトなどと兼任する場合、時間配分や優先順位などを予め決定しておく
予備の要員を確保しておく
クリティカルパスになる作業にはなるべく自社の要員を配置する
プロジェクトマネージャ・チームリーダ・メンバの責任と権限の範囲、指揮命令と情報の流れを明確にし、計画書に記載する
コミュニケーション
コミュニケーション計画
情報配布
実績報告
ステークホルダ・マネジメント
見積り
開発するシステム全体の見積り工数が算出されたら、工程別の作業工数を見積もる
配分表を用いて全体工数を各工程に振り分ける
人月
人月=人数×時間(月)
2人で3ヶ月=6人月
6人で1ヶ月=6人月
プロジェクトの運営・管理
実績把握
プロジェクト活動の結果がどのようになっているのかを、プロジェクト活動中を通して把握すること
プロジェクト作業の監視コントロール
プロジェクト管理においてマイルストーンに分類されるもの
設計レビュー開始日
プロジェクトマネージャが行うプロジェクト関係者とのコミュニケーション
どのような報告をいつ、だれに対してどのような方法で行うか、プロジェクトの開始時点で決めておく
システム開発を外部に委託する場合の配慮すべき事項
開発の進捗状況を自社でも把握することで、問題点を早期に発見して対処する
改善活動
実績把握の結果を評価し、計画で予定していたこととの乖離が大きい場合は対応策を実施する
プロジェクトの終結
終結
プロジェクトが当初の目標を達成し、成果物をスポンサーに引き渡した時点
本番稼動判断基準
新システムを本番稼動して良いか否かを判断するための基準
システムの完成度、性能、設備、ドキュメントなどからなる
プロジェクト評価
プロジェクトの全行程完了後に、プロジェクト計画時の目標(納期、工数、予算、品質など)と実績の差異分析を行い、総括すること
完了評価
プロジェクト完了報告書
スポンサーが成果物を正式に受け入れたことを記録するために作成する
教訓 ( Lessons Learned )
計画と実績の差異、原因、実施した対応策の選択理由、その他将来に実施されるプロジェクトのために有用な情報をまとめたもの
プロジェクト完了報告書に記載する
プロジェクト全体で一つ作成する
プロジェクトの構成要素
プロジェクトの定義・特徴
プロジェクト
独自の成果を想像するために実施される有期的活動
主な特徴
有期性
明確な開始日と終了日
独自の成果物
過去に作成されたことがない製品やサービスを開発する
繰り返し性がない
同じプロジェクトを2度以上行うことはない
段階的な詳細化
作成される製品やサービスは徐々に段階を追って詳細化される
複数のメンバ
プロジェクトマネージャと複数のメンバによって実行される
多くのプロジェクトライフサイクルに共通する特性
プロジェクトの開始時は不確実性の度合いが最も高いので、プロジェクト目標が達成できないリスクが最も大きい
ステークホルダ
プロジェクトの成否によって影響を受ける関係者
プロジェクトマネージャ
プロジェクトを成功裡に終わらせるためにプロジェクト管理を実行する責任者
求められる役割
リーダーシップ
メンバをまとめ成果物を完成させる
コミュニケーション
ステークホルダとコミュニケーションを図り、調整する
交渉・折衝
プロジェクトの外部者と交渉し、プロジェクトの目的を達成するために影響力を発揮する
問題解決
発生した問題を解決する
プロジェクトマネージャの役割・活動
考慮すべき制約条件
対象範囲、納期、予算
システム化計画書に基づいてプロジェクト管理計画書を作成し、承認を得る
プロジェクトの進捗を把握し、問題が起こらないように適切な処置を施す
プロジェクト計画を策定する際の留意事項
システム化計画書の内容を自己の責任において十分に確認し、問題点が見つかった場合は、上位の管理者に報告し調整する
システムテストで、あるプログラムに不良が多発しているとの報告があった時にプロジェクトマネージャが最初に行うべきこと
問題のあるプログラムの品質を再評価し、システムテストへの影響を把握する
システム開発の結合テスト段階において、開発済の機能に追加や修正が必要となり、データベースの構成も変更することになったときのプロジェクトマネージャの対応
WBSを改定しプロジェクトスケジュールを見直す
追加又は変更に要するコストを見積もる
データベースの構成変更に伴うリスクを洗い出す
プロジェクトのリスクチェックリストを作成するために、過去のプロジェクトで使用したリスクチェックリストを手に入れたときの対応
適切
過去のリスクチェックリストは過去の情報や知識を基に作成されたものなので、新たに作成するリストチェックリストの参考にする
不適切
過去のリスクチェックリストは過去の情報や知識を基に作成されたものなので、これに載っていないリスクの検討は不要と判断する
プロジェクトごとにばらつきが出ないように、過去のリスクチェックリストをそのまま使用する
プロジェクトとごにリスクは変化するので、過去のリスクチェックリストに載っていないリスクだけで新たにリスクチェックリストを作成する
プロジェクトメンバ ( メンバ )
プロジェクトの目的を達成するために必要な活動を行う担当者
求められる役割
報告
作業の進捗報告、発生した問題などを適時にに報告する
作業の遂行
自分に割り当てられた作業を忠実に遂行する
チームワーク
他のメンバと調和し、全体の作業効率を高めるように努力する
チームリーダ
メンバがいくつかのチームに編成される場合のチームの長
プロジェクトマネージャの指示に基づいて、メンバを指揮する
顧客
プロジェクトの成果物を使用する個人または組織
ソフトウェア受託開発プロジェクトの場合は、開発委託をした会社が顧客となる
スポンサー
プロジェクトに対して、現金・預金その他物品の形で財源を提供する個人もしくは組織
プロジェクトを正式に認可する者でもある
スポンサーの例
社長
CIO ( Chief Information Officer ; 情報統括役員 )
ステアリングコミッティ
プロジェクトの意思決定機関
標準化
プロジェクトメンバが、1つの目標に向かって力を合わせ、協調するために作業手順、内容、書式などの方法を明確に規定すること
プロジェクトマネジメントの管理項目
管理
予め予定した望ましい幅の中に諸活動を調整すること
管理サイクル
PDCA ( Plan Do Check Act )
Plan ( 計画 )、Do ( 実行 )、Chack ( 評価 )、Act ( 改善 ) の4つの管理サイクルを廻すことにより遂行される管理活動
PDCAサイクルのうち、A(Act)で実施すること
資源の活用に関する改善目標の設定やプロセスの改善などを行う
品質管理
品質計画
品質保証
プロジェクトで定めた品質基準を確実に満たすための、計画的かつ体系的な活動を行う
品質管理
QCD
Quality ( 品質 )
Cost ( 価格 )
Delivery ( 納期 )
QCDはトレード・オフの関係にある
品質の考え方
品質の作り込み
品質は、検査工程でエラーを発見することで作るものではなく、製造工程で作りこんでいくものだとする考え方
当たり前品質
開発されるソフトウェアが本来持つべき最低限の品質
不十分であるとユーザに不満足感を与える
魅力的品質
開発されるソフトウェアが当たり前品質を超えて具備する、操作性など、付加価値的な品質
設計品質
外部設計、内部設計を通じて作りこまれるソフトウェア品質
設計仕様がユーザの要求に整合していることを指す
プログラム品質
プログラミングを通じて作りこまれるソフトウェア品質
プログラムが設計仕様通りに正しく動作することを指す
デザインレビュー
計画・分析・設計などの各フェーズを振り返り、その成果物を吟味すること
不良摘出目標数
レビューやテストを実施する前に、作りこまれた不良を予見し、発見すべき目標数
成果物に不具合があったとき、その修正内容が仕様どおりであることを確認する
ソフトウェア品質の管理指標
成果物ごとのレビュー時間
品質目標
定性的目標と定量的目標の両方を設定する
工程別定量的品質目標
計画・分析・設計
作成した設計書の枚数
実施したレビュー時間
発見エラー数
実施したレビュー時間÷作成した設計書の枚数
発見エラー数÷作成した設計書の枚数
プログラミング
コメントの行数合計
共通ルーチンのステップ数÷全ステップ数
テスト
プログラムステップ数
実施テスト項目数
発見バグ数
実施テスト項目数÷プログラムステップ数
発見バグ数÷プログラムステップ数
全工程
仕様変更数
品質実績データの把握
記録項目
レビュー
レビュー対象成果物、実施日、出席者、実施時間、エラー発見実績数、レビューした成果物の枚数
テスト
テスト対象機能もしくはプログラム、テスト実施者、テスト項目およびその数、使用したテストデータ、バグ発見実績数、テストしたプログラム行数
エラー記録票 ( バグ記録票 )
発見したエラー、バグを1件1枚で記録する
エラー一覧表 ( バグ一覧表 )
エラー、バグの解決状況を管理するために、エラー記録票(バグ記録票)をまとめたもの
レビュー(テスト)工程品質管理図
レビュー(テスト)の進行状況と品質状況を把握する
レビューの項目消化予定・実績はレビュー項目の残数を縦軸、レビュー日数を横軸にとった通常右下がりの曲線となる
エラー発見予定・実績は累計エラー発見件数を縦軸、レビュー日数を横軸にとった通常右上がりの曲線となる
未解決エラー件数
発見されたが解決されていないエラー数
一定の数を超えていないことを確認する
管理図の例
品質評価
差異分析
予定と実績を比較し、その際が大きい場合は原因を分析し、品質の評価を行う
定量的品質目標だけでなく定性的目標に付いても評価する
品質改善
品質評価をした結果、品質不良と認められる設計書もしくはプログラムに対して品質改善を実施する
原因と改善策の例
開発要員のスキル不足
開発要員に教育研修を実施する
開発要員を交代させる
チーム編成を変える
開発標準を遵守していない
開発標準の遵守を徹底する
開発標準を追加・変更する
仕様変更が多い
仕様変更を一時的に凍結する
仕様変更を実施する時期を後にずらす
設計仕様に曖昧さが多い
前工程に戻って再設計・再定義をしなおす
前工程のレビューを再実施する
プロトタイプを作成し、仕様を早期に確定する
前工程のバグを引きずっている
前工程のテストを再実施、もしくは追加実施する
未経験の新技術部分にバグが集中している
新技術部分を切り離し、問題解決をする特別チームを編成する
リスク管理
リスクに対しては発生の予防と、発生による被害を最小限にする対策を行う
進捗管理 ( スケジュール管理 )
目的
納期・コスト・品質の3つをバランスよく保ち、適度な水準に安定させる
プロジェクトの進行状況をステークホルダに示すことで安心感やより多くの支援を受ける
進捗実績の把握
進捗実績はプロジェクト運営時に常時把握しなければならない
進捗実績報告の重要性をメンバに認識させる
進捗計画で定めた進捗実績把握の方法に従って実績データを収集する
実績データと成果物を照合して実績データの正確さを検証する
総合テストの開始までに発注先から成果物が納品されることを確認する
マイルストーンで予定通りに成果物が作成されたことを確認する
進捗実績の評価
差異分析
予定と実績の差を吟味し、その原因を究明すること
予定と実績の差異を分析し、状況の判断を行う
プロジェクトマネージャの判断で対応を決定する
進捗遅延原因
メンバへインタビューや成果物などの調査によって究明する
プロジェクト内部に起因するもの
作業工数の見積り誤り
作業の見落とし
作業工数の過少見積り
分析ミス・設計ミス
上流工程での分析ミス・設計ミスが結合テスト工程やシステムテスト工程などの下流工程で発見された場合は、手戻り作業(修正作業)が発生するため大きな進捗遅れにつながる
プログラムミスは影響範囲がそのプログラムに限定されるため、小さな進捗遅れの原因にしかならない場合が多い
開発環境の整備不良
メンバの病欠や退職
プロジェクト外部に起因するもの
仕様変更の多発
途中まで進捗した作業を最初に引き戻してしまうため、大きな遅延原因となる
進捗遅延対策
プロジェクトマネージャは、どの対策を取るのか、いつ行うのかなどを判断しなければならない
主な進捗遅延対策
作業順序の組換え
並行作業の実施
担当者の組換え
追加要員の投入
開発環境の整備
機能仕様の削減
部分的な本番稼動
本番稼動日の延期
クラッシング
スコープを縮小せずにプロジェクト全体のスケジュールを短縮する技法の一つ
メンバの時間外勤務を増やしたり、業務内容に精通したメンバを新たに増員したりする
クラッシングを行う際に、優先的に資源を投入すべきスケジュールアクティビティ
クリティカルパス上のスケジュールアクティビティ
ファストトラッキング技法
スケジュールの短縮技法の一つ
作業を同時並行で行うことにより納期を短縮すること
工期を短縮させるために、クリティカルパス上の作業に”ファストトラッキング”技法を適用した対策
全体の設計が完了する前に、仕様が固まっているモジュールを開発する
クリティカルチェーン法
作業の依存関係と資源の依存関係の両方を考慮して、資源の競合が起きないようにスケジュールを管理する手法
クリティカルパスを守るために、フィーディングバッファと所要期間バッファを設ける
タスクのスケジューリングとバッファの設定方法
クリティカルパス上の最後のタスクの終了期と納期の間に、プロジェクト全体で使用するバッファを設定する
対策時のポイント
全体計画の見直し
すぐに対策を行うのではなく、原因究明を行い、プロジェクト全体への影響度把握と全体計画の見直しを行う
スケジュール・プロジェクト計画書の更新を行う
ステークホルダとの調整
ステークホルダへの説明と調整を行う
ステークホルダ間の調整は代替案の比較によって進める
解決不能状態への対処
上級管理者へ報告し、判断を仰ぐ
進捗遅延対策の効果確認
進捗の遅れが回復しているかを確認し、効果が得られない場合は、再度、対策案を検討する
効果が一時的であると判断した場合は、遅延の再発防止策を検討する
費用管理 (コスト管理)
費用実績の把握
開発予算と実績の差異を監視し、必要に応じて計画変更を行う
財務会計データの一部を抽出・集計して費用実績を算出する
作業日報から稼動実績工数を把握する
作業日報と費用実績をまとめて原価実績報告書を作成する
予定と実績の差異を算定し、原価差異報告書にまとめる
成果物の手直しなどの問題対策が予算超過につながらないことを確認する
費用実績の評価
(予定-実績)原価差異が小さい場合
なにもしない
(予定-実績)原価差異が大きい場合
マイナスに大きい場合(原価超過)
対策を検討・実施する
プラスに大きい場合(原価過少)
生産性が上がっている場合もあるが、進捗が予定よりも遅れている可能性もある
進捗管理や品質管理などの他の管理項目では何も問題が発生していないが原価差異だけが大きい場合は、状況を正しく把握出来ていない可能性が高い
原価差異分析手法
EVA
トレンドチャート
費用超過対策の実施
費用超過原因
計画時の見積り過少に起因するもの
作業工数の見積り誤り
やるべき作業を見落とした
作業工数を少なめに見積もってしまった
購入品の見積り誤り
サーバ台数、OS・開発ツールなどのライセンス数や単価を少なく見積もった
実行時のミスに起因するもの
分析ミス・設計ミス
開発環境の整備不良
想定外の問題発生に起因するもの
仕様変更の多発
提供された資料の誤り
費用超過対策
顧客との交渉
費用超過原因が顧客の仕様変更にある場合
仕様変更などの責任が顧客側にあることを証拠付ける資料を用意する
請負金額の改訂、仕様変更の凍結、必要機能の削減など
協力会社との交渉
費用超過原因が、協力会社の要員や作業の進め方にある場合
協力会社の要員の生産性が予想よりも低い場合には、それを証拠付ける資料を用意する
請負金額の改訂、要員の交替、作業方法の改善など
生産性の向上
作業方法や開発支援ツールを変更し生産性を向上させる
作業方法や開発ツールの変更には費用がかかるため、費用対効果を考えて導入する
メンバのモラールの低下が原因の場合は、メンバと話し合いを行うことで解決策を考える
組織要員管理
要員の動機付け
要員管理のポイントはメンバのやる気(モラール)を維持・向上させることにある
動機
目標を達成するための行動に駆り立てる要因
モチベーション(動機付け)
動機を向上させること
コミュニケーション
公式なコミュニケーション
計画書を配布する、実績法局所を提出する、会議に出席する、レビューを実施するなど
公式なコミュニケーションのほとんどは文書で行われ、また文書化される
非公式なコミュニケーション
雑談、手書きのメモを渡す、状況を口頭で聞くなど
非公式なコミュニケーションのほとんどは口頭で行われる
非公式なコミュニケーションが発端となり重大な問題点を発見する場合もあるので軽視できない
非公式なコミュニケーションを通して、公式なコミュニケーションで入手した情報の正確性や信憑性を評価する
問題点の発見と対策
主な問題点
メンバ本人に起因するもの
病気や怪我
他のメンバとの相性
知識や経験不足
メンバ本人に起因しない物
兼任している他の業務が多忙になった
派遣会社や協力会社からの命令、母体組織の人事異動により当該プロジェクトから外れることになった
以前に参画していたプロジェクトで発生した問題の対応
仕様変更により作業量が増加した
割り当てられた仕事が多すぎるもしくは少なすぎる
問題点の発見方法
公式なコミュニケーションによる方法
勤怠管理表、作業日報、作業進捗管理表などから作業量の適切さや負荷の状況を確認する
問題点一覧表を確認し、問題点が特定のメンバやチームに集中していないか確認する
非公式なコミュニケーションによる方法
作業場の巡回や雑談
仕事を離れたイベントの実施
対策
メンバ個人への対策
カウンセリング
再教育
組織体制の見直し
他の責任者との交渉
兼任業務の負荷、優先順位の見直し
チーム編成の組み換え
TRMの変更
要員交替・追加要因の投入
協力会社管理
受注したソフトウェア開発の一部を他社に委託する場合に、委託計画・実施・評価・改善活動を行い、ソフトウェア開発状況を管理すること
システム開発を外部に委託する場合に行う管理方法
一括請負の場合は、成果物を納入するまでの過程については、すべて委託先の責任とリスクで作業を実施するので、発注元が委託先の従業員に直接指示を出すことはできない
人的資源計画
チーム編成
チーム育成
チームマネジメント
契約管理
契約に関する一般原則
契約自由の原則
契約は当事者が自由に決められるという原則
契約内容は、法律の強行規定を除き、当事者がが自由に決めて良い
契約優先の原則
強行規定を除く法律の規定と契約とでは、契約を優先するという原則
基本契約書
取引を開始する前に、会社の規模や新庄状況などを調査し、業者登録をする場合に締結する契約書
個別契約書
取引の内容について約束を決める契約書
守秘義務
契約を履行する過程において、契約当事者の双方が知り得た互いの営業上や技術上の秘密を他に漏らさない義務
瑕疵担保責任
仕事の目的物に瑕疵がある場合、その瑕疵を補修し被った被害を請負人が注文者に賠償する責任
ソフトウェア開発でよく締結される契約
請負契約
委任契約
派遣契約
パッケージ売買契約
保守契約
SI契約
アウトソーシング契約
費用に関する契約
定額契約
要求仕様が明確になっていない場合、納入者側のリスクが最も高くなる契約形態
実費償還契約
納入者の利益相当分を加えた金額を納入者に支払う契約
コストプラス固定フィー契約 / コストプラス定額フィー契約 (CPFF契約)
請け負った作業の履行に対するコストが償還され、更にプロジェクトのコスト見積もりに対して一定比率の固定フィーを受け取る
コストプラスインセンティブフィー契約(CPIF契約)
請け負った作業の履行に対するコストが償還され、事前に取り決めたフィーと、契約で定めたパフォーマンス目標レベルの達成度に応じたインセンティブを受け取る
請け負った作業にかかったコストに加えて、契約時に合意したパフォーマンスの基準を達成した倍に受注者が所定の利益(フィー)を受け取る契約タイプ
タイムアンドマテリアル契約
契約成立の時点で契約の全体総額を取り決めない契約方式
設定した単価に業務にかかった時間を掛け合わせる
定額インセンティブフィー契約 (FPIF契約)
あらかじめ目標コストを定め、実コストとの差異を納入者、購入者で分割する契約
単価契約
単価基準で契約を行うこと
ソフトウェア開発を請負契約で外部委託するときに、発注側が行わなければならないこと
成果物一覧や納期の提示
契約時に、受託者と委託者の作業範囲を明確にする
請負契約には法律上、作業状況の回答義務はないため、契約書に作業報告の義務を受託者に課すようにするケースが多い
契約に関するリスク管理
主なリスク
仕様変更の多発
予定していた生産性を達成できない
採用した新技術が不安定、性能不良となる可能性
法律や制度の変更
リスク対策
契約の範囲を小さくする
期間を短くする、システム化の対象範囲を小さくする
請負契約の場合、契約の範囲を小さくすることは特に有効な対策となる
リスクの少ない契約形態を選択する
派遣契約→委任契約→請負契約の順にリスクが少ない
不確定要素の多い上流工程(システム分析・要求定義フェーズなど)を委任契約、下流工程(外部設計以降)を請負契約とすることでリスクを軽減できる
契約金額・納期の見直し条項を入れる
民法が規定する請負契約では、委託者が当初想定した指示内容を変更するケースを想定しないため、見直し条項を追加する
入手した資料の品質に左右されないようにするための条項を入れる
受託者が利用する成果物の品質に問題があり、その問題が成果物に引き継がれた場合に免責されることを含める
守秘義務条項を入れる
協力会社との契約
ソフトウェア開発の委託手順
計画フェーズ
プロジェクト計画の確認
外注計画書の作成
RFPの作成と説明
発注先選定
契約の締結
実行・評価フェーズ
実績把握
実績評価と対策の実施
成果物のレビュー・検収
支払い・完了報告書の作成
プロジェクト計画の確認
社内では技術力や工数が不足していることを確認し、要員数・必要な技能・時期・を明らかにする
外注計画書の作成
以下の事項を記載する
委託業務の内容
成果物
委託形態
委託時期
費用概算
外注管理方針
発注先候補
作成上の留意点
委託する業務の範囲を明確にする
費用を見積もる場合、協力会社に支払う費用だけでなく、社内の外注管理に必要な費用もかさんする
協力会社に遵守させる諸基準の備状況を評価し、不十分であればその整備作業も計画書に盛り込む
RFPの作成
RFPの記載事項
委託業務、成果物、委託形態、委託時期、外注管理方針など提案のための前提条件
提案書に記載すべき事項・要件
会社の概要、管理体制、総合的な技術力を示す指標
予定している要員の一覧表
見積金額及びその算定方法
事務的な連絡
提出期限、提出方法、選考結果の通知方法など
発注先候補に送付し、説明会を実施する
発注先選定
留意事項
見積金額だけでなく、品質その他の管理体制を加味して評価する
会社の規模や信用能力だけでなく、予定する作業方法、作業予定要員の知識や技能の評価を重視する
類似システム開発経験の有無を確認する
その会社を発注先に選定した場合のリスクを評価する
二次選考が必要な場合には、その先行手順を決定する
提案書を入手する前に選考基準を作っておく
契約の締結
RFP、提案書に基づき契約書を作成する
トラブルのもととなるため、契約締結前に作業を開始してはならない
実績把握
会議の開催や報告書の入手によって、協力会社の状況を把握する
会議では必ず議事録を作成する
実績把握方法は社内のものと同じでなければならない
実績評価と対策の実施
協力会社の進捗状況や品実状況が思わしくない場合には、何らかの対策を講じる
成果物のレビュー・検収
協力会社が作成した成果物をレビュー基準、検収基準に従ってレビュー、検収する
支払い・完了報告書の作成
完了報告書を作成し、次プロジェクトに課題や教訓を残す
生産性管理
生産性の計画
ソフトウェア開発の生産性は、時間あたりに完成させる設計書枚数やソースプログラムのステップ数で考える
ソフトウェアによって獲得される価値を、ソフトウェア開発に必要な作業量で割ったもの
生産性
投入する資源の量と産出した価値の比率
生産性=産出した価値/投入する資源の量
生産性=品質×増幅効率×開発効率
ソフトウェア開発の生産性=成果物の量/投入する作業工数
プロジェクトマネージャは、生産性をどの程度見込むかの判断を行う
生産性の増減要因
採用するツールや開発環境の整備状況
開発するソフトウェアの規模、難易度、設計仕様の複雑さ
開発規模と生産性は、反比例する関係にある
開発済みドキュメント、プログラムの再利用度
過去に開発した成果物(設計書、仕様書、プログラムなど)を再利用出来れば、新規に開発すべき量が減少するので生産性が向上する
ソフトウェアの生産性=完成させる成果物の量/投入する作業工数
=完成させる成果物の量/新規開発する成果物の量 × 新規開発する成果物の量/投入する作業工数
=増幅効率×開発作業効率
増幅効率
完成させる成果物の量を、新規に作成する成果物の量で割った値
この率を向上させるには、過去に作った、もしくは他人が作った成果物を再利用する
増幅効率を上げれば生産性は向上する
共通ルーチン(関数)の全体に占める割合
共通ルーチンの全体に占める比率が高いと生産性は向上する
各メンバが開発するようが減少する
仕様変更の回数及び規模
仕様変更が多発すると生産性は低下する
仕様変更に関する工数をそのまま投入した工数に加算すると本来の生産性が分からなくなるため、別に集計する
生産性の予定(目標)
プロジェクトで採用する生産性の定義と算定式を決定する
過去の生産性の実績値を調査する
WBSや作業順序を見て作業予定状況を確認する
プロジェクトの特殊性(採用する新技術や難易度など)を加味して、生産性の予定(目標値)を決定する
実績把握と評価
進捗管理によって把握される成果物の作成状況と組織要員管理での作業日報の工数の対比によって把握する
評価上の留意点と対策・検討
開発環境の整備などの前提条件
未整備であれば専任者を任命し、至急作業に着手させる
採用した技術・ツールなどの問題点や不具合
使用しているメンバにヒアリングを実施する
問題があれば代替手段の採用を検討する
開発規模
開発規模が急増しているならば、前提条件が大幅に変わっているので、生産性を含めて計画全体を見直す
開発済みドキュメント、プログラムの再利用率
再利用率が低い場合には再利用を促進するための説明会を実施する
共通ルーチンの占める比率
他人が作成したルーチンの使用を拒否するメンバに対するカウンセリング
成功例・失敗例のような生産性向上事例集を作成する
仕様変更の回数・規模・影響範囲
仕様変更が当初の想定よりも多い場合は、仕様凍結を検討し、ユーザ部門などと調整する
構成管理・変更管理
対象
ドキュメント
設計ドキュメント、マニュアル
ソースコード、定義ファイル
オブジェクト、実行形式ファイル
開発環境、テスト環境
OSのバージョンやパッチレベルの違いでアプリケーションの動作が異なる場合があるため、開発環境やテスト環境の内容を管理する
パッケージソフトウェア、OS
計画変更要員
外部に起因
法律、制度の改正
経済環境の変化
競合他社の動向
接続する機器の変更
ユーザの要求
内部に起因
分析ミス・設計ミス
性能不良
生産性不良
バージョン管理
ソフトウェアの構成要素であるソースファイルやドキュメントの版数を管理する
バージョン
大きな仕様変更や構成変更の管理に使用する
リビジョン
小規模な変更やバグ修正の管理に使用する
ベースライン
正式なレビューや承認を受け、ある版数として固定された成果物の集まり
構成管理
コンピュータシステムの構成要素に生じる変更を管理すること
特にソースプログラムやドキュメントの変更管理を指す場合もある
構成管理ツールの利用
ソースコードだけでなくドキュメントを管理できるツールを積極的に利用する
構成識別体系の確立
構成状況の記録
変更管理
障害や顧客からの仕様変更要求により設計やプログラムに対して加えられる変更を管理すること
要求された変更がどのバージョン、リビジョンに関連するのかを管理する
仕様変更は、予定数を計画し、その範囲内に収めるようにコントロールする
変更依頼書
ユーザの要求仕様が変更されたり、テストにより発見された問題を解消するために、仕様変更が発生した場合にそれを記入する依頼書
合意済みのシステム要件に対し、機能追加となる変更依頼を顧客から受けたときの受託側の対応
決定権を持つ会議や責任者が、変更を行うかどうかを判断する
変更管理の流れ
変更要求の受付
変更内容の調査、検討、決定
検討結果によっては変更しない場合や、他の変更案件のタイミングに合わせて変更することもある
変更の指示・実施・テスト・反映
報告
品目の完全性保証
リリース管理及び出荷
事例
ソフトウェア開発において、構成管理に起因しない問題
システムテストにおいて、単体テストレベルのバグが多発して、開発が予定通り進捗しない
ソフトウェア開発において、構成管理に起因する問題
開発者がバグを定められた手続に従わずに修正したので、今まで動作していたプログラムが、突然に不正な動作をする
仕様書、設計書及びプログラムのそれぞれが一致しないので、プログラム修正時にソースプログラムを解析しないと、修正すべきプログラムが特定できない
一つのプログラムから多数の派生プログラムが作られているが、派生元のバグ修正がすべての派生プログラムに反映されていない
プロジェクトマネジメントのツール
WBS ( Work Breakdown Structure ; 作業分割構造図 )
プロジェクトをトップダウン分析によって大枠から詳細なレベルまでの具体的な作業に分解し、作業項目を階層的な構造図で定義したもの
プロジェクトの目的を達成するために必要となる作業をトップダウン的に分析し、階層構造として表現したもの
作業の内容や範囲が体系的に整理でき、作業の全体が把握しやすくなる
管理可能な大きさに細分化し、コスト、スケジュール、人的資源などのマネジメント計画を立てる
プロジェクトマネジメントにおいてWBSを作成する目的
成果物とそれを作成するための作業を明確にする
WBSを利用する効果
作業の内容や範囲が体系的に整理でき、作業の全体が把握しやすくなる
WBSを使った進捗管理
進捗管理上のマイルストーンを把握するのに適しており、プロジェクト全体の進捗管理などに利用される
WBSの作成
スコープ定義によってWBSを作成する
進捗計画を作るために、プロジェクトで実施する作業項目を決定する
WBS作成のプロセスで行うこと
作業の工数を算定してコストを見積もる
WBSの構成要素
ワークパッケージ
プロジェクトで行う作業を階層的に要素分解したもの
アクティビティ
ワークパッケージをさらに分解したもの
要素分解
要素分解の最下位の詳細さは、コスト見積もりとスケジュール作成を行えるレベルで行う
WBSの例
PMBOK ( A Guide to the Project Management Body of Knowledge )
プロジェクトマネジメントのための知識体系
5個のプロセス群
プロジェクトの立上げプロセス群
プロジェクトの計画プロセス群
プロジェクトの実行プロセス群
プロジェクトの監視・コントロールプロセス群
プロジェクトの終結プロセス群
10個の知識エリア
プロジェクト統合マネジメント
プロジェクトスコープマネジメント
プロジェクトタイムマネジメント
プロジェクトコストマネジメント
プロジェクト品質マネジメント
プロジェクト人的資源マネジメント
プロジェクトコミュニケーションマネジメント
プロジェクトリスクマネジメント
プロジェクト調達マネジメント
プロジェクトステークホルダーマネジメント
PMBOKのWBSで定義するもの
プロジェクトで行う作業を階層的に要素分解したワークパッケージ
プロジェクト憲章は、どの知識エリアのどのプロセス群で作成するか
プロジェクト統合マネジメントの立ち上げプロセス群
プロジェクト統合マネジメントにおいて、プロジェクトスコープの拡張や縮小を行うのに必要なもの
PMBOKでの定義におけるプロジェクトとステークホルダの関係
プログラムマネージャは、関連するプロジェクトの調和がとれるように、個々のプロジェクトの支援や指導をする
PMBOKにおいて、プロジェクトやフェーズの終結に当たってステークホルダの公式な承認を受けるために照合することとされているもの
要素成果物とプロジェクトスコープ記述書
変更要求
PMBOKにおけるリスクマネジメント
定性的リスク分析でリスク対応計画の優先順位を設定し、定量的リスク分析で数値によるリスクの等級付けを行う
定性的リスク分析で使用されるもの
発生確率・影響度マトリックス
定量的リスク分析で使用されるもの
感度分析
期待金額価値分析
デシジョンツリー分析
リスクマネジメントにおけるリスク対応戦略の適用
受容は、プラスのリスクとマイナスのリスクのどちらにも使用される戦略である
強化 プラスのリスクに対して使用される
共有
転嫁は、マイナスのリスクに対して使用される
P2M
プロジェクトマネジメントのための標準体系であり、日本企業の実情や文化などを考慮し、プロジェクトだけでなくプログラムを視野に入れたマネジメントを行うために必要な作業のガイドラインを提供する
BABOK ( A Guide to the Business Analysis Body of Knowledge )
ビジネスアナリシスの計画とモニタリング、引き出し、要求アナリシス、基礎コンピテンシなど7つの知識エリアからなる知識体系
SQuBOK ( A Guide to the Software Quality Body of Knowledge )
ソフトウェア品質の基本概念、ソフトウェア品質マネジメント、ソフトウェア品質技術の3つのカテゴリからなる知識体系
SWEBOK (A Guide to the Software Engineering Body of Knowledge )
ソフトウェア要求、ソフトウェア設計、ソフトウェア構築、ソフトウェアテスティング、ソフトウェア保守など10の知識エリアからなる知識体系
その他
プロジェクト・スコープ・マネジメント
スコープ計画
スコープ定義
スコープ検証
スコープ・コントロール
プロジェクト・タイム・マネジメント
アクティビティ定義
アクティビティ順序設定
アクティビティ資源見積り
アクティビティ所要期間見積り
スケジュール作成
スケジュール・コントロール
プロジェクトのスケジュールを短縮する方法
順番に行うように計画した作業を並行して行うように変更する
クリティカルパス上の作業が遅延すると、プロジェクトの完了も遅延する
プロジェクト・リスク・マネジメント
プロジェクト調達マネジメント