シリーズ「標準ソフトウエア工学教科書」を作ってみたいと思います
今回から「第三章 ソフトウエアプロセス各論」です。
今回は「3.1 超上流開発」です。
第三章 ソフトウエアプロセス各論
これから3章で、ソフトウエアプロセスの各論に入っていきます。
ソフトウエアプロセスの方法論は時代によって、大きく変わって生きます。
構造化手法とオブジェクト指向では、ぜんぜん違う部分もあるし、開発のときに書く図については、まったく違うものです。
なので、方法論に目を取られると、あまりの違いに、ある手法を身につけても、10年もたったら、意味ないものになってしまうんではないかと思ってしまうと思います。
しかし、方法論の奥に潜む、「何を決めているのか?」ということは、実はあんまり変わっていなかったりします。
ソフトウエアプロセスは、そこを抑えることが重要だと思います。
最終的には、入力と出力、その間をつなぐ処理がわかれば、プログラミングできます。
しかし、要求から、一足飛びに、そこに行き着くのは、問題がいろいろあるので、途中、いろいろなことを決めていきます。その過程について、抑えていくことが重要で、方法論は、そのための手段にすぎません。
「何を決めているか?」
そこを抑えていってください。そうすると、どうしてこういうことをしているのかが見えてくると思います。
■3.1 超上流開発
開発は、要求分析から始まることが多いと思います。
要求分析は上流工程と呼ばれます。
では、その要求は、どこから生まれてくるのか?
と考えてしまうと、要求分析=上流工程の上を考えないといけなくなります。
この部分が、超上流工程なのですが、超上流という場合、アカデミックと実務の人たちでは、別のことを想定しています。
----
アカデミックでは、超上流工程は、開発しようとするシステムに関係がある人(ステークホルダー)を見つけてきて、その人たちの目的や要望を分析することになっています。
具体的には、
・ステークホルダーの抽出
・ステークホルダーの価値観などから、ゴールを見つける
CATWOE分析→ソフトシステム方法論
・ゴール指向分析などで、ゴールを詳細化する
KAOS,i*など
・詳細化したゴールが、「こうすれば実現可能になる!」というレベルまで
落としこむ→実現可能なユースケース=要望
という風に考えて生きます。
このとき、ゴールから詳細化していくわけですが、その過程で、
ロジカルシンキングやKJ法、ブレーンストーミングやマインドマップなどの
手法を使っていきます。
----
一方実務的には、経営理念をもとに会社を設立し?、そのビジョンを実現するために、なにを実現するかを考えます。
具体的には、
・自分たちは何に優れていて、外部環境から考え、何をすべきなのかを、
SWOT分析を通して考え、
・そして、どんな事業をすべきかをPPMによって分析します。
・その結果、
ある事業において、自社は何が優れているから、勝てる!
という、主要成功要因(クリティカルサクセスファクター:CSF)をみつけ、
・それに数値目標(KGI)/評価指標(KPI)などをつけるのですが、
その際、、
「財務の視点(過去)」
「顧客の視点(外部)」
「内部業務プロセスの視点(内部)」
「イノベーションと学習の視点(将来)」
の“4つの視点”を用いて、考えてまとめると、バランス(ト)・スコアカード
BSCになります。
このようにして、戦略を練っていくということになっているのですが・・・
・・・まあ、ここまではしないかな?
でもSWOTくらいは、まとめないにしても考えるかな・・・
とにかく、戦略ができると、その戦略を実現するために、情報システムは、どうしたらよいかと考えます。さらに、戦略をもとに、中長期計画から、部門ごとの短期計画に落とし込まれることにより、戦術化します。マーケティングなら4P、財務なら資金調達とか・・・
その際にも、システム化が必要になるかもしれません。
まあ、このようにして、システム化案が出され、それを実現するための中心人物であるプロジェクトマネージャーが選出されるという形でプロジェクトが始まります。この場合、大雑把な目的はあるけど、プロジェクトマネージャー以外はあんまり決まってないかな?
----
このように、アカデミックな手法と実務では、大きく違っていますが、
違っている中にも共通点があります。
1.システム化するということは決まっている
2.少なくとも、プロジェクトマネージャーは決まっている
3.目的がある。
2は、だれが・・に相当します。3は、何を・・・に相当します。
つまり、超上流にはいろんな形態はあるけど、
このプロジェクトは、どんな目的で、だれが取り仕切るか
は決まるといえそうです。
次の要求分析で、このことが、大きな意味を持ってきます。
今回から「第三章 ソフトウエアプロセス各論」です。
今回は「3.1 超上流開発」です。
第三章 ソフトウエアプロセス各論
これから3章で、ソフトウエアプロセスの各論に入っていきます。
ソフトウエアプロセスの方法論は時代によって、大きく変わって生きます。
構造化手法とオブジェクト指向では、ぜんぜん違う部分もあるし、開発のときに書く図については、まったく違うものです。
なので、方法論に目を取られると、あまりの違いに、ある手法を身につけても、10年もたったら、意味ないものになってしまうんではないかと思ってしまうと思います。
しかし、方法論の奥に潜む、「何を決めているのか?」ということは、実はあんまり変わっていなかったりします。
ソフトウエアプロセスは、そこを抑えることが重要だと思います。
最終的には、入力と出力、その間をつなぐ処理がわかれば、プログラミングできます。
しかし、要求から、一足飛びに、そこに行き着くのは、問題がいろいろあるので、途中、いろいろなことを決めていきます。その過程について、抑えていくことが重要で、方法論は、そのための手段にすぎません。
「何を決めているか?」
そこを抑えていってください。そうすると、どうしてこういうことをしているのかが見えてくると思います。
■3.1 超上流開発
開発は、要求分析から始まることが多いと思います。
要求分析は上流工程と呼ばれます。
では、その要求は、どこから生まれてくるのか?
と考えてしまうと、要求分析=上流工程の上を考えないといけなくなります。
この部分が、超上流工程なのですが、超上流という場合、アカデミックと実務の人たちでは、別のことを想定しています。
----
アカデミックでは、超上流工程は、開発しようとするシステムに関係がある人(ステークホルダー)を見つけてきて、その人たちの目的や要望を分析することになっています。
具体的には、
・ステークホルダーの抽出
・ステークホルダーの価値観などから、ゴールを見つける
CATWOE分析→ソフトシステム方法論
・ゴール指向分析などで、ゴールを詳細化する
KAOS,i*など
・詳細化したゴールが、「こうすれば実現可能になる!」というレベルまで
落としこむ→実現可能なユースケース=要望
という風に考えて生きます。
このとき、ゴールから詳細化していくわけですが、その過程で、
ロジカルシンキングやKJ法、ブレーンストーミングやマインドマップなどの
手法を使っていきます。
----
一方実務的には、経営理念をもとに会社を設立し?、そのビジョンを実現するために、なにを実現するかを考えます。
具体的には、
・自分たちは何に優れていて、外部環境から考え、何をすべきなのかを、
SWOT分析を通して考え、
・そして、どんな事業をすべきかをPPMによって分析します。
・その結果、
ある事業において、自社は何が優れているから、勝てる!
という、主要成功要因(クリティカルサクセスファクター:CSF)をみつけ、
・それに数値目標(KGI)/評価指標(KPI)などをつけるのですが、
その際、、
「財務の視点(過去)」
「顧客の視点(外部)」
「内部業務プロセスの視点(内部)」
「イノベーションと学習の視点(将来)」
の“4つの視点”を用いて、考えてまとめると、バランス(ト)・スコアカード
BSCになります。
このようにして、戦略を練っていくということになっているのですが・・・
・・・まあ、ここまではしないかな?
でもSWOTくらいは、まとめないにしても考えるかな・・・
とにかく、戦略ができると、その戦略を実現するために、情報システムは、どうしたらよいかと考えます。さらに、戦略をもとに、中長期計画から、部門ごとの短期計画に落とし込まれることにより、戦術化します。マーケティングなら4P、財務なら資金調達とか・・・
その際にも、システム化が必要になるかもしれません。
まあ、このようにして、システム化案が出され、それを実現するための中心人物であるプロジェクトマネージャーが選出されるという形でプロジェクトが始まります。この場合、大雑把な目的はあるけど、プロジェクトマネージャー以外はあんまり決まってないかな?
----
このように、アカデミックな手法と実務では、大きく違っていますが、
違っている中にも共通点があります。
1.システム化するということは決まっている
2.少なくとも、プロジェクトマネージャーは決まっている
3.目的がある。
2は、だれが・・に相当します。3は、何を・・・に相当します。
つまり、超上流にはいろんな形態はあるけど、
このプロジェクトは、どんな目的で、だれが取り仕切るか
は決まるといえそうです。
次の要求分析で、このことが、大きな意味を持ってきます。