エンタープライズアジャイル開発実践ガイド
書籍情報
発売日 : 2020年12月28日
著者/編集 : 長瀬 嘉秀/伊藤 龍司/木村 泰久/杉浦 由季/長岡 晶史/松本 哲也
出版社 : マイナビ出版
発行形態 : 単行本
書籍説明
内容紹介
従来のウォーターフォール開発とアジャイル開発は何が違うのか?アジャイル開発を成功させるためのチーム作り、プロジェクトの進め方、プランニングからリリースまでの流れ、開発時に必要な技術、評価と改善まで、徹底的に解説。開発の理想と実際を踏まえての対処策、課題を抱える中での具体的なプロジェクトの進め方など、現場を熟知した執筆陣ならではのノウハウが詰まっています。
目次
Introduction
1 アジャイル開発の守破離
2 ソフトウェアのビジネス価値
3 アジャイルを始める前に理解しておくべきこと
4 我々の知っているアジャイル開発
5 アジャイル開発のフレームワーク
6 アジャイル開発についてよく聞かれる2つのこと
導入編
Chapter1 チームを作る
1-1 メンバーを集める
1-1-1 プロダクトオーナーを決める
1-1-2 プロダクトオーナーの権限
1-1-3 開発チームのメンバーを集める
1-2 チームビルディング
1-2-1 メンバーの適切な関係を作る
1-2-2 目標に対して一丸となる
1-3 環境を整える
1-3-1 ステークホルダーのサポートを受ける
1-3-2 快適な作業環境を準備する
Chapter2 開発の準備
2-1 プロジェクトの方針を決める
2-1-1 方針の決め方
2-1-2 プロジェクトを管理する方法
2-1-3 関係者の認識を合わせる
2-2 プロダクトバックログの作成
2-2-1 プロダクトバックログアイテムを作成する
2-2-2 アイテムの優先順位を決める
2-2-3 リリースのタイミングを決める
2-3 開発のスタートができる状態にする
2-3-1 開発環境を構築する
2-3-2 開発のリハーサルをする
2-4 ステークホルダーへの説明
2-4-1 ステークホルダーへの説明
Chapter3 開発
3-1 イテレーション(スプリント)のプランニング
3-1-1 プランニングの準備
3-1-2 プランニングで目標とスコープを決める
3-1-3 プランニングで開発作業の計画を立てる
3-2 バックログアイテムの実装
3-2-1 リリースまでの開発の進め方
3-2-2 開発中のコミュニケーション
3-2-3 設計
3-2-4 コーディング
3-2-5 他のシステムとの連携
3-2-6 テスト
3-2-7 デイリースクラムの開催
3-2-8 ドキュメントの作成
3-2-9 開発したソフトウェアのレビュー/ 受け入れ
3-3 ソフトウェアのリリース
3-3-1 計画した通りにリリースする
3-4 プロジェクトの管理
3-4-1 品質の管理
3-4-2 プロジェクトの進捗管理
3-4-3 スプリントの進捗管理
3-4-4 バージョン管理
3-4-5 ステークホルダーへの報告
3-5 運用
3-5-1 運用フェーズへの移行
Chapter4 評価と改善
4-1 ソフトウェアの評価と改善
4-1-1 ソフトウェアの評価
4-1-2 ソフトウェアの改善
4-2 組織の評価と改善
4-2-1 組織の評価
4-2-2 組織の改善
4-3 開発チームの評価と改善
4-3-1 開発チームの評価
4-3-2 開発チームの改善
実践編
Chapter5 要件管理
5-1 プロダクトオーナーの役割
5-1-1 プロダクトオーナーの役割・責任
5-2 インセプションデッキ
5-2-1 インセプションデッキを作成する理由
5-2-2 エンタープライズならではのナレッジ
5-2-3 インセプションデッキの活用
5-3 プロダクトバックログの概要
5-3-1 プロダクトバックログとは
5-3-2 プロダクトバックログを見える化する方法
5-4 プロダクトバックログの作り方
5-4-1 ユーザーに届けたい価値を整理する
5-4-2 ユーザー像の深堀り
5-4-3 ユーザーストーリーマッピング
5-4-4 プロダクトバックログアイテムを作る
5-4-5 プロダクトバックログアイテムの見積り
5-5 フィードバックを集める
5-5-1 背景にある考え方
5-5-2 ユーザーのフィードバック
5-5-3 フィードバックを集める
Chapter6 アジャイルで求められる開発技術
6-1 オブジェクト指向
6-1-1 オブジェクト指向の基本
6-1-2 アジャイルで必要なオブジェクト指向の考え方
6-2 デザインパターン
6-2-1 デザインパターンの基本
6-2-2 アジャイル開発で効果を発揮するデザインパターン
6-3 テスト駆動開発
6-3-1 テスト駆動開発の必要性
6-3-2 テスト駆動開発のしくみ
6-3-3 テスト駆動開発で利用するツール
6-3-4 テスト駆動開発の本質
6-4 リファクタリング
6-4-1 リファクタリングとは
6-4-2 コードの臭い
6-4-3 リファクタリングカタログ
6-4-4 リファクタリングツール
6-5 ペアプログラミング
6-5-1 ペアプログラミングとは
6-5-2 モブプログラミング
6-5-3 リモートでのプログラミング
6-6 アーキテクチャ設計(マイクロサービス)
6-6-1 サービス化の検討
6-6-2 マイクロサービスの効果と支えるしくみ
6-6-3 サービスメッシュについて
6-7 マイクロサービスの採用と組織
6-7-1 マイクロサービスの概要
6-7-2 アジャイルの組織とマイクロサービス
Chapter7 品質管理
7-1 アジャイルの品質管理
7-1-1 アジャイル開発の品質課題
7-1-2 アジャイル開発の品質管理の基本
7-1-3 エンタープライズで押さえるポイント
7-2 テスト技法
7-2-1 アジャイルテストの分類
7-2-2 Q1 エリア: テクノロジー観点の開発支援テスト
7-2-3 Q2 エリア: ビジネス観点の開発支援テスト
7-2-4 Q3 エリア: ビジネス観点のプロダクト評価テスト
7-2-5 Q4 エリア: テクノロジー観点のプロダクト評価テスト
7-2-6 アジャイルテストの重要ポイント
7-3 ソフトウェアメトリクスの収集と改善
7-3-1 ソフトウェアメトリクスによる品質チェック
7-3-2 ソフトウェアメトリクス収集の仕方
7-4 アジャイルの品質報告
7-4-1 ウォーターフォール開発との成果物比較
7-4-2 アジャイルの品質報告
Chapter8 構成管理
8-1 分散型バージョン管理
8-1-1 分散型バージョン管理とは
8-2 Git
8-2-1 Git 誕生の背景
8-2-2 ノンリニア開発のための分岐システム
8-2-3 Git の仕組み
8-2-4 基本操作
8-2-5 ブランチモデル決定の3 つのポイント
8-2-6 主要なブランチモデルの概要
8-3 まとめ
Chapter9 DevOps
9-1 DevOpsとは
9-1-1 背景
9-1-2 DevOpsの考え方
9-2 DevOpsのためのインフラ構築の自動化
9-2-1 クラウドのリソースの構築/管理を自動化する
9-2-2 ミドルウェアの構築/ 管理を自動化する
9-3 DevOpsのためのアプリケーション開発の自動化
9-3-1 基本となる技術
9-3-2 自動化の種類
9-3-3 チームや組織に合致した自動化の選択
9-3-4 自動化を実現する構成
9-4 DevOpsを導入する
9-4-1 エンタープライズのDevOpsの問題点
9-4-2 DevOps の準備
9-4-3 DevOps の環境を試運転する
9-4-4 DevOpsを実践する
9-5 組織のパフォーマンスを高めるための体制
9-5-1 エンタープライズに多い組織体制
9-5-2 従来の組織体制が引き起こす問題
9-5-3 パフォーマンスを向上させる組織体制への変更
Chapter10 プロジェクト管理
10-1 プロジェクトプランニング
10-1-1 ウォーターフォール開発
10-1-2 アジャイル開発
10-2 体制作り(チームビルディング)
10-2-1 ウォーターフォール開発での体制作り
10-2-2 アジャイル開発での体制作り
10-3 開発の進め方(リリース計画)
10-3-1 Quality(品質)
10-3-2 Delivery(スケジュール)
10-3-3 Cost(お金)
10-4 まとめ
Conclusion 本書のまとめ
1 魔法の杖ではない
2 アジャイルの導入をはじめる
3 アジャイルのチームづくり
4 改善サイクル
5 BizDevOps
6 最後に
1 アジャイル開発の守破離
2 ソフトウェアのビジネス価値
3 アジャイルを始める前に理解しておくべきこと
4 我々の知っているアジャイル開発
5 アジャイル開発のフレームワーク
6 アジャイル開発についてよく聞かれる2つのこと
導入編
Chapter1 チームを作る
1-1 メンバーを集める
1-1-1 プロダクトオーナーを決める
1-1-2 プロダクトオーナーの権限
1-1-3 開発チームのメンバーを集める
1-2 チームビルディング
1-2-1 メンバーの適切な関係を作る
1-2-2 目標に対して一丸となる
1-3 環境を整える
1-3-1 ステークホルダーのサポートを受ける
1-3-2 快適な作業環境を準備する
Chapter2 開発の準備
2-1 プロジェクトの方針を決める
2-1-1 方針の決め方
2-1-2 プロジェクトを管理する方法
2-1-3 関係者の認識を合わせる
2-2 プロダクトバックログの作成
2-2-1 プロダクトバックログアイテムを作成する
2-2-2 アイテムの優先順位を決める
2-2-3 リリースのタイミングを決める
2-3 開発のスタートができる状態にする
2-3-1 開発環境を構築する
2-3-2 開発のリハーサルをする
2-4 ステークホルダーへの説明
2-4-1 ステークホルダーへの説明
Chapter3 開発
3-1 イテレーション(スプリント)のプランニング
3-1-1 プランニングの準備
3-1-2 プランニングで目標とスコープを決める
3-1-3 プランニングで開発作業の計画を立てる
3-2 バックログアイテムの実装
3-2-1 リリースまでの開発の進め方
3-2-2 開発中のコミュニケーション
3-2-3 設計
3-2-4 コーディング
3-2-5 他のシステムとの連携
3-2-6 テスト
3-2-7 デイリースクラムの開催
3-2-8 ドキュメントの作成
3-2-9 開発したソフトウェアのレビュー/ 受け入れ
3-3 ソフトウェアのリリース
3-3-1 計画した通りにリリースする
3-4 プロジェクトの管理
3-4-1 品質の管理
3-4-2 プロジェクトの進捗管理
3-4-3 スプリントの進捗管理
3-4-4 バージョン管理
3-4-5 ステークホルダーへの報告
3-5 運用
3-5-1 運用フェーズへの移行
Chapter4 評価と改善
4-1 ソフトウェアの評価と改善
4-1-1 ソフトウェアの評価
4-1-2 ソフトウェアの改善
4-2 組織の評価と改善
4-2-1 組織の評価
4-2-2 組織の改善
4-3 開発チームの評価と改善
4-3-1 開発チームの評価
4-3-2 開発チームの改善
実践編
Chapter5 要件管理
5-1 プロダクトオーナーの役割
5-1-1 プロダクトオーナーの役割・責任
5-2 インセプションデッキ
5-2-1 インセプションデッキを作成する理由
5-2-2 エンタープライズならではのナレッジ
5-2-3 インセプションデッキの活用
5-3 プロダクトバックログの概要
5-3-1 プロダクトバックログとは
5-3-2 プロダクトバックログを見える化する方法
5-4 プロダクトバックログの作り方
5-4-1 ユーザーに届けたい価値を整理する
5-4-2 ユーザー像の深堀り
5-4-3 ユーザーストーリーマッピング
5-4-4 プロダクトバックログアイテムを作る
5-4-5 プロダクトバックログアイテムの見積り
5-5 フィードバックを集める
5-5-1 背景にある考え方
5-5-2 ユーザーのフィードバック
5-5-3 フィードバックを集める
Chapter6 アジャイルで求められる開発技術
6-1 オブジェクト指向
6-1-1 オブジェクト指向の基本
6-1-2 アジャイルで必要なオブジェクト指向の考え方
6-2 デザインパターン
6-2-1 デザインパターンの基本
6-2-2 アジャイル開発で効果を発揮するデザインパターン
6-3 テスト駆動開発
6-3-1 テスト駆動開発の必要性
6-3-2 テスト駆動開発のしくみ
6-3-3 テスト駆動開発で利用するツール
6-3-4 テスト駆動開発の本質
6-4 リファクタリング
6-4-1 リファクタリングとは
6-4-2 コードの臭い
6-4-3 リファクタリングカタログ
6-4-4 リファクタリングツール
6-5 ペアプログラミング
6-5-1 ペアプログラミングとは
6-5-2 モブプログラミング
6-5-3 リモートでのプログラミング
6-6 アーキテクチャ設計(マイクロサービス)
6-6-1 サービス化の検討
6-6-2 マイクロサービスの効果と支えるしくみ
6-6-3 サービスメッシュについて
6-7 マイクロサービスの採用と組織
6-7-1 マイクロサービスの概要
6-7-2 アジャイルの組織とマイクロサービス
Chapter7 品質管理
7-1 アジャイルの品質管理
7-1-1 アジャイル開発の品質課題
7-1-2 アジャイル開発の品質管理の基本
7-1-3 エンタープライズで押さえるポイント
7-2 テスト技法
7-2-1 アジャイルテストの分類
7-2-2 Q1 エリア: テクノロジー観点の開発支援テスト
7-2-3 Q2 エリア: ビジネス観点の開発支援テスト
7-2-4 Q3 エリア: ビジネス観点のプロダクト評価テスト
7-2-5 Q4 エリア: テクノロジー観点のプロダクト評価テスト
7-2-6 アジャイルテストの重要ポイント
7-3 ソフトウェアメトリクスの収集と改善
7-3-1 ソフトウェアメトリクスによる品質チェック
7-3-2 ソフトウェアメトリクス収集の仕方
7-4 アジャイルの品質報告
7-4-1 ウォーターフォール開発との成果物比較
7-4-2 アジャイルの品質報告
Chapter8 構成管理
8-1 分散型バージョン管理
8-1-1 分散型バージョン管理とは
8-2 Git
8-2-1 Git 誕生の背景
8-2-2 ノンリニア開発のための分岐システム
8-2-3 Git の仕組み
8-2-4 基本操作
8-2-5 ブランチモデル決定の3 つのポイント
8-2-6 主要なブランチモデルの概要
8-3 まとめ
Chapter9 DevOps
9-1 DevOpsとは
9-1-1 背景
9-1-2 DevOpsの考え方
9-2 DevOpsのためのインフラ構築の自動化
9-2-1 クラウドのリソースの構築/管理を自動化する
9-2-2 ミドルウェアの構築/ 管理を自動化する
9-3 DevOpsのためのアプリケーション開発の自動化
9-3-1 基本となる技術
9-3-2 自動化の種類
9-3-3 チームや組織に合致した自動化の選択
9-3-4 自動化を実現する構成
9-4 DevOpsを導入する
9-4-1 エンタープライズのDevOpsの問題点
9-4-2 DevOps の準備
9-4-3 DevOps の環境を試運転する
9-4-4 DevOpsを実践する
9-5 組織のパフォーマンスを高めるための体制
9-5-1 エンタープライズに多い組織体制
9-5-2 従来の組織体制が引き起こす問題
9-5-3 パフォーマンスを向上させる組織体制への変更
Chapter10 プロジェクト管理
10-1 プロジェクトプランニング
10-1-1 ウォーターフォール開発
10-1-2 アジャイル開発
10-2 体制作り(チームビルディング)
10-2-1 ウォーターフォール開発での体制作り
10-2-2 アジャイル開発での体制作り
10-3 開発の進め方(リリース計画)
10-3-1 Quality(品質)
10-3-2 Delivery(スケジュール)
10-3-3 Cost(お金)
10-4 まとめ
Conclusion 本書のまとめ
1 魔法の杖ではない
2 アジャイルの導入をはじめる
3 アジャイルのチームづくり
4 改善サイクル
5 BizDevOps
6 最後に
著者情報
長瀬 嘉秀
●長瀬 嘉秀 (ながせ よしひで)
株式会社テクノロジックアート代表取締役。
1986年、東京理科大学理学部応用数学科卒業。
朝日新聞社を経て、1989年に株式会社テクノロジックアートを設立。OSF(OPEN Software Foundation)のテクニカルコンサルタントとしてDCE(Distributed Computing Environment)関連のオープンシステムの推進を行う。OSF日本ベンダ協議会DCE技術検討委員会の主査を務める。トランスコスモス株式会社技術顧問。
主な著書・訳書
「マイクロサービス入門 アーキテクチャと実装」(共著、リックテレコム、2018年)
「アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座」(共著、翔泳社、2017年)
「関数型プログラミングの基礎」(監修、リックテレコム、2016年)
「グラフ型データベース入門 - Neo4jを使う」(監修、リックテレコム、2016年)
など
長瀬, 嘉秀, 1963-
伊藤 龍司
●伊藤 龍司 (いとう りゅうじ)
1976年生まれ。ソフトバンク株式会社に所属
2000年、Jフォンに入社。社名がVodafone、SoftBankと変わりながら現在に至る。
システム開発部門に配属。コールセンターへのIVR導入やEU向けの契約内容照会、変更の可能なシステムを開発。
お客様により早くサービスを提供できないか? と日々考えている中、アジャイル開発と出会う。確認すればするほど素晴らしい手法と魅了され、アジャイル開発を行う組織を作る。
現在では、今までの経験を活かし、日々、開発業務やアジャイル開発の推進に精力的に取り組む。
伊藤, 龍司, 1976-
木村 泰久
●木村 泰久 (きむら やすひさ)
1975年生まれ。ソフトバンク株式会社に所属。
これまで、ITサービスマネージメント業務やシステム開発業務に従事。
現在では、ITIL Expert、CSPOの資格を活かし、日々、開発業務やアジャイル開発の推進に精力的に取り組む。
木村, 泰久, 1975-
杉浦 由季
●杉浦 由季 (すぎうら よしき)
株式会社NTTデータ 技術開発本部主任
ウォーターフォール型開発のプロジェクトを経て2013年頃からアジャイル開発の導入及び関連技術の研究開発に従事。これまで公共、金融、サービス等、幅広い分野でのアジャイル開発に関わった経験を活かし、現在は社内外のアジャイル開発のプロジェクトを支援。本業の傍ら、若い世代にプログラミングやIoT に興味を持ってもらうためのワークショップを開催。
杉浦, 由季
長岡 晶史
●長岡 晶史 (ながおか まさし)
某システム開発会社を経て、2001年にインフォコム株式会社入社。携帯通信事業者向けに HP Nonstop によるシステム構築プロジェクトに PL として参画。2007 年より主に通信事業者向けにベンダ側 PL、PM として数々のプロジェクトに 10 年以上にわたり従事。
長岡, 晶史
松本 哲也
●松本 哲也 (まつもと てつや)
pitdyne株式会社 代表取締役
医療機器システムの開発に携わったのち、トランスコスモス株式会社等にて大規模システム開発における標準化、アーキテクチャ設計に多数参画。2019年にpitdyne株式会社を設立し、現在に至る。アジャイル検定コンソーシアムにて、アジャイル検定試験の策定に参加。
AIシステムの開発、クラウド環境でのシステム開発標準化、VRによるソリューション開発などを行っている。
書籍に『二次請けマネージャの教科書』(技術評論社)、『マイクロサービス入門』(リックテレコム)。
松本, 哲也