redmine.tokyo 第 19 回勉強会にまつわるエトセトラ

イベントから間が空いたので初投稿です。

2020.11.14 に redmine.tokyo 第 19 回勉強会 が開催されました。僕は「設計ドキュメント考 ~これからの Redmine が更なる進化を遂げるために~」というタイトルで LT をしました。ここは俗に言うチラ裏です。

今回、タイトルの通り…ってほどではないんですが、Redmine の設計思想を見える化できないかなあという思いでネタづくりしました。ここに至るまでの経緯は 前回のチラ裏 を参照ください。ある程度は言いたいことを決めていたので今回の発表スライドの初版はあっという間に書き上げることができた…ところまでは良かったのですが、「設計ドキュメントを書くことで何かしらの問題を本当に解決できるのか」と自分自身に問いかけたときに、なかなか納得できる解が導き出せなくて結構悩んでいました。そこで、改めて「設計をドキュメント化する目的ってなんだろうか」ってのを自分なりに考え直してみました。

皆さんだいたいお察しの通り僕はネットミームが大好きなオッサンなので、いきなり四次元殺法コンビの AA のヤツをパク…引用させていただきますが、『良い子の諸君!よく頭のおかしいライターやクリエイター気取りのバカが「誰もやらなかった事に挑戦する」とほざくが、大抵それは「先人が思いついたけどあえてやらなかった」ことだ』ってのがあって。これって、後からぽっと湧いてきた僕が(Redmine に限らないのですが)何らかの仕様にケチをつけて「ここはこうあるべき」だなんてエラソーに吹聴したものが、実は既に開発に取り組んでいる皆さんがとっくの昔に検討し尽して採用を見送ったものだった、ってのと性質的には同じものじゃないかなって思っています。そうなってしまうと僕の願いは叶わないですし、それを聞かされる側も何を今更ってウンザリさせられるしで lose-lose じゃないかなと。

じゃあ、そうならないようにするためには、現状に至った背景や理由を予め知っておけば良いんじゃないかな。背景や理由がわかっていれば、それを踏まえてのより良い提案ができるんじゃないかという期待が持てると考えました。そうなると「後から来た人たちが、先人たちが辿った道と同じ道を、迷わずに素早く辿れる仕組み」が必要となってくるはずだろう。それなら地図があればいいんじゃないの。ソフトウェア開発の世界において地図とみなせるものって設計ドキュメントに他ならないんじゃないの。と、このような考えに至って、ようやくそれなりに自分自身が納得できるような話になってきたと感じるようになりました。

その内容を発表スライドにフィードバックしたところ、当初予定していたボリュームの 1.5 倍くらいになってしまい…リハもやる気が起きずにぶっつけ本番で当日に臨んだので、エラい早口でまくしたててしまいました。まあライトニングなトークなんで許される…よね? …ホンマごめんなさい。

ちなみに、「積極的に変更したい」と「慎重にすべき」の対立構造はフィードバック前の時点からスライドに存在していました。今から振り返ってみると、思考を掘り下げる前から「慎重にすべきと考えるのは先人であろう」「後から来た人ほど積極的に変更したがるだろう」と、おぼろげながらそういう感覚を抱いていたのかもしれません。

そして、僕が設計ドキュメントを作るならデータベースから…ってのも最初から(ずいぶん昔から)考えていたことでした。ただ、目標も定めず漠然とドキュメント整理するのも自分自身が耐えられないなと思っていたので、こういった発表に紐づけるのがちょうどよいかなって、今回の犯行(?)に至りました。毎回のことですが、やらかした後で「なんでこんなことを表で宣言したんだろうか…」って猛省してるヤツです。直近のパッチ会までには、もう少し中身のある情報になるようにがんばりますので、お慈悲~。

…で、次のネタもあるのですが、なんだかんだ言って僕は、自分のエンジニアとしてのキャリアをデータベースから積み上げていったナマモノなので「データベースはシステムの土台となるものだ」「システムを生命体にたとえるなら、データベースに流れるデータは血液のようなものだ」「CRUD を俯瞰すればシステムの動きがだいたいわかる」などと供述するやべーやつです。つまりは、Redmine データベースの設計ドキュメントが仕上がるにつれて Redmine のことがだいたいわかるようになるんじゃないかと妄想していて。

で、「土台さえしっかりしていれば、上に乗っかってるものは何だっていいじゃん」「流れているデータの内容が同じなら、別のシステムを作ってもいいじゃん」とか、かなりの暴論を掲げてもいいんじゃないかとさえ思っています。Redmine のデータベース構造をそのままに、今時だったら GraphQL とかでしょうかね…そういった API を整備して、UI 側は API を呼び出すだけの薄いものにしちゃえばいいんじゃないかって。React とかがトレンドでしょうか、よくわかってないですが。クライアント PC 上で動かすなら Electron でも良さそうです。モバイルでも動かせるようにするなら PWA(Progressive Web Apps)とかも採用できるでしょうか。ま、どれでもいいんですけど、そうやることで現状の Redmine を残したままで、ガラッと作り変えることもできるんじゃないかという大それた野望を抱いてしまったわけなのです。

というわけで、先生の次回作は「大改造!? 劇的 Redmine」じゃないかな…多分、きっと、うん…(涙)

最後になりますが、redmine.tokyo スタッフの皆さん、他の登壇者・パネラーの皆さん、参加された皆さんへ、お疲れさまでした&ありがとうございました!!これからもいきなり何を言い出すかわからないやべーやつですが、生温かく白い目で遠巻きながら見守っていただけると幸いです。


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