目次
CMS構築はエンジニアとしてスキルアップできない?
CMS導入によるWebサイト構築業務を、スキルアップしたいWeb開発エンジニアへおすすめできない理由について私なりに書きたいと思います。
なお、あくまで私個人のエンジニアとしての業務経験とキャリアの指向性に基づいた見解であり、CMS技術自体はもちろんのこと、特的の企業やプロジェクトを批判する意図は一切ないことをご理解いただけたらと思います。
CMSとは
そもそもCMSとは何か、わからない方のためにあらためて説明します。
CMSとは、コンテンツ・マネジメント・システム(Contents Management System)のことで、HTMLのコーディング等Webサイト制作の専門知識がない人でもページやサイトに掲載する画像など、Webサイト上のコンテンツを統合的に管理、更新可能にするためのソフトウェアのことです。
WordPressはCMSの代表格
https://ja.wordpress.org/
参考
コンテンツ管理システム – Wikipedia
CMSとは?初心者でもわかるCMSの種類、メリット、導入事例【おすすめは?】
CMS構築業務について
では、そのCMSの構築業務とは具体的にどのような内容なのか説明します。
テンプレート設計・開発
サーバ上で動作するCMSに、デザインの出来上がったHTMLファイル(テンプレートといいます)を組み込んでいく作業を行います。
例えば、お知らせや商品情報など企業の担当者が管理画面を使って更新する内容がサイト内のページに反映されるよう、HTMLファイルにCMS独自の構文を実装して、動的なWebページになるように実装していきます。
ページによってCMSで情報を管理する必要があるか、または固定ページとして管理するか等、構築するWebサイトの仕様を把握して作業を行います。
入力画面設計・カスタマイズ
サイトを更新するための管理画面はCMSの機能としてあらかじめ用意されていますが、入力項目の数とその種類、添付する画像や動画、またはPDFファイル等の情報コンテンツはページのデザインや目的ごとに要件が異なるため、顧客の要望や対象となるテンプレートのHTMLの構造などを考慮してCMS上の設定を行います。
その他、細かくは書ききれませんが、CMS構築業務は概ねこういった作業を行います。
Web開発エンジニアの仕事ではない
プログラミングスキルが身につかない
上記の通り専門的な知識が必要ではあることは間違いないのですが、
では、なぜ私がこの業務をエンジニアにおすすめできないのかを説明しますと、CMSはそれ自体がすでに開発されたパッケージシステム(既製品)なので、上記のような作業において、サーバーサイドのプログラミングを行う必要が基本的にないため、業務を通してプログラミングのスキルが身につかないからです。
そもそも、CMSで開発できるものは基本的にコーポレートサイトやニュースサイト等であり、Webアプリケーションやクラウドサービスを開発することを目的とされていません。
また、比較的規模の大きな制作会社などでは、フロントエンドのセクションが開発したHTMLテンプレートを元に、CMS構築作業はその他のセクションが専任で行っているというケースも存在するようですが、その場合、それを担当するエンジニアはサーバーサイドのプログラミングどころか、HTML/CSSのコーディングすら行わず、業務を通してほとんどそのCMSの独自知識しか身につかないので、スキルセットに潰しが効かなくなります。
Webシステムエンジニアとして広く通用するために必要なのは、CMSによるサイト構築ではなく、データベース設計やAPI開発、Webフレームワークといったスキルです。
CMS構築はサーバーサイドの開発ができないHTMLのコーダーやWebデザイナーといったポジションの方が担うべき業務で、サーバーサイドエンジニアの担当領域ではないと私は認識しておりますし、エンジニアの業務経験としてもほとんど評価されません。
(CMSそのものを開発するなら話は別ですが)
スキルアップしたいWeb開発エンジニアにとっては、たまたま短期のプロジェクト等でCMS構築業務を担当することになったのであれば仕方がないかもしれませんが、そちらがメインの業務になっているようであれば、なるべく早く身の振り方を考えた方がいいというのが私の意見です。
ただ、仕事の向き不向きは人それぞれですし、CMS構築の仕事が好きでやりがいを感じられているなら、それでいいのではないかなと思います。
私はやりませんけどね。