give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

社内でVimコマンド古今東西ゲームをやってみた

はじめに

サクラエディタからVimに移行して、そろそろ半年ぐらいになります。
最近では覚えたVimコマンドもだいぶん増えてきて、Vimの便利さを改めて実感している今日この頃です。
サクラエディタに戻ることはたぶんもうないですね〜。


ところで、チーム内には他にもVimを使ってるメンバーがいるのですが、その人達と比べて自分のVimスキルはどれくらいなのかな〜と、ふと思いました。
Vimコマンドはかなり詰め込んで覚えたから、もしかして僕の方が上??なんて思ったりもしましたw


で、思いついたのがVimコマンド古今東西ゲームです。
これを思いついたのは結構前なのですが、先日チーム内ミーティングの時間が30分ぐらい余ったので、即興でこのゲームをやってみました。


今回のエントリではこのゲームをやってみたときの様子を紹介します。

ゲームの遊び方

用意するもの
  • プロジェクター付きの会議室
  • 大型のホワイトボード(プリントアウトできるタイプがベター)
  • 適当なソースコードを開いたVim(プロジェクターに映しておく)
  • Vimmer 5名〜10名
    • 今回参加したのは10名程度
    • Vimをほとんど知らないというメンバーはギャラリーに回ってもらう
手順とルール
  1. 適当に順番を決める。(座席順等)
  2. 書記を決める。(専任者を決めても良いし、みんなで交代しても良い)
  3. 一人ずつ順番にVimを操作し、自分が知っているコマンドをその場で実演する。
    • 例 「dwで単語が消せます!」「Aで行末からINSERTモード!」等々
  4. 書記はそのコマンドと簡単な説明をホワイトボードにメモする。
  5. 知っているコマンドがなくなった人はリタイアする。
  6. 最後まで残った人、つまりコマンドを一番良く知っている人が優勝!
  7. ホワイトボードに書いたコマンドはプリントアウトし、スペシャルチートシートとして参加者全員にプレゼントする。

やってみた感想

実際にやってみて、良かった点、面白かった点を挙げてみます。

  • 上級者がマニアックなテクニックを披露すると「お〜!知らんかった!!」と場が盛り上がった。
  • 「あ〜!それは俺が言おうと思ったのに!!」みたいな声が聞こえるのも楽しい。
  • 上級者は優越感にひたれる(かも?)。初心者は勉強になる。中級者はさらに努力が必要だと思うようになる。


一方、改善が必要な点もありました。

  • 30分ぐらいでは終わらず、まだまだ続きそうだった。結局時間切れとなり、優勝者は決まらなかった。リタイアする人も出なかった。
  • xやiといった超基本コマンドは予め除外しておいた方が時間の節約になると思った。
  • h/j/k/lやH/M/Lなど、「それが出るなら、これも出しとかなあかんやろ?」というようなコマンド群は1コマンドとして扱う方が良い。


改善点があったとはいえ、技術ネタをゲームにするのはなかなか面白かったです。
みんな結構盛り上がってました。
ちなみに僕のポジションは中級者ぐらいでした。
やはりVimを長年使っているメンバーは「うお〜、何それ?」と思うような応用コマンドを披露していました。


ちなみにホワイトボードをプリントアウトするとこんなイメージになります。(抜粋)
みんないっぱい挙げたのでホワイトボード2枚分ぐらいになりました。

古今東西ゲーム Version 2を考えるなら

もしもう一回開催するなら、こういうルールに変更した方がいいと思いました。

  • ポイント制にする。Vimコマンドを披露したら、参加者に評価してもらう。
  • 「へぇ〜!」と思わせたら一人につき1ポイント。「ふ〜ん」なら0ポイント。
  • 最後まで残った人が優勝ではなく、制限時間を決めてポイントを一番稼いだ人を優勝とする。
  • 「へぇ〜」と思わせることが重要なので、みんなが知っている基本コマンドよりも「知らなかった!でもめっちゃ便利やん!!」と思わせるようなコマンドをたくさん知っている人が有利になる。
  • 30分だと短いので、制限時間は1時間ぐらいあった方が良い。
  • 超基本コマンドを予めリストアップしておき、それらは最初から評価対象外としておく。
  • 上級者が多い場合は「一度に3コマンドずつ披露する」みたいな「縛り」を設けるとよいかも。
  • 優勝者には何か景品を用意しておく。
  • Vimコマンドだけではなく、シェルコマンドなどでも同じように古今東西ができるかも。

ゲームを面白くするためのアドバイス

このゲームは「自分が普段使っているコマンドを披露し合うこと」が目的なので、普段使ってもいないコマンドを事前に予習されてしまうと、面白みが半減します。
なので、「やるよ!」と言ってから開催までの期間はできるだけ短い方が望ましいです。できれば抜き打ちで開催しましょう。


また、あくまで遊びなのでルールを厳密に決めようとしなくても良いです。
みんなが同意すればその場のノリでどんどん変えていっても良いと思います。
実際、僕たちも最後の方は「みんながへぇ〜!って思うようなコマンド以外は不可!!」みたいな縛りを付けたりして楽しんでいました。

おわりに

技術スキルを向上する、というと一生懸命勉強しなければならないイメージがありますが、このようにゲーム的な要素をうまく取り込めれば、みんなで楽しくスキルアップできます。
みなさんも何か技術ネタで盛り上がれるゲームを考えてみてはいかがでしょうか?


もちろん、今回紹介したVimコマンド古今東西ゲームをやってみるのも全然アリです。
やってみた人はぜひ感想を聞かせてください!

あわせて読みたい

タイトル通り、僕がVimに乗り換えた時の勉強法を紹介したエントリです。
僕がサクラエディタからVimに乗り換えるまで - give IT a try


古今東西ゲームからヒントを得た(?)Twitterボットを作りました。
Vimコマンドを定期的に解説してくれるTwitterボットを作りました - give IT a try


FizzBuzz問題でプログラミングコンテストを開催してみたら・・・こうなりました。
FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try


第1回の反省点を活かして、もう一回プログラミングコンテストを開催してみました。
Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try
Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(後編) - give IT a try


コードレビューコンテストを開催したこともあります。
コードレビューコンテスト&LIVEリファクタリング - give IT a try