去る2016年1月30日に、ロフトワークのシステムDiv主催のセミナー&ワークショップ CMS SUNDAY Vol.6 「権限・承認フロー選手権」が開催されました。CMSとは、Webサイトのコンテンツ(テキストや画像)を管理するシステムで、複数のメンバーによって管理されることが通常です。そのため、その書き込み/保存権限や公開権限などの「承認フロー」の仕組みが付加されます。
今回、Movable Type、WordPress、concrete5、NORENといったのCMSの権限と承認フローについてのセッションののち、実際の要件に沿った権限設計を考えてみるワーク(これが、権限・承認フロー選手権)も実施しました。主催のロフトワーク テクニカル・ディレクター川竹がレポートします。
イベントページ(外部サイト)
https://cmssunday.doorkeeper.jp/events/37220
CMS SUNDAY Facebookグループ
https://www.facebook.com/groups/692103727571070/
なぜ、CMSのにフォーカスしたイベントを開催したのか?
はじめに、イベントを主催した立場から、開催にいたった背景を整理してみます。
CMS導入の際、CMS選定の大きな要因の1つが権限と承認フローの機能となります。しかし、実際にはこんな事態が起きています。
- そもそも複雑な権限や承認フローが不要
- ほとんど権限がなくて「運用でカバー」するのが当然
- 権限設定があっても「更新者が管理者になりかわって」公開
そのため、“意味のある”CMSの権限の設計は、サイト設計と同等に議論させれる内容です。ただ、現状では、権限や承認フローを熟知し設計できる人も少なく、情報もほとんど出回っていません。そこで、
- 使用者の運用にあったCMSを選ぶには?
- 運用しやすい権限設定は?
- 権限や承認フローを設定するタイミングはいつ?
このような疑問を皆さんと一緒に考えることができればと思い企画しました。
国内のCMS有識者が揃い踏みした豪華セッション
当日、プロブラムは以下のように進行。トータル5時間にも及ぶ長丁場となりましたが、休憩をはさみつつ、終始和やかな雰囲気での実施となりました。
1)CMS別プレゼンセッション
- Movable Type 藤本壱さん
– WordPress 株式会社コミュニティコム 星野邦敏さん、吉田裕介さん
– concrete5 株式会社富士印刷 庄司早香 さん
– NOREN6 株式会社ロフトワーク 川竹敏晴
2)権限・承認フロー選手権
実はメンバーの選定にはそれなりに苦労がありました。CMSごとに、権限や承認フローを「熟知」している人は限られている上に、実際に、権限や承認フローを設定したWebサイトの構築事例を共有できる、となると更に絞り込まれます。
そこで、過去のCMS SUNDAYの参加者を当たり、最終的にイベントで登壇経験のある人に打診しました。結果として上記の錚々たる顔ぶれとなったわけです。改めて、ご協力ありがとうございます!
さて、前半のプレゼンセッションを振り返ってみます。スライドは公開されていますので、ここではおおまかな内容のサマリーを共有しておきます。
Movable Typeの権限・承認フロー
トップバッターは、Movable Typeのユーザ歴は10年以上で、これまでに多数のプラグインを開発している藤本さん。ブログ「The Blog of H.Fujimoto」でも、Movable Typeの情報を多く発信し、MT開発者から常に注目されています。セッションでは、数多くのプラグイン開発の経験を基に、「アクション」という概念を説明いただきました。
<トピック>
・アクション/権限/ロールでユーザに許可する動作を管理
・オブジェクト単位(記事、カテゴリーなど)の細かな権限設定はできない
・Movable Type自体の承認フロー機能はごくシンプル
・本格的な承認フローにはプラグインが必要
・WordPressの権限・承認フロー
WordPressの権限・承認フロー
WordPressの大きなイベントでスピーカー経験のあるお二人。株式会社コミュニティコムの吉田 裕介さんと星野 邦敏さんが登場。WordPressを用いたサイト制作やプラグイン開発だけでなく、コワーキングスペースも運営している多彩なお二人からは、多数のスタッフが更新するコワーキングスペースのWebサイト運営経験を基に、権限・承認フローに関する便利なプラグインの紹介がありました。
<トピック>
・基本的にロールでユーザに許可する動作を管理
・プラグインで権限のカスタマイズが可能
・公開している記事を更新したときのための承認フローをプラグインで追加可能
スライド:WordPressの権限・承認フロー
concrete5の権限・承認フロー
concrete5エバンジェリストである庄司早香さんは、CMSプロレス(レポート)で選手として参加したのをはじめ、concrete5の勉強会はもちろん、MT東京主催のCMS夏祭りでCMS座談会に登壇するなど幅ひろく活動。本セッションでは、権限の種類が豊富なconcrete5ならではの「効率のよい設定方法」を紹介いただきました。
<トピック>
・シンプルで簡単な権限モードと細く設定できる上級権限モードがある
・ページ単位だけでなく、ページの中の要素の単位にも権限が設定可能
・把握できなくなるので、ページタイプのデフォルト権限を設定するのがベター
・標準で一段階の承認ワークフローが利用可能
スライド:機能追加せずに使える!concrete5の権限とワークフローについて
NOREN6の権限・承認フロー
最後が、わたくし川竹の登場。社内ではテクニカル・ディレクターとして、Webサイト構築案件であれば、CMS導入を技術面からサポートする役割です。CMS好きが講じてこのCMS SUNDAYを主催するにいたったのですが(過去にはCMSコラムも!?)、今回は、弊社の案件でも「承認フローといえば、NOREN」と知られるNORENを、ロールプレイングゲームに例えて話してみました。
<トピックス>
・ユーザ=冒険者、権限=装備、ロール=ジョブ、グループ=ギルド、承認フロー=ボスを倒す
・NORENには、覚えきれないくらいの種類の権限が用意されていて詳細に設定可能
・NORENでは、標準で最大9段階の承認フローが利用でき、さらに稟議のような並列承認が設定可能
権限・承認フローをちゃんと設計しないと「痛い目にあう」!
正直、シンプルな権限しか設定できないと思っていたMovable TypeやWordPressも、プラグインによってかなりディープな設定ができることに驚きました。特にWordPressの「公開済みの記事の更新を承認フローに乗せてくれるプラグイン」を作った方には心から拍手を送りたいです。
もちろん、その機能を標準で備えているconcrete5やNOREN6もすごいのですが、運用する側にとって重要度が高くても「運用でカバー」されてしまい課題としてフィードバックされないことを、ちゃんと拾って解決した人がいることが嬉しいです。
また、どのCMSでも権限・承認フローをちゃんと設計しないと「痛い目にあう」と思いました。シンプルな設定になるMovable TypeやWordPressでは、カテゴリや記事など詳細な単位で設定できないことを考慮しないと、コンテンツ構造を変えないと実現できない権限設定がありえます。詳細で自由度の高い設定ができるconcrete5やNORENでは、延々と権限設定をし続けないといけない権限地獄に落ち入りやすいです。
極端な例ですが、製品が30件あり、ひとつの製品情報の下に特徴、機能、価格と3コンテンツずつ異なる権限を設定するとしたら90回は設定が必要になります。回避策もありますが、やはり初めに考えておかないといけません。このように。
製品A
+特徴 ← 営業部が更新
+機能 ← 開発部が更新
+価格 ← 経理部が更新
製品B
+特徴 ← 営業部が更新
+機能 ← 開発部が更新
+価格 ← 経理部が更新
と、CMS好きでそこそこ情報も集めている自分にとっても、新鮮な情報がたくさん。また、CMSに熟知しているメンバーの視点はまさにプロであり、こうして集めて共有することの楽しみを感じました。
後半は、参加型ワークである、権限・承認フロー選手権にチャレンジ!
ワークショップでは、案件で実際に出てきた要件をお題にして、個人もしくはチームで、権限設計を考えてもらいました。どんな設定をすればいいか、だいたい分かる強者もいれば、登壇者に質問しながら考える方々もいました。
お題
- 管理者が3名だけでサイトを運用する
- 社内には3名の管理者だけ。しかし、社外の外部寄稿者も記事を更新する
- ニュースのうち、お知らせ、製品情報に関係するニュースは、広報部が更新するIRに関係するニュースは、経理部が更新する
- トップページでメインビジュアルは広報部が、バナーは経営企画部が更新する
- 管理者が3名だけのチーム。更新した人【以外】しか公開できないようにしたい
→どのCMSで、どんな権限設定をしたら実現できるのか考えてみてください。
まるで試験問題みたいですが、実際に起こりやすいケースを想定していました。ここでは、ワークショップで印象に残った声を紹介します。
「間違いのない設計を考ると複雑になり過ぎた」
「プラグインやカスタマイズで実現可能な実装はあるが、運用に制約が出て悩ましい」
「お題の前提条件が厳密ではないため色々な解釈ができてしまい判断が難しい」
前提条件が厳密でないのは、クライアントからの要望はだいたい厳密でない言葉なので、あえてヒヤリングをしてもらう余地を作っていました。
ものすごく複雑になってしまったのも、すごくいい例だと思いました。権限を機能として考え過ぎるとガチガチに設計してしまい、どうしても「使いにくい」と言われてしまいます。慣れるまでは緩めのルールにして(権限を絞ったり承認フローを入れて確認できる)、段々と高度な権限設定にしていくと受け入れてもらいやすいと思います。
実装はできるけど運用に制約がでてしまうから悩むのは、運用する人の立場にならないと出てこない言葉なので、非常に素晴らしいと思います。カスタマイズすればできますというのはすごく良いことなのですが、その結果「運用でカバー」しないといけないのでは本末転倒です。権限・承認フローに限らず、CMSの導入を依頼するときは「なんでもできます」という人よりも「できるけどデメリットもあります」という人の方にお願いすることをお奨めします。
§
以上、休日の昼間に仕事のような議論にもなってしまいましたが、会場は終始リラックスした雰囲気で、気になることを登壇者に質問したり、とても、プレイフルな空間になっていました。
次回以降、また視点を変えた探求をモットーに、CMS SUNDAYを開催していきます!今後ともよろしくお願いします。