学生アルバイトの効果を引き出す
「学生アルバイトを戦力として活用できたことも,コストを抑える上で大きかった」(山下氏)。もともとオイシックスは学生ベンチャー企業を母体としていることもあり,学生を集めるルートは太い。しかし「優秀でも,業務システムの経験のない学生は,処理は速いがバグの発生しやすいプログラムを書いたりする」(山下氏)。以前そのために苦労した経験もあった。
そのため,まず,山下氏がフレームワークを整備して,プログラムにばらつきが出ないようにした。フレームワークは,米Sun Microsystemsが公開しているJavaのガイドであるBlueprints中のサンプル・アプリケーションPet Storeを単純化して,山下氏が作成した。
アルバイトも,いきなり実戦に投入するのではなく,まず,例題を与えて選抜した。その後,教育してから実際の開発に当たらせた。
XDocletでEJBを自動生成
図3●XDocletによるEJBの自動生成 XDocletは,コメントに設定情報を埋め込んだJavaBeansのソースコードから,Enterprise JavaBeans(EJB)およびEJBに必要な付随クラスと設定ファイルを自動生成する。オープンソース・ソフトウエアとして配布されている |
EJBを使用するためには,ホーム・インタフェース,リモート・インタフェースといった付随するクラスや,デプロイメント・ディスクリプタといった設定ファイルを作成する必要があり,煩雑である。
Javaの統合開発環境の中には,このようなEJB関連ファイルを生成する機能を持つものもあるが,オイシックスでは,ここでもオープンソース・ソフトウエアを活用した。XDocletと呼ぶツールである。
XDocletは,JavaBeanのソースコードをEJBに変換するとともに,設定ファイルを自動生成するJavaプログラムである。EJBを作成するために必要な情報は,JavaBeanのソースコードのコメント部分に埋め込んでおく(図3[拡大表示])。
Javaのビルド自動化ツールであるAntと組み合わせることで,コンパイル,XDocletによるEJBと関連クラスおよびファイル生成,アーカイブ化という一連の作業を一度に行うことができ,開発効率が向上した。
帳票の印刷にもオープンソース・ソフトウエアを利用した。iTextと呼ぶ,JavaのPDF生成ライブラリである。サーバー側で生成したPDFファイルをクライアントにダウンロードして印刷する仕組みだ。
すべて無償ソフトで開発したシステムだが,十分な性能の安定性が得られている。ただし,1000以上のレコードを更新または追加するような非常に長いEJBトランザクションを何度も実行すると,だんだん処理性能が落ちてくる,という現象に遭遇した。この現象は,週に2回,APサーバーを再起動することで回避した。
月次処理が2日からゼロへ
低コストで開発したシステムだが,その効果は大きい。「これまで,月次決算時原価計算などにまるまる2日かかっていた。システム化により自動計算できるようになり,業務量はほぼゼロになった」(山下氏)。
また,営業担当者からの出庫依頼が月100件以上あり,それらは全部Excelに入力してチェックしていた。これらも自動化することができ,多かった入力ミスもほとんどなくなった。
発注書も個別に作成して印字する必要があったが,数量を入力するだけで自動的に作成できるようになった。
5月末時点では,念のためExcelへの在庫入力も続けているが,まもなく廃止する予定である。「廃止できればパート人件費を2割程度削減できる」(山下氏)と見込んでいる。