Ship It!読了
Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック
- 作者: Jared Richardson,William Gwaltney Jr.,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2006/08/26
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 101回
- この商品を含むブログ (98件) を見る
- 概要
- ヒント
- どこから着手するか
- そのやり方は正しいか
- 警告サイン
のような構成となっていて非常に読みやすかった。
とりあえずTODOリスト(作業リスト)に優先度を割り当てることから始めてみるかな。
以下メモ
ツール、プロジェクト管理
- バージョン管理
- 米国IT企業の40%はバージョン管理システムを使用していない
- 意外に高くて驚き
- 紙ぺら1枚のクイックスタートガイドを作る
- これは他のツールでもすべきですね
- 一部のバージョン管理システムはファイルを定期的に「食べて」しまう
- 名前伏せないではっきり言ってほしい。VSS?
- 米国IT企業の40%はバージョン管理システムを使用していない
- 自動ビルド
- 作業リスト
- 必ず優先度を割り当てる
- 関係者に公開されている
- 随時変更
- 見積もりを行う
- 毎日のミーティング、コミュニケーション
- 短時間で行う。一人の発言時間は1分〜3分ぐらいがベスト。
- 問題の確認は行うが、解決は行わない。
- 長いミーティングが常態化している場合、バーンレートを計算してみる。
- ミーティングでは時計回りに発言を求める(不意打ちを受けた感じを避けるため)
- ミーティングの議長役は持ち回りにする(ミーティングをリーダーを育てる為に利用)
- 議論が長期化しだした場合(特定の問題について解決策のアイデアを出し合うのを関係のないメンバーが聞いている状況等)、議長がミーティング終了後に協議するよう指示する
曳光弾開発(Tracer Bullet Development:TBD)
- システムオブジェクトを定義
- アプリケーションを上位レベルで複数の層に分割
- クライアント層
- Webサーバ層
- データ処理層
- データベースアクセス層
- それぞれが単独で動作する
- それぞれをチーム(個人)が単独で開発できる
- アプリケーションを上位レベルで複数の層に分割
- 複数のチームが協力してインターフェースを定義
- インターフェーススタブを記述
- 全てのインターフェース定義が一通り完了するまで機能の実装は行わない
boolean login(String userName, String password) { return true; }
boolean login(String userName, String password) { //実際にはDBアクセス層はDBにまだアクセスしない String realPassword = getPassword(userName); Boolean login = false; if (realPassword.equals(password)) { login = true; } return login; }
- 実機能をスタブに実装
- 各層間のAPIの変更は両チームの合意が必要