CMS選定基準

CMSを選択するに当たっての選定基準項目です。

1人しか使用しないCMSであれば、個人の好き嫌いで決定しても問題ないですが、たいていの場合はサイト構築する人と使用するユーザが違っていたり、複数の人々が関係してきます。
そういった場合、主観だけで決定するのではなく、一定の基準に照らし合わせて、ソフトウェアを評価した方がよいと思われます。
今は事務所の「おたく」人物しか触れないような特殊なソフトのCMSの段階ではなく、一般人が普通に使うCMSの段階なので、一般人の感覚で十分判断できます。
CMSに関係してくる人々としては、以下のタイプがあげられます。

  • CMSを使ってサイトを運用する人
  • CMSのデザインを作る人
  • CMSの機能の拡張をする人

サイトを立ち上げたら、まったくデザインを変更しない、機能を拡張しないという場合は運用者の立場だけを考えれば問題ありません。
サイトの運用方法に合わせて、関係する人々のタイプを考慮します。
デザインする人にとってはデザインしやすいが運用は普通の人には難しい、というように立場によって意見はまったく異なる場合がほとんどです。
どういった立場の人の意見かよく注意します。

一度運用を始めたシステムはなかなか簡単には別システムへ移行できません。
時代おくれで運用費が高くても、使い続ける以外には方法がないという場面も多々存在します。
安易に立ち上げた(利用した)システムは必ず行き詰まります。
最近はそのインターバルが特に短いので、おそくとも2,3年内には問題が顕著になるでしょう。
例えば、運用費が高すぎる、システムの融通が効かない、サイトの引き継ぎができないなど。
どの部分に重点を置くか、評価基準を定めた上で、最初の選択は間違わないようにしたいものです。
また、インターネット上にあるCMSについての日本語の評価記事は9割以上が利害関係者による「ちょうちん記事」なので、本当に使えるものかどうか、実際に自分で使ってみて判断することが必要です。

簡単

システムを使用する主要なユーザにとって覚えるのに簡単であること、これが第1条件に挙げられます。
CMSが必要であるという環境は、たいていの場合、サイトを更新するユーザが頻繁に変わりうる環境です。
そういった環境では、CMSを覚えるだけでなく、業務引き継ぎ作業も行わなければなりません。
したがって、CMSを覚えるだけで、分厚い本を読んだり、何時間も講習会を受けたりしないと使えないようなシステムは、
まず選択肢からはずすべきでしょう。
HTMLタグやCSSの知識がまったく何もなくても誰でも使いこなせて、3分以内に覚えれるくらいのシステムがベストです。
容易さがそのまま運用費やカスタマイズ費用に比例してきます。
使うのに難しいソフトウェアは結局多くの費用がかかることを頭に入れておきましょう。
判断のためにチェックするポイントとしては、主に以下のような機能です。実際に試してみるとよく分かります。

  • メニューの作成 ― サイトが管理しやすいかどうかが顕著に現れます。
  • デザインの変更
  • コンテンツの更新 ― 例えばサイトのある部分の文字が間違っていたという場合、しばらくシステムを触っていないでも(つまり使い方を忘れている状態でも)10秒以内で直せるくらい直感的な操作が可能というのが理想です。

オープンソース

今や新しいアイデアや技術はほとんどすべてオープンソースから出てくる時代です。
もはや新しいソフトはソース非公開のクローズドな仕組みからは出てきません。
マイクロソフトしかり、いまや1社だけで革新的な技術を次々と開発するということはできません。
外部からいろいろなアイデアが追加されることによってソフトウェアの発展がより進む、といったオープンソースの仕組みから
離れていては停滞あるのみです。
したがって、クローズドな仕組みに取り込まれてしまうと、それだけで時代遅れの原因になります。
ASP型サービス等クローズドなサービスを安易に選んで1企業に依存してしまうと、そのときは安い割には快適かもしれませんが、発展性がなく、2,3年後には完全に行き詰まりです。
別のサービスに乗り換えるにも、移行費用が結構かかります。今の時代、停滞したシステムに乗ってしまうことはリスキーです。
ソースが公開され誰でもアイデアを追加できるオープンソース形態は、常に進化可能なシステムといえます。
また、オープンであるが故にどこの企業でも対応でき、追加機能も低予算で可能になります。
注意点としては、オープンソースの品質にはピンきりがあることと、機能拡張の開発も含めて製品をサポートしている企業があるかどうかになります。

セキュリティ

システムは時間と共に拡張され、複雑化する一方であるので、システムの基本思想として、最初からセキュリティ面を考えた仕組みであることが大事です。
後からつけたしたようなセキュリティ機能では、根本的な問題を解決できないので、セキュリティホールが次々と発見される穴だらけのシステムになります。
しっかりしたセキュリティ思想を持ち、システムが拡張していっても一貫性のあるシンプルな構成を保てるようなシステムは、セキュリティ的にも強固で優れたものになると言えます。
製品では、具体的にどのようなセキュリティ機能を持っているかをチェックします。
セキュリティがしっかりしていると言っていても具体的なセキュリティ機能を明示できない製品は、何も対処されていないと考えて間違いありません。
特にオープンソースにおいては「セキュリティ」という言葉さえない製品も多いので、何をするのが「セキュリティ」なのかが説明できる製品を選ぶべきでしょう。

  • SSL機能
    世界標準ではありませんが、日本ではお問い合わせ機能にSSLをつけるのが慣例となっています。ページ単位でSSLの制御ができる機能は必須です。

機能拡張性

現在の普及しているCMSの段階としては、HTMLファイルを直接編集するHTMLエディタの延長としてのWebサイト更新ツール、
ただ単なるコンテンツ更新ツールとしてのCMSのレベルはもう終了しています。
コンテンツ管理だけでなく、自由に様々な機能が追加できることが当たり前になっています。
機能の規模は小さいものから大規模なものまで様々ですが、中大規模レベルでは、ブログ、掲示板などはすでに標準機能です。
したがって、CMSの土台となる部分が汎用的な機能の拡張性を踏まえた作りになっているかがポイントになってきます。
コンテンツ管理も単なる1機能と考え、フレームワークやミドルウェア、PaaSなどと呼ばれる機能管理層が必須になります。
例えば、ブログ型CMSを汎用的に改造して多機能システムとして使用しても、基本はブログシステムなので、機能が増えるにしたがって統一感のない、てんでバラバラな複雑なシステムになっていきます。
そういったシステムは、根本的に一から作り直す以外には改良方法がありません。
新しい機能が増えるごとに新しい使い方が増えていくのではなく、新しい機能が増えても使い方の基本は変わらないことが大事です。
それには拡張していっても一貫性が保てるような仕組みをベースとして最初から持っていることが必要です。

標準化

テンプレート作成ツールなど他のアプリケーションとの連携、他のネットサービスとの連携、ブログインターフェイス等の標準的なAPIへの対応。
標準化した仕様を用いることによって、外部ソフトの能力を取り込むことができます。
結果として、安価で高レベルなサイト構築が可能になります。(サイト構築の生産性)

中心となる開発者の所属国、言語

ユーザニーズが製品に取り込まれていくかどうかは非常に重要です。そのためにはプロジェクトの主要メンバーに日本人の開発者がいることが必要です。
日本でよくあるパターンは、○○ユーザグループといった外国製品を日本語化しているだけのプロジェクト。元々プログラムが作れない人々が集まったファンクラブみたいな集団で、応援活動が主です。日本のユーザの要望が製品に反映されないので、利用者が増えないまま自然消滅するのがお決まりのパターンです。
どれだけすぐれたソフトウェアであってもユーザのニーズが取り込まれないソフトは結局は普及も発展もしません。
サポートも重要ですが、常に、製品の方向性や基本的な仕組みを決めるところまでユーザのニーズが反映されるものでなければ短命で終わります。
日本でJoomla!が一向に普及しない原因はこういったところにあります。(操作が難しいという問題もありますが。)
コンテンツの検索機能など日本語対応に関しては、ネイティブな開発者がいないとまず対処できません。

マルチデバイス対応

スマートフォン以降、今後も様々なデバイスが登場し、対応することが必要になってきます。
その場合、PCサイトであろうとその他デバイス用のサイトであろうと同様の使い方で一貫性があるのが重要です。
デバイスごとに使い勝手が違っていて、新しいデバイスが出るたびに新しい使い方が増えるというのではもう一つです。

Webサイトの種類と規模

CMSによって構築できるWebサイトの種類が異なります。それぞれ得意とする目的や表現範囲が限られています。
例えば、ドキュメント共有するだけのサイトであれば、デザインに自由度がなく、使い方が型にはまっているようなシステムの方がよく、
デザインが表現力が高くなんでもできるようなCMSは必要ないかもしれません。
目的や対象ユーザを考えた上で、立ち上げたいサイトを作れるCMSであるか検証します。
また、得意とするWebサイトの規模、サイトの運営方法が異なります。
中には数十ページくらいの小規模サイトにしか向かないCMSがあります。こういうCMSで千ページも作成すると画面の表示や検索が非常に遅くなることがあります。
千ページ以上の多量のコンテンツを扱う場合は、多量のコンテンツ管理に向いた管理システムであるか、コンテンツが増えても性能に問題が出ないか、あらかじめ検証しておきます。
コンテンツを投入した後でサイトが遅すぎて使い物にならなくなったというのはよくあるパターンです。
運用するWebサイトの規模や、管理者権限等の運営方法に合うか考慮して選択します。

製品コンセプト

製品がどのような考えを元に作られているのか、どういう方向に向かっているのか。
製品自体の良し悪しだけでなく、製品のコンセプトや開発者の考え方なども1つの選択要素です。
単にホームページが簡単に更新できますよというレベルの製品はごまんとあります。
そのレベルで発想が終了しているものもたくさんあります。
そこから先に一歩踏み出した発想があるかないか、これは天と地ほどの大きな差です。
コンピュータのプログラムのことだけ考えて作られたものよりも、コンピュータ以外のいろいろな考えを踏まえた上で
作られたソフトウェアの方が当然可能性も大きく魅力的で厚みのあるソフトウェアになります。
製品のWebサイトが情報収集対象になるでしょうか。
一般人の理解できない専門用語ばかりのサイトは遠慮した方がいいでしょう。

コミュニケーション機能

より多くのアクセス数を望むWebサイトには、コミュニケーション機能が必須です。
参照のみであまり更新されないサイトでは、ユーザは一度訪れれば再度訪れることはありません。
お問い合わせや掲示板、ブログのコメント機能等、サイトにアクセスしてくるユーザとサイト管理者、また、ユーザ同士のコミュニケーションが行える機能が必要になってきます。

あまりお勧めでない特徴

  • 独自タグ
    独自タグが多いと作成したコードがだんだんスパゲッティ状態になってユーザ自身では管理できなくなります。
    独自タグは基本的になんらかの機能のための機能です。なんらかの処理が簡単にできるという目的で作成されますが、大抵の場合複雑なことはできないので、ちょっと難しいことに対応しているうちにどんどん複雑な仕様に拡張されていきます。そして、しまいには簡単なことを難しい方法で行うといった、本末転倒なことになっていきます。
    「機能のための機能」などはない方がシンプルに目的が達成されます。
    独自タグを使用するというだけでさらに覚えなくてはならないことが増えるので要注意です。
  • 再構築が必要
    ブログの専用CMSで「再構築」が必要なものがあります。データ増えるにしたがって「再構築」時間がどんどん長くなり、
    しまいには1晩かかってしまうこともあるようです。
    そのときはサーバアクセス停止になってしまうので使いものになりません。
  • 汎用フレームワーク
    独自フレームワークではなく、○○フレームワークといった開発フレームワークを基盤にしたCMSは、「汎用」であるがゆえに総じてパフォーマンスが悪く遅いシステムになります。
    またフレームワークのバージョンアップでフレームワークの仕様が変わってしまうことがよくあります。フレームワークとの互換性がなくなったCMSは大幅な修正が必要になり、場合によっては載せ替えに1年以上かかります。載せ替え中は開発リソースが奪われるので、新しい機能のリリースが停止し、CMSの発展自体がなくなります。また、サードパーティ製のモジュールの互換性もなくなるので、新規に出来上がったシステムは元のシステムよりも低機能になってしまいます。
    よくも悪くもフレームワークの開発状況に左右されます。フレームワークでセキュリティの問題が見つかった場合は問題をそのまま継承します。
    フレームワークの開発が止まりメンテナンスされなくなれば、再度別フレームワークで作り直しといった巨大な壁にぶつかり、CMSの開発も頓挫することがしばしばです。
  • バージョンアップが少ない
    技術的な変化のスピードが速い昨今の状況では、ソフトウェアはバージョンアップが命です。
    バージョンアップされないソフトウェアは変化の速い世界にはついていけず、将来的にはほとんど見込みがありません。
    PHPやDB等のサーバ環境は常に進化し続けているので、あっという間に古いサーバ環境だけでしか動作しないCMSになってしまいます。
    セキュリティの問題が発生した場合でも、対応が遅いなどサイトの運用に大きな不安を抱えることになります。
    最低でも2,3ヶ月に1度はバージョンアップされていることが目安です。
  • コンテンツにプログラムが入る
    コンテンツにPHP等のプログラムが混入するCMSは、コンテンツとプログラムが完全に分離されていないため、プログラムが分からない人間がコンテンツをいじると、不注意でコンテンツを壊してしまう危険性があります。
    コンテンツ管理に一貫性が保てないため、ごく少量のコンテンツしか扱えない、セキュリティが脆弱などの問題があります。