【12-A-1】開発プロセスの心
開発プロセスはモデルとしての分離を行う。
そこにとどまってしまってはいけなくて、
分離した役割は
- 並行性(同時に作業ができる等)があること。
- 価値の創出を図ること(検証の効率化など)。
を行えることが開発プロセスとして重要なポイント。
◆開演の挨拶 A会場 開発トラック 開発トラックとは名ばかりのアジャイル開発中心の会場です 12-A-1 開発プロセスの心 萩本順三(株式会社 匠Lab) ◆開発プロセスとは プロセス=時系列的な見える化として捉える ◆開発プロセス手法の紹介 ウォーターフォール 管理がしやすい。参加者の半数ぐらいがこのモデルで開発してると挙手 反復開発(RUP) リスクに柔軟に対応できる アジャイル 開発者のモチベーションにつながりやすい トーカーも憧れを感じるがアジャイル開発は管理が複雑に ◆ウォーターフォールはなぜダメなのか Q.手戻りがたくさんないですか? →要求の早期検証ができない →アーキテクチャの早期検証ができない リスクマネジメントをする方法として 反復開発 アジャイル開発 を必要としてる ウォーターフォールがうまく行えている開発は 隠れたところで手戻りを想定したリスクマネジメントをきっちりしているから。 Q. 初期段階でプロトタイプモデルとかしてませんか? A. 隠れたプロセスがある → 隠れたプロセスを見える化する必要がある★ ◆反復型開発プロセスを成功させる 参照モデルとして考える。 =プロジェクトに合わせてカスタマイズが必要な開発プロセス 以下のどちらが優先されるのか。リスクマネジメントを如何に行うかが鍵 ユースケースドリブン(要求を先に検証) アーキテクチャセントリック(アーキテクチャを検証) ◆アジャイル開発プロセスを成功させる プロセスは重要視されていないが、プロセスは存在している。 検証重視の設計 モデリングについて ドキュメント・設計書を書きすぎるな。 → コミュニケーションのなかで必要な分だけやればいい ・今必要なドキュメント ・保守のために必要なドキュメント 開発を行っているうちにドキュメント作成が追いつかなくなるぐらいなら、 上記を分離してみてはどうでしょうか? ◆反復とアジャイルの違い → どちらも長所が弱点となりやすい。 反復は管理重視、アジャイルは価値重視★ アジャイルは価値を最大化する。 実施の中からプランを最適化、価値を高める ◆プロセスの進化 もっとも基本的なウォーターフォールは リスクマネジメントができていない → 最初に予算をきめる予算主導型のため最もコストがかかる。 リスクを回避するための隠れたプロセス (=隠れてはいるが、プロジェクト内で実施している プロトタイピングなどほかの手法を応用したリスク管理の取り組み)を見える化★ 反復開発 ビジネスをモデル化して表現することが難しい。 ★アジャイル開発の進化 ビジネスのスケール(事業の企画段階)からアジャイルをやるべし ⇒ 要求開発段階でアジャイルが必要 要求を開発する 要求はあるもの、ではなくて開発するもの、と捉える。 リコーソフトウエアのサイトで「要求開発超入門」を参考に★ ◆開発プロセスの進むべき方向性 開発プロジェクトに閉じこもらない★ ビジネス(たとえば要求開発)開発プロセス作りが重要 プロセスを洗練する → 計画と実施のかい離を防ぐ 要求のリスクマネジメント → 要求の最適な実現方法を考える 提案による要求の創出 企画の段階からアジャイル開発を用いて何をしたいのか 最適な要求を選択する。 ★プロセスの本質 作業を工程、役割などで分けることが、まず重要。 ただし、分けただけでは煩雑になる。 分けたあとに繋げる たとえばアーキテクトと設計者をわけてもよいが連携が必要 分担した作業の並行性を試みる 分け方は上流・下流ではなく前工程・後ろ工程でもない 例えばアーキテクトと実装担当の設計者が 並行してプロジェクトに当たることで検証や価値の向上を図ることが必要★ ◆目指すべき開発プロセス ・実現可能な計画を持つ ・価値を創出する ・管理志向に走らない プロセスをまず勉強してカスタマイズを試みる。 次のステップとして契約体系を含めて根本から替えることが必要。 要求開発や企画の段階から開発者が入り込め、必要なものを必要な手法で実施することが重要