退職直前に福利厚生の人気マッサージを予約したくて、社内予約状況を監視するバッチを作った話

  退職が決まり、最終出社日を2月1日と決めた少し後の話。僕には最終出社日にたった一つだけ絶対にやっておきたいことがあった。それは、社内リフィール(マッサージ)を受けることである。

大人気の福利厚生マッサージ

 前職は結構大きい会社だったので福利厚生もしっかりしていて、月2回まで無料でマッサージを受けることができた。マッサージ師の中でも『Fさん』の技術は飛び抜けていて、僕は心酔していた。Fさんは、体を軽く撫でただけで凝っているところがわかるだけでなく、僕がラグビーをやっていたことや朝から胃の調子が悪いことなどをズバっと当てる魔術師のようなマッサージ師だった。

事の発端

 そんなFさんのマッサージを、退職日にどうしても受けておきたかった僕。しかし、Fさんの枠はあまりの人気のために予約開始5分で埋まってしまう。受けたいのは山々だが、いつ更新されるかわからない予約システムを見張るのもめんどくさいなぁ、なんて考えながら当時隣の席にいた先輩Oさんと雑談していた時、突如僕の心に火がついた。
Oさん、僕もうすぐ退職じゃないですか?
Oさん
はい、そうですね。
僕、退職前にどうしてもFさんのマッサージ受けたいんですよね。
Oさん
あ〜なるほど。
できれば退職日に60分受けたいんですよね。
Oさん
それはハードルが高いですねぇ。
そうなんですよ。かと言って、朝からブラウザに張りついて監視するのも嫌じゃないですか。
Oさん
ふむふむ。
なんかいい方法ないですかねえ・・・?
Oさん
Seleniumで監視すればいいんじゃないですか?

「Seleniumで監視すればいいんじゃないですか?」

 この言葉で、僕の中でポチリと何かのスイッチが入った。
 Seleniumというのは、ざっくり言うとWebページの自動テストツール。ブラウザを立ち上げたり入力欄に文字を打ったりボタンを押したり、といったテストを自動的に行うことができる。
 予約システムはWebだったので、確かにやろうと思えばできそうな気はした。Selenium をいじるのも初めてだったが、キャッチアップしてでもやる価値は十二分にあると判断。不敵に笑うOさんを横目に見ながら、Fさんのマッサージ予約公開情報監視バッチ『Fバッチ』を作成することにした。
 とは言え、あまり時間はかけられない。退職直前ということもあって、本業の忙しさが半端じゃなかった。なので、2時間以内に作ることに決めて、ガリガリと書き始めた。

作成開始

 ページ監視に必要な動きは4つだった。
① ログイン
② 次の週へボタンを押下(1週間前から予約可能なので)
③ 退職日の 2/1(金)のスケジュールにFさんがいることを確認
④ 自分のGmailに通知
 ④の部分はメール通知じゃなくて予約のところまで自動化しちゃえばいいんじゃないの?とも思ったが、スケジュールが固定ではないのと、さすがにそこまで自動化するとバグった時にちょっと怖かったのでやめることにした。メール通知でも十分要件は満たせる。
 今ならPythonかRubyで書くのだが、当時の僕はJavaで書くのが一番慣れていて速かった(むしろJavaくらいしかちゃんと書けなかった)ので、Javaバッチで実装することにした。seleniumの実装自体はそんなに詰まることもなく書けて、一応2時間ちょっとで形になった。

そして当日・・・

 当日は、朝10時に出社した。一応テストではちゃんと通知されることを確認していたが、本番では何が起こるかわからないのがシステムの常。どうなることかとドキドキしながら通知を待った。

30分経過・・・

 来ない・・・。いつもはだいたい10時半くらいに更新されるのだが、どうやら手動で日程をアップデートしてるらしくいつ更新されるかわからないらしい。もうしばらく様子を伺うことに。

40分経過・・・

 まだ来ない・・・。若干の不安を感じ始めた僕。普通に予約ページ確認すればいいじゃん、というのはもっともな意見だが、それはなんだか負けた感があるのでできなかった。

50分経過・・・ついに!

 もはや気になりすぎて逆に仕事が手につかなくなってきた頃・・・。
ついに来た!僕のGmailに『Fさんあり!今すぐアクセス!』というプログラムどおりのメールが来たのだった!
速攻ログインして60分コースを予約。この時の達成感はかなりのもので、正直震えた。その日は朝からやり遂げた感いっぱいで、退職前の仕事の整理を気持ちよく行うことができた。

当時を振り返ると・・・

 退職当日は、最後にとても気持ちよくマッサージを受けることができた。最終出社日だということをFさんに告げた時「それでは、一層心を込めて揉ませていただきますね」という言葉をもらったのは忘れられない思い出となり、プログラムが書けるようになってよかったなとしみじみ感じることができた。

 こういう普段の仕事以外で、ちょっとした不便を少しずつ改善していくのはメリットも大きく勉強になる。今やるならChromeプラグインで実装してみたいと思うが、当時もSeleniumをいじるきっかけになったし、その後の本業の経験にも活きている。
 ちなみに予約を成し遂げた時、一つ気になることがあった。メール通知後、僕が速攻で予約した時すでに他に予約してる人がいたことだ。プログラム上、更新からログインまでのタイムラグは1分以内だったはずなので、もしかしたら他にも同じようなことをやっていた人がいたのかもしれない、などと無駄に想像を膨らませていたのだった。

著者のKonishi Yusukeさんにメッセージを送る

メッセージを送る

著者の方だけが読めます

みんなの読んで良かった!

STORYS.JPは、人生のヒントが得られる ライフストーリー共有プラットホームです。