DENXブログ

同志社大学 電気情報研究会(DENX)の活動や日常風景などを紹介します。

会則をGithubで管理するようにした話

こんにちは、DENX新4回生のベニオと申します。絶賛就活の闇に飲まれています。

なぜこの新歓時期に就活生がブログ記事を??と思われる方もいらっしゃるかと思いますが、今回は会則をGithubで管理するという前例のない試みに挑戦したので、そこに至った経緯も踏まえ、ちょこっとお話しさせて頂こうかと思います。

Githubに上げた会則はこちら。 github.com

これまでの会則

まず先に、これまでDENXの会則がどういった状況に置かれていたのかをサックリと説明しようと思います。 以下を読んでもらえれば分かると思いますが、会則とは??と首をかしげてしますような悲惨な状況でした...。

昨年度までの現状

現在、DENXでは入部する際に会則への同意が必要ということになっているのですが、実はその会則、どうやったら閲覧できるのかをほとんどの部員が知らないという惨状でした。 理由はいくつかあるのですが...

  • 会則についての引き継ぎ資料が一切存在しない
  • 会則の保管場所・閲覧方法を明示した資料が存在しない
  • 以上の状況が改善されず当代会長が独断で管理していたため、情報共有が疎かになっていた

要するに従うべき会則を保守するためのルールが存在しないというクリティカルな欠陥が原因でした。

頭を悩ます差分管理

ルールが無いなら作ればよいのでは?という思われる方も多いと思います。 昨年度の私も同じことを考え、ルールの策定に乗り出そうとしたこともありました。

が、敢え無く断念。 というのも会則と呼ぶほどの大規模な文書データですので「どこに保管されるか」だけではなく「いつ・誰が・どの箇所を・どのように変更したか」という"差分"の管理方法もキッチリと決める必要があるのですが、それにまつわる嫌な...事件が...ありました。

実は本会則、2016年度に大規模な改訂が行われたのですが、その際に『旧会則と新会則の違いを一つ一つ手作業で洗い出す一日がかりの大作業』や『総会の場で長々と行われる旧・新会則の読み比べ』など、差分を把握するために恐ろしいほど冗長な作業が行われ、心身ともに酷く消耗するという凄惨な事件が起こりました。

「会則を保守するためのルールを決める」ということはこの差分管理問題と正面から向き合わなくてはいけないということであり、当時会長職で手一杯だった私は静かに目を閉じることで心の平穏を保つことしか出来ませんでした。

あぁ...どこかに文書データの差分管理が捗るオンラインサービスは無いものか......。

Githubでの管理を決断

天啓でした。

f:id:denx:20180325135938p:plain:w300

↑当時のTwitterの様子。(念のため顔は隠しています)

Githubとは、(語弊を恐れずに言うと)普通はプログラムのソースコードなどのバージョン(ここで言う所の"差分")をオンライン上で管理できるサービスのことなのですが、これを利用すれば「いつ・誰が・どの箇所を・どのように変更したか」を「文書データの本体」と一緒に「オンラインのWebページ上」で管理することができる...という寸法です。

当該ページはこちらから。

ご覧頂ければ分かると思いますが、GithubはトップページがReadmeになっているので管理方法も一緒に載せています。これで別途引継ぎ資料を作成する必要もなくなります。URL一つで文書全体が閲覧できるページにアクセスできるので保管場所の問題も解決し、なにより全ての差分はコミット履歴として漏れなく保存されます。

なぜ今まで使っていなかったんだ? と言わざる負えないレベルですべての問題が一挙に解決してしまいました。万歳!!!

管理の体制

ということで、実際にGithubで会則を管理するにあたってどのような点を気にかけているかを少し説明します。若干技術寄りな内容も含まれますがご容赦ください。

Githubの権限回り

Githubリポジトリの管理権限はすべてその代の会長が持つということにして、masterブランチへのpush権限は当代会長のみが持ち、その他会員は気に食わない会則条文にプルリクを飛ばすという形になります。

皆が好き勝手に手を加えられる状態になると「アニメのBlu-rayを無制限に購入しても良い」なんていう条文をこっそり追加する人が現れるかもしれないので...。

文書のファイル

会則の文書ファイル形式は最初 C#スクリプト(.cs) でコメントゴリゴリにしようかと思いましたが、流石に見づら過ぎるということと、もっと章節構造を容易に実装できるものが好ましいということでMarkdown(.md)にしました。

また、過去にPDFで配布された旧会則の文書ファイルが取っ散らかっている事も気になっていたので、アーカイブページを用意し、すべての会則を本Githubリポジトリで閲覧できるようにしました。

...とろこで『会則』の英訳って『Regulation』で合ってるですか?教えて偉い人!!

README

オンラインに公開するという事で、サークル内外どちらの人が見ても堪えるレベルを目標として体裁を整えました。READMEのフォーマット自体は以下のようなページを参考にしながら作成しています。 qiita.com

また、現会員向けの管理方法もREADMEに記していますが、これは「別途引継ぎ資料などは作成しない(作成しても同じリポジトリ内で管理する)」という方針を取ることで必要な資料が分散することを防止するという目的があります。

あともう一つ最重要な点ですが、READMEのトップには『かわいいGIF』を配置して視覚的幸福度を上昇させています。最重要です。(大事な事なので2回言いました)

2018年3月25日現在は以下のような感じになってます。かわいい。

f:id:denx:20180325140108g:plain:w300

まとめ

長々と語りましたが、以上がDENX会則Github管理までの顛末とその中身になります。

今回の件は完全に私の思い付きなので、もしかしたら何かしら問題が発覚するかもしれません(そもそも現在の会則は常時外部に公開しても良いものなのか・・・?)が、何か不具合が発生したらその都度改善を加えていこうと思います。

ただそんなことよりも DENXはGithubで会則を公開してるぜ! なんてイケイケな台詞を言えるようになったのは非常に嬉しい限りです。これからもさらにイケイケな仕組みを構築していけるよう善処しようと思います。

以上、ベニオからのイケイケ報告でした。