ABC(*1)の2日目。共通テーマは私が開発している「Risouto」についてです。
手探りのオレオレフレームワーク
昨日のエントリでも述べたとおり、「自社でもフレームワークが欲しいね」という話はでたものの、どちらかというと与太話に属するレベルであった。言うなれば誰も期待していない、具体的なプランもロードマップもない、そんな状態。だからこそ、私が入り込む余地があった。
そんな話が出てからしばらくして、私は原型となるフレームワークを作り上げた。業務ではなくプライベートで。その名も「Most Elegant and Integrated Development framewOrk w/z Many classes for Optional Enhancement.」。 略してMEIDO/MOE。目指す方向をそのまま名前にしたのである(*2)。
このフレームワークを作るときに掲げたポリシーは
- PHPさえ理解できれば使えること
- シンプルであること
- 自社の資産を容易に流用できること
- 業務で関わったフレームワークとの類似性がないこと
- 拡張が容易であること
といったものであった。このうち1と2については、現在に至るまで一貫して守り続けているポリシーである(*3)。
このMEIDO/MOEであるが、これをそのまま当時在籍していた会社で使うことは最初から考えていなかった。あくまでも提案ベースであったのだ。とはいえ、全く無考慮では魅力もないだろうということで、3のポリシーを採用していた。
また、当然会社の資産としての活用を目指す以上、他社の権利を侵害してはならない。それはよく心得ていた。コードを見られても堂々と自社の資産と言えるようにするための4である。
5については、「提案ベース」として使うというのが念頭にあったのが大きい。だから、ガチガチに固めるのではなく、固めなくても不自由しない部分はどうにでもなるように作った。
さて、このMEIDO/MOEの出来はいかほどであったか。大方の予想通り、バギーでチープで、その目指す方向を実現できてるとは言いがたかった。だが、それで良かったのだ。なぜなら「提案ベース」だから。「あと少しで動く」、それが第一の目標なのだ。
「プライベート」の理由
なぜプライベートで開発したのか……という点についても触れておこう。
もちろん業務でそんなものを作る時間など与えられなかった……というのもあるが、それ以上に「コードの全ての権利が自分にあることが重要であったから」というのが最大の理由である。なぜか。答えはシンプルで、プライベートでも使いたかったから。
会社で開発すれば、その全ての権利は私個人ではなく会社に帰属する。いろいろ細かい点はあるにせよ、プライベートで開発したものは全て自分が自由に使える。例えその会社を離れようが。それ提案ベースとして使うだけのものであったから、提案した結果ダメでも何かは手元に残る。
大事なことだった。
社内プレゼンもどき
何はともあれ、このダメダメなオレオレフレームワークは「ある程度動く」状態でお披露目されることとなった。
その後いろいろとあり、私はMEIDO/MOEを社内に提案する機会を手に入れた。提案……といっても、ちゃんとしたものではなくて「こんなの作ってみたんですけど、どうっすか?」……といったレベルである。
詳細は諸事情により割愛するが、結果的には無事採用されることになった。
あえてのフルスクラッチで
紆余曲折を経て社内資産としての道を歩むことになったこのMEIDO/MOEであるが、実はMEIDO/MOEはここでその短い生涯を終えることとなった。
忘れてはいけない。MEIDO/MOEはバギーでチープなのである。
会社としてのニーズと相違のある部分もあった。未熟であるが故に改善すべき点もあった。時代の流れで新しく採用したいと思えるネタも出てきた。このままMEIDO/MOEをベースに品質を高めたものを採用すべきであろうか。その当時の私は、それがベストだとは思えなかった。最低限「使える」ものに生まれ変わらせるために、軸となる部分を作り直す必要性があったから。
そのため、フルスクラッチで作り直すことを決意した。今度は業務として。
「業務として」とはいうものの、開発自体は仕事の空き時間に進めざるをえない。ただ、何をすべきか、どうすべきかという点についてはかなり明確であったため、比較的短時間で新生MEIDO/MOEは誕生することとなった。
人生2回目のオレオレフレームワークの誕生
そう、この時点で人生2回目のオレオレフレームワークを作ることになった。結果だけ見れば、MEIDO/MOEと新生MEIDO/MOEは全くといっていいほど別物となった。
この新生MEIDO/MOE、仮にFOOBARとしよう。このFOOBARフレームワークは、その当時の課題を比較的うまく処理でき、またMEIDO/MOEの開発時に掲げたポリシーをある程度満たしていた。
お世辞にもベストとは言えない。だがベターではあった。
それからしばらくして、「会社の資産として」のオレオレフレームワーク、FOOBARは様々な案件で活用されることとなった。
だが、このフレームワークも長く使われることはなかった。なぜか。それはまた明日のお話。
*1:アドベント・ぼっち・カレンダーの意
*2:別に私はメイド好きではない
*3:実現できているかっていうのはまた別な話