最終発表会資料 - CreW Lectures

Download Report

Transcript 最終発表会資料 - CreW Lectures

2007年2月23日 最終報告会
2007年2月23日
C re W
C re a tiv e W o rk s p a c e
目次
I.
II.
III.
IV.
プロジェクト説明
成果物発表(デモ)
進捗発表
総括
プロジェクト説明
担当者: 松田航
プロジェクト説明
 目次
クライアント紹介
プロジェクト背景
プロジェクト体制
成果物説明
クライアント紹介
 クライアント
慶応義塾大学
デジタルメディアコンテンツ統合研究機構(DMC)
「DMCシステム構築プロジェクト」リーダー
嶋津 恵子 様
*DMCシステムとは
慶應義塾大学が所有するコンテンツを登録・検索ができるシステム
プロジェクト背景
 DMCシステム機能拡張
 DMCの持っているコンテンツを自然言語解析で地名を取
り出して、その地名からコンテンツをMap上に配置する機
能
 DMCシステム新機能拡張への弊害
 GeocodingAPIはアクセス制限がある
 コンテンツをMap上に配置する毎にアクセスしなければな
らない
プロジェクト体制
 g-modプロジェクト
 g-modプロジェクトへの依頼
 一度取得した情報はDBに格納し、そのDBに問い合わせる
ようにしてほしい
 同名異地点の取得を工夫して欲しい
目的
 地名から緯度経度情報を返すシステムを構築する
作成したもの
 GeocodingModule
プロジェクト体制
慶應義塾大学
デジタルメディア・コンテンンツ研究機構チーム
DMC
齋藤様
慶應義塾大学
大岩研究会 g-modプロジェクトチーム
S E
佐藤 俊之
DMC
嶋津様
DMC
遠峰様
・・・
P M
谷田部 学
S E
平澤 秀幸
S E
松田 航
成果物説明
 GeocodingModuleの基本機能
緯度経度情報を文字列で返してくれる
一度取得した緯度経度情報をDBに格納される
一度検索された地名は何日か経つと更新される
 同名異地点に対する処理
複数地名がある場合は複数取得する
取得する数は設定できるようになっている
成果物説明
地理情報
キャッシュテーブル
緯度経度情報を取得する
データ読み込み
データ書き込み
緯度経度情報を追加/更新
設定ファイル
設定を読み込む
Geocoding
Module
成果物説明
DMCシステム
統合UI
Map型UI
検索
モジュール
コンテンツ登録
モジュール
Geocoding
Module
既存の緯度経度情報算出サービス
成果物説明
 GeocodingModuleの利点
一度地理情報を取得していれば検索が早い
 一度取得した情報はDBに格納されるので、制限を受けるこ
とがない
大量に緯度経度情報を取得したい時に便利
同名異地点
 候補の緯度経度情報を再検索することなく複数返してくれる
緯度経度情報が文字で返ってくる
 XMLの知識を持たない人にも使用することが出来る
特徴
 Geocoding APIと比べて・・・
単純に速度で勝る
同名異地点がある場合、緯度経度取得が楽
大量に緯度経度情報を取得したい時に便利
上記のことを踏まえ、応用例を考えてみました
応用例
 新聞配達で、契約している人達の住所を一括で
地図に表示し、どの方面に固まっているかを調
べる
プロジェクト経緯
担当者: 平澤秀幸
プロジェクト経緯
10月
11月
12月
1月
要件定義
設計
実装・テスト
リリース
要件定義
10月
11月
12月
1月
要件定義
 活動内容
クライアントから渡された要求定義書と機能仕様書を
熟読
プロジェクト提案書の作成
要件定義
 問題点
「簡単に作れる」という落とし穴
 根拠も無い安心感を抱いた
クライアントとの意思共有を怠ってしまった
プロジェクト目的と目標を見失っていた
 結果
ずっと用件定義を行っていた
設計
10月
11月
12月
1月
設計
 活動内容
実現性調査
 技術調査 (GeocodingAPIの使用法、JDBC、XML、ソケッ
ト通信)
機能とデータベースの設計
テスト項目の設計
実装・テスト
10月
11月
12月
1月
実装・テスト
 活動内容
プログラムの実装
単体・結合テスト
 JUnitを用いてテストプログラムを作成
実装・テスト
 実装環境
 使用言語: JDK 1.5.10
 実装環境: Eclipse 3.2.1
 データベース: MySQL 5.0.24
 問題点
 プログラム設計に不備
 テスト項目が足りない/不適切
 技術的なトラブル
 結果
 大規模なリファクタリング作業を行う必要があった
リリース
10月
11月
12月
1月
リリース
 活動内容
本番環境構築
提出ドキュメントの作成
検収用に提出
リリース
 問題点
本番環境構築に手間取ってしまった
 「簡単にできる」と思ってしまった
一度提出した後、バグが発見された
 提出後にソースコードをいじってしまった
 結果
何度も納品日を延長してしまった
学習成果
担当者:佐藤俊之
主な学習成果
 全体
目的・目標の設定の重要さ
ネゴシエーションの仕方
 技術面
ネットワークアプリケーションの作り方
テストファースト手法
DBの設計
UNIX環境における環境整備の仕方
目的・目標
 目的・目標の設定
発表において「何をしているのか分からない」という言
葉を多く頂いた
プロジェクト提案書が通らなかったとき、何をすればい
いのかわからなくなった
目的・目標
 反省点
目的・目標を決めずにプロジェクトを開始してしまった
 自分たちがどういうプロジェクトで、何のために活動をするの
かを考えていなかった
 発表でも「何をお願いされたのか」ということばかり説明して
おり、プロジェクトの説明をしなかった
目的・目標
 目的・目標設定
DMCプロジェクトの一部ではない
 つまりDMCに言われたものをつくるプロジェクトではない
DMCに使って貰えるものを作るプロジェクト
 どのようにすれば貢献することができるか
 どのようにすれば使って貰えるのか
 ということを考えるプロジェクトである
品質の高いものを作ることを目標とする
目的・目標
 目的・目標設定の効果
自分たちが何をすべきなのか明確になった
 ただ作るだけではないということで、モチベーションも高まっ
た
発表で「わからない」と言われることが減った
クライアントに提案をすることができた
 設定ファイルの項目
 DBのテーブルレイアウト
 キャッシュクリア期間
ネゴシエイション
 序盤、クライアントとの話し合いがうまく行かず、
時間の浪費をしてしまった
書類を持っていき、レビューをされてまた次週持って
行く、の繰り返し
嶋津先生から「不安である」という言葉を貰った
 プロジェクトの経過が見えない
 「本当にやってくれるのか」
ネゴシエイション
 ミーティングの準備に原因があるのではないか
何のためにミーティングを行うのかを決めていなかっ
た
 こういうことを聞かなきゃいけないよね、という感じで漠然とし
たことしか考えていなかった
何を決める必要があるのかを考える必要があった
同時に、こちらの意図を相手に伝えることが必要
ネゴシエイション
 ミーティング前に決めること
特にこの3点が特に大事
 なぜミーティングをするのか(Why)
 何を決める必要があるのか(What)
 いつまでにお願いするのか(When)
ネゴシエイション
 なぜミーティングをするのか(Why)
 本当にミーティングの必要があるのか
 メールや電話で済む用事ではないか
 全員で集まる必要があることなのか
 お互いの都合を合わせるのは大変
 「話し合い」が必要になりそうなら、集まったほうがいい
 なぜミーティングするのかが決まったら、それを相手に伝える
 「ミーティングをしたい」だけでは不十分!
ネゴシエイション
 何を決める必要があるのか(What)
 話し合う内容について、どこまで決める必要があるかを考える
 例1・書類を見せ、ボツを貰った場合
 持って帰って検討しなおすのでいいのか
 どこを直せば許可を貰えるのかを話し合う必要があるのか
 序盤はただ持って帰って何がいけなかったのかをチーム内で検討して
いた
 例2・お願いが却下されたとき
 素直にそのまま従えばいいのか
 どうすればOKが貰えるのか、交渉をする
 序盤はただ「そうですか、わかりました」だけであった
 話し合いになっていなかった
ネゴシエイション
 いつまでにお願いするのか(When)
このプロジェクトで最後まで徹底できなかった部分
 明確なデッドラインを決める必要があった
 危険な回答
 「週末」
 「出来次第」
 すぐにでも
 何日の何時まで、というのを毎回決めなければならない
 最後までできなかったので反省しなければならない
プロジェクト分析
担当; 谷田部
スケジュール
工数
No.
工程
見積工数(h)
工数差分
(実績-見積)
実績工数(h)
1 要件定義
40
124.5
84.5
2 実現性調査
20
45
25
3 詳細設計
40
103
63
4 テスト設計
40
52
12
5 実現性調査2
20
13
-7
144
107.5
-36.5
7 単体テスト
16
57
41
8 結合テスト
24
21
-3
9 ドキュメント作成
40
7
-33
10 本番環境リリース
16
15
-1
合計(人時)
400
545
145
合計(人日)
50
68
18
6 実装
スケジュールと工数
※()内は工数差分,単位は時間
 要件定義(84.5)
 合意の遅延
 クライアントとのコミュニケーション不足
 成功報酬の検討時間
 プロジェクトとしての目的、目標の勘違い
 実現性調査1 (25 ), 実現性調査2(-7)
 要件定義の遅延から追加したタスク
 気にした時間(18h)を工数として換算した為
 工数集計時に「気にした時間」の定義があいまいだった為
 詳細設計(63)
 実装方法の調査時間
 Servlet化の検討
 修正
 複数クライアント接続への対応方法検討
 DB設計の修正
スケジュールと工数
※()内は工数差分,単位は時間
 テスト設計(12)
 詳細設計の変更による影響
 実装(-36.5)
 実現性調査の効果
 単体テスト(41)、結合(-3)
 単体テスト:ソースレビューにより設計レベルの変更
 ドキュメント作成(-33)
 クライアントが技術者
 当初想定よりも簡素化できた
 本番環境リリース(-1)
 リスク考慮
 環境による違いを考慮していたため大きな差異がなかった
ステップ数と実装工数
No.
ファイル名
Type
1
geocode/APIManager.java
Java
196
29
101
326
2
geocode/GeoDataManager.java
Java
77
11
38
126
3
geocode/RequestProcessor.java
Java
41
11
21
73
4
geocode/DBManager.java
Java
319
33
105
457
5
geocode/GeoData.java
Java
34
15
21
70
6
geocode/Geocoder.java
Java
57
14
47
118
7
log/SystemLogger.java
Java
23
22
6
51
8
log/LogWriter.java
Java
90
26
93
209
9
log/AccessLogger.java
Java
11
11
6
28
10
main/GeocodingModule.java
Java
78
16
32
126
11
setting/GeocodeSettings.java
Java
179
50
82
311
1105
238
552
1895
合計
実行
空行
コメント
合計
ステップ数と実装工数(FP)
ステップ数と実装工数(FP)
ステップ数と実装工数(FP)
工数(人月) 1.133
工数(人時) 181.3
=1.133×20日/月×8時間/日
LOC 1190
=34FP×35 LOC/FP
生産性基準
※(LOC/FP)Cobol:100、Java:35で換算
Cobol:15 の2倍で換算
ステップ数と実装工数(FP)
 実装工数 実績
 実装:107h
(実現性調査1,2:58h)
 LOC 実績
 1105 Step
 FP算出結果
 実装:181.3 h
 LOC:1190 Step
 実績・FP比較結果
 工数実績:FP
 107+58 = 165 :181.3
 実績:FP
 1105:1190
ステップ数と実装工数(FP)
実績
実装工数(h)
LOC
107+58=165
107
1,105
実現性調査1,2:58h
FP見積
181.3
1,190
成長点
 佐藤俊之
 リーダーシップを発揮できるようになった。
 平澤秀幸
 目的、目標に対する意識が強くなった。
 サブリーダーとして与えられた指示を・・・
 松田航
 各フェーズでの成果物や成果物の内容を理解した。
 プレゼンテーションが上手くなった。
 谷田部
 プロジェクトを通して「教育」する事を知った。
 プロジェクト進行をイメージする大切さを知った。
 プロジェクト目的、目標が大事である事を知った。
プロジェクト結果
最後に
・・・
質疑応答
ご清聴ありがとう
ございました。