レビュー・ファースト
Before[=>]
Next[=>]
Index[=>]
レビュー・ファースト ITプロジェクトで行われる利用者(顧客)要求の定義、システム設計、詳細設計、コード化において、レビューは大変重要な意味を持ちます。システム生成の自動化が進めば、レビューは不要になるのではないかと思われるかも知れませんが、自動化とは言ってもほんの一部の自動化が少しずつ可能となってきたにすぎません。確かに1970年代に較べるとソフトウェア開発はかなり自動生成されるようになりました。おかけでソフトウェアの種類によっては開発期間は短くなりました。かなりお膳立てがされている状態(パッケージソフトやCASEツール、簡易言語の活用等)から開発が可能となり、システムによっては3ヶ月以内で開発できる案件もあります。しかし、利用者(顧客)要求定義を行い、システム設計、詳細設計、コード化という作業が伴なう限り、レビューが不要となることはありません。 利用者(顧客)要求の定義、システム設計、詳細設計、コード化作業に誤りはつきものという前提で仕事をしなければ、信頼性が高いシステムを開発することはできません。設計書を書き、コード化が終了すると、はやる気持ちが抑えられず、テスト工程に入ってしまうのは犯し易い誤りの1つです。自分が書いたプログラムが思った通りに動作するのは楽しいことだからです。直ぐにでも結果を見たいばかりに途中の仕事をすっ飛ばして直ぐ実行してみたくなる気持ちは今も昔も変わりません。前の工程をほどほどにして次の工程に進んではいけません。設計書を書き、コード化する前にレビューが必要です。コード化が終わってテストする前にもレビューが必要です。 システム設計者やプログラマのはやる気持ちだけが、現在工程の仕事を完了させずに、次の工程に入る要因ではなく、当初の計画が遅れてくると、とりあえず先の工程に手をつけたがる管理者の心理も要因となっています。前稿「ITプロジェクトにおける知識継承」の図3[=>]
(下図は図3の引用)を参照してください。図3は時間軸と作業との関係を示しています。一番外側の長方形が縦線2本と斜線3本で区切られています。縦線はこの時期までにそれ以前の工程の作業をすべて完結させる必要があることを意味しています。斜線は時間軸で見ると複数の工程が重複しても良いことを意味しています。斜線は複数の工程の重複を徒に許しているのではなく、クリティカルパス(ある作業が終了しなければ、次の作業に入れない関係を考慮した作業手順)と平行可能作業とを考慮して要員を配置し、要員の空き時間をなくし、最も短期にプロジェクトが終了するよう計画されることを前提にしています。あるモジュールの詳細仕様設計途中で、コード化を始めても良いという意味ではありません。テストについても同様です。 軽量級の方法論で、テスト・ファーストという用語が使われるようになりました。テストし、確認しながらソフトウェアを構築するのです。確かに、品質がどうか確認できないまま、大規模のソフトウェアを作成して、後工程でテストを始めると、取返しがつかないような事態になることは防止できます。しかし、テスト・ファーストよりもっと効果的なのはレビュー・ファーストです。テストよりもコストミニマムに、確実に品質を確保する手段はレビューなのです。 なぜレビューが必要なのでしょうか。今更説明するまでもないことですが、多くの人は何をするにしても、はじめから正確に行うことはできません。誤りを修正しながら、完全に近づけて行きます。人間が誤りを犯し易い存在だということは、ソフトウェア開発という複雑な作業において、より顕著に現われます。そうであるにもかかわらず、レビューの重要性を忘れてしまうのです。今私はこの文章を書いていますが、何度も行ったり来たりしながら、ようやっと書いているのが実状です。ソフトウェア開発も同様です。何度も見直しているのですが、見過ごしてしまうことが沢山あります。文章は人が読んで、適当に解釈してくれますが、ソフトウェアはそうは行きません。コンピュータは人の瑕疵を許してくれません。適当に解釈し、正しく認識してくれたらいいのですが、誤りはそのまま不具合となって現われます。 Waterfall型モデルでは、誤りを犯した工程と顕在化した工程が離れているほど解決に要する費用は大きくなります。上流工程の誤りは下流工程に大きく影響し、修正は誤りを犯した工程の作業からやり直さなければならなくなるからです。最も費用がかかるのは、要求仕様(外部仕様)に利用者(顧客)の要求を正しく反映せず、総合テストで発見された場合です。最も費用が軽くて済むのはコード化工程での誤りです。しかし、それはソフトウェアの開発期間中の話です。システムを
■Next Page
・Full Browser
ja.abc-yoga.podzone.org | Contact