さて、ここからがエクスプレス開発ならではの方法です。もう1歩踏み込んで、数ある処理を2つでなく3つに分けるのです。この3分割という考え方自体は発想しやすいと思いますが、「どう3つに分けるか」は意外と難しいものです。ここではその方法をお教えしましょう。
まず、カットオーバー当日までに「不可欠な処理」と「不可欠でない処理」の2つに分けるところまでは同じです。その後、「不可欠な処理」をさらに2分割して、全体で3つのカテゴリに分けるのです。具体的には、カットオーバー当日までに“完成形”が求められる処理機能と、“不完全でもよい”処理機能に分けます。
例えば、物流システムのメイン機能となる「出庫処理機能」は、メニュー画面上で必要なデータを入力し、実行ボタンをクリックすると、DBを更新して結果を表示する、といった処理を行います。そのため、要求仕様どおりのメニュー画面を備え、かつ、命令どおりに実行できる──すなわち“完成形”が求められます。
一方、核となる機能の 1つとして「出庫一覧」機能もあります。こちらは、任意の対象日における出庫商品の一覧を表示・出力する機能ですが、メニュー画面を使わなくても、ファイル起動やコマンドプロンプトで実行することができます。すなわちメニュー画面が“不完全でもよい”のです。
このうち、前者を『カットオーバーまでに不可欠な処理 1』、後者を『カットオーバーまでに不可欠な処理 2』とし、『カットオーバーまでに不可欠でない処理』と合わせて3つのカテゴリに整理したのが以下の表1です。
2分割 |
カテゴリ |
3分割 |
業務処理例 |
利用者 |
カットオーバーまでに不可欠な処理 | カテゴリ1 | カットオーバーまでに不可欠な処理1 (メニュー画面からデータ処理まで、完全な機能が求められる処理) |
出庫処理 (メニュー画面から出庫する商品の商品コードと出庫数を入力し、実行すると画面上の在庫数が減るという処理) |
オペレータ |
カテゴリ2 | カットオーバーまでに不可欠な処理2 (メニュー画面は不完全でもよい処理) |
出庫一覧 (任意の対象日における出庫商品の一覧を出力する処理。対象日を入力し、表示したデータをプリントアウトする) |
オペレータ or SE |
|
カットオーバーまでに不可欠でない処理 | カテゴリ3 | カットオーバーまでに不可欠でない処理 | 棚卸し処理 (月末や期末に商品コードと数量などを入力し、在庫と付け合せる処理) |
オペレータ |
この3つのカテゴリに、構築するシステムのさまざまな処理を当てはめていきます。例えば、事例の物流システムでいえば、『出庫処理』や『入庫処理』といった主要な処理はカテゴリ1に当たります。『マスタメンテナンス』『各種帳票発行』などは、基本的にメニュー画面がなくても処理が可能(帳票は種類によってメニュー画面が必要なものもあります)なので、カテゴリ2に当たります。『棚卸し処理』は、ほかの多くの企業と同様、この場合も月末と仮定すると、11月30日に運用開始となるため、カテゴリ3『不可欠でない処理』に入ることになります。
3つのカテゴリを時間軸に沿って整理したのが以下の図1です。こうすると、設計・開発の優先順位が一目瞭然です。また、カテゴリ分けを検討する際、各処理機能の内容を再確認することになります。そのため、カテゴリ3に分類した「棚卸し処理」なら「11月30日には使える状態になっていなければいけない」など、各カテゴリ内での優先順位も整理することができます。
いかがでしょう。こうしてみると、当初は無理と思われた「3カ月」という開発期間も、何とかクリアできる可能性が見えてきたのではないでしょうか。なお、カテゴリ分けの際は、カテゴリ2を意識して整理することがポイントです。ここで、カテゴリ2に分類すべき処理機能の基本パターンを整理しておきましょう。
例えば、1日の作業確認に使う現場帳票など。1日の作業量が少なければミスも発生しないため、使われない日もある。
例えば、コマンドプロンプトで「20090720」といったように日付データを入れてENTERキーを押すことで実行できるなど、専用の入力画面が必ずしも必要でない処理機能。
例えば、日付を数値で手入力するのか、あるいはリストボックスなどから選択するのか決め切れない、といった画面。そうした場合、その画面を使う処理機能については、カテゴリ3に回すケースが多いです。
Copyright © ITmedia, Inc. All Rights Reserved.