見出し画像

指す順システムを触った話

 ちょうど区切りということもあり、今年を振り替える中でこれは書いておきたいと思いました。私の視点ですが指す順の裏話的なことです。

指す順?

 指す将順位戦。いまだに、というよりは関わるほどに客観視しにくくなることもあって、どう説明するべきか結構難しいと感じます。
 Twitter(𝕏)上でのコミュニケーションと将棋倶楽部24での対局を紐づけて開催されている将棋のオンライン棋戦。プロの順位戦に倣って、参加者は棋力で分けられたリーグの中で全11局を戦います。2週間に1回のペースなので約半年かかる長期のイベント。それだけに自分の勝敗に一喜一憂するし、対戦相手や他の参加者についても気になってきます。

 私の初参加は2021年の第6期でした。当時はコロナ禍に会社を辞めてリモート業務という思い切った選択をした頃で、田舎への引越しも検討していました。時間はあるのにリアルで何かをやりにくいという状況で、しっかり将棋を指せる場を求めて参加しました。他の参加者とのオンラインの交流もあり、しっかりハマってしまいました。2022年の第7期、2023年の第8期と、プレーヤーとしては3年連続で参加しています。

システム担当として運営に参画

 去年の12月、自分にとって2期目の戦いを終えたところでした。運営アカウントからのアナウンスで運営メンバーを募集しているのを目にしました。システム担当と一般の運営担当の両方を募集とのこと。
 運営メンバーはサイト上で公開されていなかったので、わりと謎に包まれた存在でした。私が他人の動向に疎いというのはありますが、2年参加しても具体的に運営メンバーとわかる人は数人で、なんとなく初参加当初のイメージより少人数っぽいなと感じていました。
 不特定多数が参加する趣味イベントを運営し維持していくことの大変さをぼんやりと想像しながら、この棋戦が今後もずっと続いてほしいなと思い、システム面での支援が可能ですと運営アカウントに連絡しました。

 もともと指す順システムについては興味を持っていて、これを毎回更新するのはわりと手がかかっているだろうなと思っていました。アクティーさんが何やら頑張っておられるらしいことはツイートから察していましたが、頑張らないといけない状態なんだなーと見ていました。
 私は別に運営をやりたいわけではなくて、参加者として楽しむために運営体制が維持されてほしいというのが本音です。自分が関わっておけばシステム面の負担が理由で継続できないような事態が避けられるだろうと考えたまでです。
 なのでシステム担当も基本は別の人にお任せしておいて、何かのときには自分が対応できますよ的なポジションが理想だったりします。自分が運営に声をかけた後もシステム担当の募集を締めないようにしていただいた経緯がありました。
 結果的にはシステム担当は私1名の新規参加で、アクティーさんなっきゅんさんからいろいろ教えていただくことになりました。

指す順システムはどうなってるの?

 さて、指す順システムというのは、参加者であれば皆さん使っていると思いますが、意外とちゃんとしたWebアプリケーションになっています。

 正直なところ、システム担当として参加する前はもっと泥臭い手作業で成り立っているイメージでした。Excelで管理してHTMLを編集してアップロードみたいな。
 もしかしたら初期はそういう感じだったのかもしれませんが、過去のページを見ると第2期からGoogleカレンダーが導入され、第4期からアクティーさんお手製の現行システムに移行したことが見て取れます。表彰ページが作られたのは第6期からのようです。
 現行の指す順システムは、参加者の情報と対局予定や対局結果をデータベース(PostgreSQL)に保持し、Pythonでアプリケーションが動いています。Flaskという軽量フレームワークで作られているのですが、たまたま私自身がFlaskを使ったことがあったため把握しやすくて助かりました。癖の強いCMSなどでなくて良かったとほっとしました。

 過去のことはよく知りませんが、基本はアクティーさんがゼロから作り上げたシステムというふうに理解していて、これはたいへんな功績だと思います。見れば相当に工数をかけて作ってくれたことがわかるので、感謝しかありません。
 また主になっきゅんさんのほうでプラットフォームの移行などをされて、おかげで現状はなんとか無料でシステムを維持できています。なっきゅんさんからはシステム担当の役割や現行システムについて教えていただきましたが、運営チームでの縁の下の力持ちといった印象で、たいへんお世話になっています。

私がやったこと(機能追加)

 念のため断っておきますと、私はITを仕事にしている立場なので、通常はボランティアでシステムの面倒を見ることはありません。本件は指す順という私自身の趣味と恩返しのために、自分の負担にならない範囲でやっていることです。

 もともとシステムができていたとはいえ、私のほうでも少し機能追加をしました。とにかく棋戦を維持してほしいというのが私の願いなので、システム周りの作業負荷を減らす、つまり手作業でやっていた部分を自動化するという方針で取り組みました。

  1. 過去の参加者名簿の作成
    ……Webページの表からデータ化(※参加資格に関わるので)

  2. 参加者登録フローのシステム化
    ……参加申込→運営が確認して仮登録→リーグ分けも含めた本登録

  3. クラス分け検討のための補助機能
    ……24レートを取得して出力

  4. 表彰ページのDB連携
    ……DBを参照してページを自動生成

 上記の中では2.のところが大きな改修・複雑な処理になっていて、いくつかバグもあって実運用中に修正したりもしました。1~3は開幕前のことなので、棋戦の開催期間中はあまりシステム関係のことをしていません。4だけプレーオフ期間に作りました。かなり手作業を減らすことができたんじゃないかなと思います。
 私が書いたコードは全てなっきゅんさんのほうでしっかりレビューしていただきました。なっきゅんさんのほうでもサービス実行方式の検討、依存系のバージョンアップ、対局組み合わせ作成処理の改修、各種ページの更新などいろいろとメンテナンス対応していただいています。
 また、デプロイ時のトラブルや認証関係でのトラブルもあり、なっきゅんさんとともに悩んだりしました。(結果的には放置していたり)

今後について

 先日、今期の運営メンバーが公式に紹介されました。裏方のつもりで特にアピールしないメンバーが多いかもしれませんが、参加者からすると知りたいことですよねと思います。

 個人的には、必要な部分は自動化できたというか、わりとやりきった感があります。システム管理が必要なくなるわけではないのですが。

 私がITを志して勉強していた頃によく思ったのが、他人が書いて実際に使われているコードを学びたいということでした。今ならコーディング中にCopilotがコードを示してくれたりもしますが……Webで参照できるコードは「実際に使われている」という実感というか現場感が乏しかったりします。
 何の話かというと、この「指す順システム」というものは、まさしく実用のためのものであり、実用のITを学びたい人には良い教材になりますよということ。
 いま運営チームからシステム担当の募集が出ているわけではありませんが、私としては指す順システムを触れる人が多いほうが棋戦の継続には有利だと思っているので、興味ある人はぜひ声をかけていただきたいです。

 私は仕事が忙しくなっていることもあって、来年は指す順について参加者としても運営側としてもゆるくやりたいと思っています。気張らず継続するつもりです。
 引き続き、どうぞよろしくお願いいたします。

この記事が気に入ったらサポートをしてみませんか?