「日経オープンシステム 6月15日号」
最新開発手法「XP」でECサイトを構築
ユーザー事例●松井証券のネット為替取引システム
松井証券は2001年4月、外国為替取引システム「NetFx」を稼動させた。
「XP」と呼ぶ最新の開発手法を取り入れ、初期段階から結合テストを繰り返し行う、 などを実践した。2人1組でコードを書く「ペア・プログラミング」などは取り
入れなかったが、プログラム品質向上などに効果があった。

松井証券は2001年4月、インターネット外国為替取引システム「NetFx」を稼動させた。 既存のインターネット株取引システム「NetStock」を拡張し、
新たに通貨の取引もWWW上で行えるようにした。
構築を担当したのは、NetStockの構築も担当したインテグレータのファイテック(写真1)。 日本と米国の開発チームを連携して構築に当たった。
NetFxの開発には「XP」(エクストリーム・プログラミング)と呼ぶ最新の開発手法を取り入れた。XPとは、Kent Beck氏らが提唱しているソフトウエアの新たな開発方法論。スパイラル型の開発手法を推し進めて、短いサイクルで、設計、コー
ディングとテストを継続的に繰り返す。これにより、仕様変更にも柔軟に対応しながら短期間で完成度の高いプログラムの開発を目指す(図1)。

図1●エクストリーム・プログラミングの概要
最初から結合テストを実施
開発は、XPの手法に基づき初期段階からテストを並行して行った。「システム全体のビルド(モジュールをコンパイルして結合した実行プログラム)を最初から作っておき、そのビルドに、開発したファイルを追加していった」(米Fitech
Laboratories Consultant and Project Manager Warlu Kothapalli氏)。最低で も1週間に1回、ビルドを作ってテストを行い、進捗状況を確認した。
もちろん単体テストも徹底した。「米国チームの仕事の進め方で感心したのは、 プログラム・モジュールをリリースする際に、同時にそのモジュールをテストするツールもリリースしてくる点だった」(開発本部第一開発担当シニアマネジャー松原忠氏)。テストは、ツールによって可能な限り自動化し、効率を高めた。
外部システムとの結合部分は簡単な外部システムのシミュレータを作ってテストを実施した。例えば、提携するオーストラリアの銀行との連携部分はシミュレータを用意して検証した。
また開発担当者とは別にテスト・チームを作り、開発の早い段階からプロジェクトに参加させたことも、システム構築上のポイントである。テスト・チームはシステムのビジネス・ロジックに詳しいメンバー、ユーザーとのコミュニケーション窓口のメンバーで構成した。テスト・チームにはコーディングに一切タッチさせず、テストに専念させた。ユーザーである松井証券も、システムが7割がた完成した時点で、テストに参画した。
ドキュメントは簡素化し、しかも重要な個所だけをドキュメント化した。作成したドキュメントは、システム概要、サブシステム概要とメッセージ・フロー、
データベース項目の説明書などである。「プログラムについては簡単な機能説明書だけにとどめ、プログラムの細かいところまではドキュメント化しない。その代わり、他人が見ても分かりやすいプログラム作りを目指した」(Kothapalli氏)
「品質を向上できた」と評価
XPの手法の一つに2人1組で1つのコードを書くペア・プログラミングがあるが、今回は採用しなかった。「ペア・プログラミングは理想的だが、工数とコス
トが倍になってしまう。また開発者間で意見が対立してしまい、仕事が進まなくなるなどの懸念があった」(Kothapalli氏)
ファイテックは、XPの効果を「高品質のシステムを少人数で開発できた」(同氏)と語る。「開発とテストを並行して進めるため、常にシステムの品質を把握できる。また早い段階でテスト・チームを参加させ、しかもユーザー検証もしっ
かり行ったため、最後に大きな仕様ミスが発覚するような事態も避けられた」 (同氏)と評価している。
役割を分担して日米で合作
「NetFX」の開発では、日本と米国の開発チームが共同で作業を進めたこともユニークな点である。ファイテックの米国子会社Fitech LaboratorieのWarlu
Kothapalli氏ら3人が、JavaによるWWWシステム開発のノウハウを生かし、ユーザーとの取引を行うフロント・システムを担当した。
一方、日本の証券システムの仕組みなどの知識が要求されるバックオフィス・ システムは、日本のファイテックの6人が担当した。日米に分かれていても、電子メールなどを使ったコミュニケーションに問題はなかったという。また、米国に拠点があることで、XPなどの最新手法が導入しやすかったという面もある。
システムは、NetStock同様、Webアプリケーション・サーバー「WebLogic Server」上にJavaで開発した。パフォーマンスを重視し、EJB(Enterprise
JavaBeans)ではなくJavaサーブレットを採用した。
|
|