パターンに基づくプロセス設計

前回のおさらい前回はマイルストンの設定例として、ウォーターフォール型のプロセスモデルからはV字モデル、反復型のプロセスモデルからはスクラムを紹介しました。V字モデルやスクラム以外にも、W字モデル、ラショナル統一プロセス(Rational Unified Process)など様々なプロセスモデルが存

野島 勇, 土屋 正人

2011年10月13日 20:00

前回のおさらい

前回はマイルストンの設定例として、ウォーターフォール型のプロセスモデルからはV字モデル、反復型のプロセスモデルからはスクラムを紹介しました。V字モデルやスクラム以外にも、W字モデル、ラショナル統一プロセス(Rational Unified Process)など様々なプロセスモデルが存在しています。ゴールにたどり着く道は1つではなく様々です。

プロジェクトの目的が変わってくれば、マイルストンの設定の仕方も変わります。こう言うと当たり前なのですが、実際のプロジェクトでは目的が異なるにも関わらず同じプロセスを採用している場合があります。これでは道に迷うのも仕方ありません。

本稿では、目的に応じてプロセスを設計できるようになることを目指しています。プロセスを設計すると言っても、何も無いところから考えるとなると難しいものです。そこで、プロセスのパターンをいくつかご紹介します。

分析→設計→実装→検証

図1:問題解決プロセス(クリックで拡大)

図1はアジャイル界隈の有名人である平鍋健児氏のブログで紹介されていた図に少しばかり手を加えた図です。図1のサイクルは複雑な問題を解く場合に使うことができます。システム開発は問題解決を行うための手段の1つであり、図1のサイクルはシステム開発に限らず問題解決において適用できます。

図1のサイクルにおいては、解くべき『問題』が始めに存在します。問題は要求とも言えます。解決したいこと、満たしたいこと、つまりはゴールです。問題は時に曖昧であったり、複雑であったりします。例えば、システム開発において顧客からやってくる要求は、問題の本質をとらえていないことがあり、要求に従ってシステムを開発したが顧客の満足を得られないということがあります。この場合は、解くべき問題の設定を誤ったと言えます。

前回の喩えで言えば、「提示された写真と同じ角度から写真を撮影すること」が問題の本質ではなく、「人に喜びを与える写真をそろえた展示会をすること」が問題の本質により近いと言えます。解くべき問題を間違えると、問題は解消できません。確実に解消するために問題を整理して本当に解くべき問題を明らかにします。この過程を『分析』と呼びます。

「問題をなぜ解決したいのか?」「解決するとは何を目指すことか?」のように、「何?」「なぜ?」「何のため?」と問い続けます。これらの問いの答えを整理したものが『分析モデル』であり、分析の結果となります。

モデルとは、複雑な実体を特徴によって分解することで理解を助けるためのものです。例えば、プラモデルは、実物の形態のみを縮小してプラスチックにより造形し表現したものです。複雑な実体を表すためには、複数の表現形式を必要とします。形態を示すものがプラモデルだとすると、他にも動力系統や制御系統を示す回路図のようなものなども必要となってきます。分析モデルも同様に、問題(要求)を複数の視点から表現します。

分析を行った後に、分析モデルで定義された問題についての解法を考えます。この過程を『設計』と呼びます。設計では、時間、費用、技術、人員などのざまざまな制約の範囲内で、最も効率的に問題を解くことのできる方法を考えます。設計の結果が『設計モデル』です。

解法が決まったら実際に問題を解きます。問題を解くために解法を現実化する過程を『実装』と呼びます。実装と言うとプログラミングを想像しがちですが、現実化すること一般を指しています。例えば、「雨をよけるにはどうするか?」という問題について「傘」という解法を考えたならば、「傘をつくること」が実装になります。実装の結果として、問題の『解』が得られます。

そして、「得られた解が本当に問題を解決するのか?」を検証します。この過程を『検証』と呼びます。テストや試験と呼ぶことの方が多いでしょうが、より一般化して検証と呼ぶことにします。先の例で言えば、「傘」により「雨をよける」が可能なのか検証することになります。解により問題を検証した結果として、新たな問題が得られます。この新たな問題に対して、分析、設計と繰り返していきます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30