穴の空いたバケツがあったとしてそこに水を入れるとどうなるだろうか。答えは簡単で水はただ流れ落ちて溜まることことはない。そんなわかり切ったことをと思うかもしれないが実生活でも意図せず起きてしまいがちな問題である。わかりやすい例で言うと貯金なんかが当てはまるだろうか。穴のあいた、どれだけお金を注いでも、残らない。毎月、何年もかけて、自分で穴をあけたバケツに水を注ぎ続ける。穴というのはまあ無駄遣いであることが多いのかなと思う。対策は簡単で無駄遣いという穴を分析して塞げば良いというものである。ただこの穴はなぜ空いてるのかの分析は難しい場合がある。
学生時代にやっていたコンサートスタッフのアルバイトの話
毎週末になると大きめの体育館で有名なアーティストのコンサートの運営をやるというバイトだがこれは1回のコンサートで200~300名くらいのアルバイトを使う。この人を集めるのは専用の会社があってその方法は多くは学生に払う紹介料や広告媒体からの応募となる。残念なことに200~300人集めたアルバイトは大体が大学生がやっているのだが1回やったらやめていく人がほとんどである。個人的に思うのはまさにこれが穴の空いたバケツに水を入れてる状態なんじゃないかなと思う。コンサートのバイトは大体7:00くらいから始まって撤去があると26:00とかになる。これが一つ目の穴で長時間労働に耐えれない人が辞めていくだ。労働の中には単純作業をひたすらやる時間や怒号が飛び交うような撤去の時間、休憩場所は極寒の外であったりする。それぞれが一つの穴とも言えるし複数が合わさったことで辞める人もいるだろうから複合的な穴も存在する。苦労して見つけてきたアルバイトが次々といなくなってしまうという事象が起きる。コンサートは毎週のように行われてもアルバイトの定員というバケツには集めても集めてもその日はいっぱいになるが次のイベントの時には多くが穴から出ていってしまう。
それでも成り立つのは何故か
200人のアルバイトが1回のコンサートで辞めて次も全員新しい200人のアルバイトが来るかというとそういうわけではない。何故そんなことを言えるかというと私がこんなことを書けるのは何回もやってきたからである。バケツに穴が空いているという事実は変えられない。ただ採用した数と辞めていく人の流量をコントロールする術は実は存在する。あれ、なんか聞いたことあるなと思ったが有名なのはリーキーバケットアルゴリズムだ。これはネットワークの流量制御やnginxのレートリミットなどで採用されている。リーキーバケットアルゴリズムはwikiにリーキーバケットはネットワークに送信するトラフィックに対して、その転送レートを制御する。名前の通り、穴の開いたバケツに相当し、様々な流量の水流がそのバケツに流れ込むと、そこまでの流量がどうであっても小さな穴からは一定の水流が流れ出す。同様にリーキーバケット・アルゴリズムは様々なバースト性のトラフィックを一定のトラフィックに変換する機構を提供する。
と書かれている。
200人、300人ときたアルバイトを一定のレート以上の退職を出さないようにするという方法である。具体的な方法はアレだが飴みたいなポジションにつけることで成り立つようになっている。私は4年くらいやっていたがずっと一緒にやっていた人もいたしそういう風になっているのだと思う。
まとめ
穴の空いたバケツに水を入れている感覚って仕事していてもあったりするがそういう時に穴を探して埋めるのは大事。だが出ていく流量自体を絞れるようにするというのも大事なのかもしれないと思った。渋谷から六本木までほろ酔いで歩いてる途中で思いついた文章であってなんか深い意味はあんまない。多分。