トントカイモ Ver.2

テクノロジー系のアウトプット備忘録

集中予約システムについて

 たっちです。

 ホテル会社のIT部門でシステム企画とかアーキテクトとして働いています。定年が見えてきたので、自己の記録と次世代への引き継ぎのためにアウトプットしていこうと思っています。

 

 先日、25年近く稼働続けたシステムのサービス停止を迎えました。

 チェーンホテルをネットワークで繋いだオンラインのホテル予約システムです。

 私がIT部門に異動して最初に関わった大型案件で、システムの企画から要件定義、基本設計、使用技術選定、ユーザーとの調整から保守までずーっと関わり続けてきたシステムでした。

 当初のものから数倍の機能拡張を続けてきて、肥大化もしましたが、よくも今日まで使ってこれたと感心してしまいます。

 Windows NT4.0でカットオーバーを迎え、クライアントがWindows10、サーバーはWindows2003でひっぱり続けてきました。

 私のIT人生のほとんどを占めてきたこのプロジェクトを振り返りながら、ITプロジェクトで得てきた経験をアウトプットしてみようと思います。数回のシリーズになると思いますので、ぼちぼちやっていこうと思います。

 

 

序章 ~集中予約システムの着手にいたるまで~

 

私がホテルシステムに関わった経緯

 私は今の会社に入社したのは、軽井沢に新しくホテルを建てることになり、私が前職にいた会社が運営していたビジネスホテルの支配人が今の会社に転職しており、私はその方に誘われました。

 私は前の会社で今で言う『ひとり情シス』としてシステムやパソコンの導入に関わっていた関係で引き抜いてくれた感じです。

 当然ホテルの現場ですので、IT要員ではなくフロントスタッフとしての採用です。

 当時のホテルシステムはNEC製のホテルパッケージ(NEHOPS)とアドオンで開発された予約システムで稼働しており、私はあくまでいちフロントスタッフの立場でした。

 前の会社でホテルシステムの導入や導入後のカスタマイズなんかをやっていましたので、ホテルシステムの機能やホテルオペレーションは理解をしていましたので、あまり違和感なく、仕事はこなせていました。

 ホテルシステム内部を直接触ることは出来ませんでしたので、バックオフィス業務をLotus123とかで管理レポートなんかを作って対応していました。

 そんな仕事をしているのをみた当時の総支配人が次に建てる山中湖のホテル開業に私を名指しで呼んでくれました。役割の名前は『シフトコントローラー』で後にも先にも、私一人しか付いたことのない役職でした。ただ主な仕事は総支配人の下で予実管理、次年度のみ予算策定をしつつ、フロントのヘルプや人員計画とかなんでも屋な感じだったな。

 ただこのオープン時はシステムの納品が全然間に合っておらず、グランドオープン1ヶ月前の段階でシステムの完成度は30%ぐらいで、全然間に合いそうにありませんでした。

 というのも、軽井沢から一緒に異動してきた同僚から、私にシステムがかなりヤバい感じがすると相談があり、ホテルに詰めているSEさんを捕まえて詳しく話を聞いたところ、やっとソースが届いてデバッグが始まったところで、バグだらけで全然進んでいない。

 予約のレポートを出すと3つの数字がてんでバラバラで、実際の予約件数がまったく分からないというホントにヤバい状態でした。

 その状況をみて、慌てて総支配人にシステムのリカバリーに入ることの承諾を取りました。

 実は異動する際に、私にはフロントやコンピュータのことには手を出さず、総支配人の仕事を手伝ってくれと言われていたのですが、さすがにまともにオープンできないのはダメだろうと言うことで、許可を取ってしばらくシステムの稼働に注力を注ぐことになりました。

 

山中湖オープンまでの3週間

 まずは予約システムから。出力されるレポートがみんなバラバラの数字になるので、どれが正しいのか手拾いで集計。正しそうなものがわかれば、そのロジックから他のレポートの抽出条件を潰しにいけば、結果があってくるはず。

 ポイントはキャンセル待ちが残数に計算されているとかなので、ほぼ抽出条件とあたりを付けます。それでソースを読み込んでデバッグCOBOLなんざ専門学校で習った以来ですがまあ、なんとかなりました。NECのA-VXのCOBOLは初見でしたが見よう見まねでなんとかなります。

 そうやって予約数の精度が上がれば、予約はシステムを信用できるので、次のステップです。

 フロントシステムはもっとひどかった。納品されたソースをコンパイルするとエラーが山のように出てきて全く使い物にならない。

 とりあえず、チェックインとチェックアウトをできるようにして、正しい会計書を出すことだけを最優先に、日々のレポートはLotus123で集計できるようにしてオープンを迎えました。

 最終的にバグがなくなって落ち着いたのは、グランドオープンから2ヶ月が経っていました。

 その間、当時の情報システム部門の責任者が総支配人に呼び出され、その時に裏でデバッグを手伝っていた私のことが目に付いたそうで、その後に情報システム部門に引き抜かれた経緯となります。

 

 

ホテル現場で本当に必要な機能

 無事オープンできましたので、私は本来の業務に掛かります。

 ホテルシステムのレポートはどれも中途半端で使えないものが多く、NECのCOBOLをマスターしたりファイル構造を理解したので、ここからは独自にプログラム書いて本当に必要なレポート作成に着手しました。

 山中湖でまる2年勤務しましたが、その間に作ったプログラムは50本、レポートは10種ぐらいになります。私の作ったプログラムはそのまま横展開され公式のプログラムとしてメンテ対応されるようになりました。

 このとき作られたプログラムはその後の再構築プロジェクトで必要なレポートととして作られる事になったので、やって良かったとおもっています。当然、最新の仕様でも組み込まれています。

 

 

ネットビジネス参入とオンライン予約システムとフロントシステム

 1995年2月のある日、本部の部長(入社時の総支配人)から電話が掛かってきました。

 『○○くん、元気か?そろそろホテルの仕事も飽きてきたやろ、味噌かつの生活はどうや?』と。

 3月に新しく立ち上がる全社プロジェクトのメンバーとして入れる事になったから春から名古屋に来いという異動の話でした。

 世間ではWindows95でお祭り騒ぎをしていた頃、パソコン通信を使ったオンラインのホテル予約システムの構築プロジェクトでした。

 パソコン通信からその後、インターネットへと代わりましたが、当時としては画期的な取り組みでした。

 ネットといえば、28800bpsの電話回線のモデムでしたので、コンテンツはCDーROMで配布して、空室や予約申込みはオンラインで行うというハイブリッド方式で開発をすすめ、その後インターネットへと変わっていた仕組みです。

 その立ち上げに関わり、その後にそのシステムと連携するホテルシステムをスクラッチで開発者するための設計に関わることになりました。

 それまではオフコン一辺倒だった所から、PCサーバー(当時はWindowsNT3.51)はまだ不安定だという事でIBM RS6000 AIX(UNIXSybase、PCはWindowsNT3.51で開発言語はDelphiでした。

 オンライン予約はSQLWindowだったのですが、レスポンスに苦労していたため、開発ベンダーからの提案で変更しました。

 また、そもそも上位の予約システムの機能がミニマム過ぎて予約のコントロールは各拠点側のシステムでやらざるを得ないことから、あくまでOTAのひとつようなポジションだったのが、そもそもの間違いでした。

 

ホテルシステム開発

 ホテルシステム開発ベンダーはホテルシステムを全く知らない会社(重工系SI)でしたので、ホテルシステムコンサルを交えて要件を決めていく感じでした。

 どうにかこうにかオープンは出来て横展開もやりかけましたが、最終的に2つのホテルでやめになりました。

 致命的だったのは、レスポンスが非常に悪かった。画面の表示だけで2~3秒かかってました。

 チューニングで少し改善はしましたが、そもそもマシンパワーが足りてなかったので、私からマシンスペックアップをはじめとする進言し、RS6000は3ランクぐらい上げて、PCは当時Pentium133ぐらいだったものを直ぐに入荷できるGateway2000のPentiumPro200にグラボ追加してマシンスペックと画像処理速度の改善をしたらやっと仕えるレベルになりました。

 

ja.m.wikipedia.org

 

 SEさんはチューニングでと言い張りましたが、力業のほうが早くかつ確実に結果を出せる良い例でした。

 さすがにこのまま全ホテルへの展開は厳しいと判断し、別納方法を考える必要が出てきました。

 

 ここからが、(先日停止した)新しい予約システムの構築ストーリーとなります。

 長い前振りですが、これまでの経験と失敗が、あったからこそ、25年も使い続ける事のできたシステムだなと思う訳です。

 

 

教訓1 レスポンス低下は業務効率が極端に下がるので、要件にはコミットする。PGチューニングもありますが、物理的な性能向上はすぐに出来ることなので、とっととやってしまえ。

 

 次回に続きます。