前回のブログ、なぜシステム開発に失敗するのかを、認知心理学的に考えてみる(その1)の続き。今回は、認知心理学的な問題解決ステップと、開発のステップを対比させて、そのうち、すでに開発で問題になっているところは、どこか、それはなぜ、問題になるのかを書きます。
■■ 前回までのあらまし。
認知心理学的には、問題解決は、良定義問題と不良定義問題に分かれる。
システム開発は、不良定義問題の解決にあたる。
この解決方法は、以下のステップで行われる。
●問題理解 1.問題文の理解 (文→状況モデルを作成する) 2.問題に関係するところだけを選び出し表象する (状況モデル→問題スキーマ) ●実行 3.その問題を解決する方法を見つけ出し、やり方を決める (問題スキーマ→行為スキーマ) 4.その行為スキーマをもとに実行する |
このステップをシステム開発にあてはめると、こんなかんじ
●問題理解 1.問題(=要求)の理解 (ヒアリング) 2.問題に関係するところだけを選び出し表象する (ヒアリング→要求仕様作成) ●実行 3.その問題を解決する方法を見つけ出し、やり方を決める (要求仕様→設計) 4.その行為スキーマをもとに実行する (プログラミング、テスト) |
で、こんかいは、そこから先の話。
■■ 古典的に言われている問題
ここでも大きく、「問題理解」と「実行」に分かれていますが、この問題解決と実行の間にギャップがあり、このギャップがSDLCの断層といわれます。このギャップにおける判断ミスが、プロジェクトの失敗を招くとされています。
つまり、お客さんの要求は聞いた。
でも、その要求を満たすシステムに落とし込む(認知心理学的に言うと、問題スキーマから、行為スキーマへ変換する)ところにおいて、この変換過程は、自動的に行うことではないので、システムの落とし込みに無理があったり、要件をすべて満たすものに変換できなかったりなどでで、問題が起きるということです。
■■ で、認知心理学的に考えると。。
しかし、認知心理学的に考えると、変換過程は、
・状況モデルを作成するところ
ヒアリングでお客さんの話を理解する部分
・状況モデルから問題スキーマを生成するところ
そのヒアリングの中で、システム開発上、重要な要件はなにか、抽出する
・問題スキーマから行為スキーマを生成するところ
上記のSDLCの断層
・行為スキーマから実行のところ
設計内容をプログラミングへ正しく落とし込めるか?
の4つがあるわけです。なので、それぞれの箇所について、問題は起こりえます。
(一番大きな問題は、たしかにSDLCの断層でしょうが)
では、どういう問題がおこるのか?についてですが、それを考えるには、そもそも、これらの変換を、人は、どのように行っているのか?ということから、考えないといけません。
ということで、その話題については、「その3」で触れたいと思います。
(もしやれば)
ということで、今回はここまで。