イベント開催の破綻
ひさびさにやらかしてしまったのでその黒歴史を書き残すことにします。
というのも、運営しているサイト「ピクチャレ大会」でイベントの開催を公言したにもかかわらず、
開発の都合で開催時間になってから中止せざるを得なくなってしまいました。
イベントというのは過去18回開催している期間限定ランキングで
これは大規模改修が必要なこともあって毎度締切に追われるのが定例となっていましたが、
明確に破綻したのは初めてで、界隈の方々に迷惑をかけたという点で精神的にかなり打撃を受けました。
真冬なのに焦燥感で頭がほてって変な汗が出るあの感覚を久々に経験しました。
開発自体は開催1時間前に終わっていて、それ自体が間に合わなかったというわけではありません。
まあ1時間前というのはギリギリもいいところでそれもそれで問題がありましたが……。
イベント系はネタバレ防止のため開催直前に本番環境に反映することになっているのですが、
その直前のアップデートで本番環境特有の不具合でイベント開催が不可能になった、
というのがだいたいの顛末です。
ピクチャレ大会はコンテナベースで作られていて、開発環境と本番環境は原則同じように動きます。
なので本番環境にアップしてからの動作確認は必要無いという認識でしたが、
今回はその「環境を同一にするための技術」であるDockerコンテナそのものが破損しており、
開発の段階でコードがおかしくてもうまくエラーを吐いていませんでした。
エラーを見過ごしてきたコードを正常なコンテナである本番環境にアップしたため、
そこで初めてスルーしてきたエラーがわんさか出てきたというわけです。
コンテナが破損している予兆みたいなものは確かにありました。
今回の開発期間の少し前からNext.jsのホットリロードがうまく動かないことが多かったため、
Next.jsのサーバーを再起動したり、コンテナを再起動したりして対応していました。
結局根本的には解決しなかったものの、再読み込みすれば正常動作しているように見えたので
開発を優先して問題を先送りきたわけですが、それが種火となってしまったようです。
そもそもステージング環境(本番相当のテスト環境)を用意していれば回避できた問題で、
従来からテスト工程が杜撰だったことも原因として挙げられると思います。
1時間前に完成させたものをすぐ本番リリースなんて、仕事なら考えられません。
余裕を持って完成させられなかったのはいろいろな要因が重なってのことですが、
一番はやはりモチベ不足だったと思います。
猶予2週間で完全新規のシステムを作るというのはそれなりにハードルが高いのに、
それに対してなんとかしてやろうという熱意はほとんど無かった。
にもかかわらず開催を公言してしまったのは、
期間限定ランキングは2015年の初開催から毎年必ず1回は開催しているイベントにもかかわらず
今年はここまで一度も開催できていなかったので、
この機を逃すともうチャンスが無かったからです。
今回の破綻で心に刻まなければならないのは、
もう自分は締切ありきでタスクを先延ばしにしておいて、
夏休みの最終日のようなノリで溜まったタスクを無理やり乗り越える気力は無いということです。
イベントの開催においても、
そもそもシステムができていない段階で開催日を決めている時点で愚かだと言わざるを得ない。
いままではそれでも結果的になんとかなっていましたが、
移転により基盤システムが複雑になり必要とされるスキルも格段に高度になっている以上、
無謀な計画は頓挫するのが当たり前、破綻するのが当たり前だと思い知らなければなりません。
モチベ不足はピクチャレ大会開発だけに限らない人生全体の課題ですが、
タスクマネジメントについて調べてみると昨今の自分のコンセプトは概ね間違っていないようです。
ただ、締切に関しては改善する余地がありそう。
具体的にいうと、タスクはなるべく細分化するというのが現状のコンセプトですが、
締切も同様に細分化するというのが考えられる改善策になりそうです。
今回のように最終ゴールだけにゴールポストを設置するやり方は
タスクの習慣化や締切前時点のモチベーションに強く依存していることなど欠陥が多くあり、
それはミニゴールを適切に設置すればある程度解決することが期待できます。
ミニゴールの設置方法はこれから試行錯誤することになるでしょう。
習慣化を武器にするという観点で言えば、週サイクルに組み込むのが妥当のような気がする。
ピクチャレ大会で言うなら毎週決まった曜日に必ず1回はリリースを行うとか。
ただ、「開発作業」だけならそれで解決できても、イベント関連はまた違う問題があります。
単純な話、必死こいて準備作業をしたところで参加する人が居なければ意味がないわけです。
だからこそこれまでは参加人数を最大化できるようコミュニティにお伺いを立てて、
イベントの需要があることを確信してから準備をしてきました。
だからこそ今回のような事故が起きてしまったとも言えます。
とはいえコミュニティの声を聴けばなるべく早く実現したいと思うのが人間の性で、
そうしているかぎり十分な開発期間を得られる保証は永遠に得られません。
要望が出たらパパッと作れるくらい高いスキルがあればこういう悩みも無いわけですが、
今回の件で自分のプログラミングスキルの低さは改めて身に染みました。
これはピクチャレ大会運営そのものを危うくする非常にネガティブな問題です。
こういう問題を抱えてもなお長期運営ができているのは
ユーザーの理解があってこそと言うのは心に留めておくべきだと改めて思います。
これがもっと厳しいコミュニティだったら
とっくに辛辣なクレームが入ってモチベにトドメを刺されていたでしょう。