A-Formの初版開発者が最新版 (4.0.2) に触れてたまげた!
この記事は A-Form Advent Calendar 2019 参加記事です。
株式会社アークウェブさん開発・提供・販売のMovable Type(以下、MTと表記)プラグイン「A-Form」。多機能フォームをMT上で簡単に作成できるプラグインとして有名なプラグインです。
私、進地は実はその昔アークウェブに所属しておりまして、「A-Form」の初版の製品開発(PMとSE・PG、テスト)を担当しておりました。「A-Form」はリリース直後からGigazineさんなどで紹介され、好評価を得たプロダクトで、私も思い入れのある製品です。
その「A-Form」がMT7にも対応して、最新版はもう4.0.2ということで、そのことだけでも隔世の感があります。今回、アークウェブさんのご好意で4.0.2を触らせていただく機会がありましたので、初版開発者の視点から「A-Form」最新版の所感をつらつらと書いてみます。
機能強化にたまげた!
「A-Form」初版に比べると大幅に強化されている機能に驚きました(とはいえ、初版にどの機能があったかといった記憶はもうあやふやなのですが(汗))。
以下、素敵だと思った機能を列記してみます。
・フォームのコンバージョン率が表示される
・フォームの受付期間(開始/終了日の予約)が指定できるようになっている
・メールに受付番号 が入れられるようになっている
・フォームの受付データのステータスを管理できるステータス管理なるものがある
・使用言語に英語を選べる
・メールアドレス項目にて確認用にアドレスを二回入力させるモードがある
・郵便番号項目の入力と連動した住所入力補完機能がある
・都道府県項目で選択肢の追加削除ができる(海外などの選択肢が時に必要であることを考えるとこれは重要)
・見出し項目やチェックボックスなどをラジオボタンなどの選択に連動して表示分けできる
・カレンダー項目で初期値、選択可能範囲、選択除外日のきめ細かい設定ができる
・外部パラメータを受け取れる項目がある
・入力チェックの実行タイミングを項目入力都度チェックと確認ボタン押下時チェックから選べる
・スパム対策が充実している(Google reCaptcha対応、禁止ワード、禁止IPの設定)
ここまで作り込めば、そりゃ売れなきゃおかしいと思いましたよ。
デザイン、UIも初版に比べると圧倒的におしゃれになっていてちゃんと「製品」になっているなと感じました。
時折のぞく進地節
最新版に初版のコードがどの程度残っているのかわからないのですが、時折現れる進地っぽさというか、進地節(ワーディング)が炸裂していて赤面。
例えば、
・[[aformXXX]] という埋め込み記号のパターン
・__%parameter%__ というパラメータ埋め込み記号のパターン
・ 「フォームの状態を「無効(公開予約等の設定に関わらず非公開)」にする。」といった括弧多用の言葉遣い
あぁ、昔から文章スタイル変わってないのね、私。。。
初版の開発秘話的な話
「A-Form」はフォームを生成・管理する製品ですので、個人情報を扱う可能性が非常に高いことは意識していました。したがって、開発時に特に留意したのはセキュリティでした。当時、Parosという脆弱性検査(ペネトレーションテスト)が行えるツールを使って、「A-Form」で生成したフォームを徹底的にテストしました。
また、プラグインとはいえ、一度インストールした後のバージョンアップはそれなりに工数がかかるものです。そのため、バグフィックスでバージョンアップといった事態をなるべく避けるため、品質(QA)にもこだわった記憶があります。
特にMTの権限設定周りとの連動テストはセキュリティホールにもなりかねないため、細かなテストケースを洗い出し徹底的にテストしていました。
自分自身が作成した、膨大なテストケースをコードを変える度に通していました。手動で。手動で(大事なことなので2度言いました)。当時はまだまだ技術力が至らずリグレッションテストを自動化するに至っていなかったのです。はっきり言ってかなりの苦痛で、「ま、今回はテストしなくていいでしょ」、「ここまで細かいチェックはしなくていいでしょ」という誘惑に何度も心を持っていかれそうになりながら地道にテストしていました。
当時、上司に「もう、リリースしてもいいよね?」と何度か聞かれて、その度に「いえ、まだテストが終わっていません。リリースは待ってください」と抵抗したことをうっすら覚えています。
とにかく、相当数のテストケースを作成して通した記憶があり、私が退職した後に引きついだ人は大変だったと思います。新手のいじめと思ったかもしれません。
しかし、こうした徹底的なテストによって品質とセキュリティに関して自信を持って世に送り出すことができました。
今もつながる社会貢献の意思
アークウェブさんは「A-Form」のライセンスを現在も非営利団体に対して無償で提供しています。これは初版からそうで、開発中からそうすることは決めていました。
実際のところ、進地が「A-Form」の開発にのめりこめたのはここが大きかったです。つまり、アークウェブのCSR活動の一つとして開発プロジェクトを位置付けていたので、モチベーションがグイグイドライブされましたし、先述の通り品質、セキュリティにも強いこだわりをもって取り組めたのです。
恥ずかしいけど言い切ると、
当時、「世の中に貢献するんだ」と本気で思って開発したのが「A-Form」です。
ですから、今でも非営利団体に無償提供されていることはとても嬉しいですし、誇らしいことなのです。
実際、私は現在、非営利団体の戦略コンサルティング会社で働いていているのですが、クライアントの非営利団体にて「A-Form」は度々使われています。
「世の中に結構貢献できているんじゃないかな?」
そう思っています。
※ もちろん「A-Form」をここまで発展させたのは初版リリース以降メンテし続けたアークウェブの皆さんです。進地がやったことは最初の一助に過ぎません。
今後への期待
今後、次のようなことが実装されるともっと素敵だなぁとか無責任に夢想します。
・正規表現で任意のバリデーションを設定できるフォーム項目
・SalesforceやKintoneなどのSFAクラウドにフォームの入力項目をポストする機能
・SFAのデータを取り出せるMTタグやフォーム項目
・Ajaxを使った確認画面からの画面遷移なしのポスト機能
・Wordpressへの移植(大変なのは想像しています)
また、非営利団体向けに無償提供を続けることも素晴らしいのですが、たとえ有償になってもコストに見合うファンドレイジング効果を非営利団体に提供できる機能を実装することも素敵だと思います。例えば、SFAに登録されている寄付者情報を読み取って高額寄付者のアクセス時には特別なメッセージをフォームに表示するとか、フォームのメール通知先(窓口)を変えるとか。
色々期待しちゃいます。
そんな無茶振りをして締めたいと思います。アークウェブの皆さま、このたびはこのような機会をいただきありがとうございました〜。今後ともよろしくお願いいたします!!
Appendix(おまけ)
「A-Form」の管理画面をフラフラっと触って評価していたら気づきました。
ドキュメントの充実ぶりがすごい。一番ぶったまげました。
万の機能よりも価値があると思います。