Drupal の ambitious site builders とは何か
2022/12/10
Drupal Advent Calender 2022 10日目の記事です。
はじめ
昨年はこんな記事を書きました。
WebディレクターとしてDrupalを専門にするということ
あれから一年、Studio Umi で Drupal に没頭する日々です。楽しい。
今回はこの1年自分がやってきたことの振り返りも兼ねて、Drupal のこれからを示すキーワードの一つとして提示されていた "Drupal is for ambitious site builders" について書いてみます。
↓プロフィール
https://www.studio-umi.jp/about/team/gengo-kikuchi
"Drupal is for ambitious site builders"
この言葉は DrupalCon North America 2022 のキーノートで提示されました。
State of Drupal presentation (April 2022) | Dries Buytaert に詳細があります。
2021年時点でも "ambitious" という単語は用いられていたようですが、"ambitious site builders" という言葉がはじめて出てきたのはおそらくこの DrupalCon Keynote がはじめてだと認識しています。
その後この言葉を切り出し別記事として Featured としているところからも、Dries Buytaert が重要視していることが伺えます。
Drupal is for ambitious site builders | Dries Buytaert
旧来のサイトビルダー
Drupal においてこれまでのサイトビルダーは、端的にいうと「Drupal の管理画面を扱える人」を指しました。
これだと運用側でコンテンツを投稿するだけの人も含まれてしまうので、もう少し具体化すると「データモデルを設計し、管理画面からそのデータモデルを形にできる人」という感じでしょうか。
逆に言えば管理画面以外はノータッチで OK だった訳で、これがサイトビルダーとデベロッパーの大きな違いであり境界でした。
そのあたりは アクイア認定デベロッパー - Drupal 9 を取得した - 鼻 でも書きましたが、「コードの側面から見た Drupal を意識しない人」がサイトビルダーだったわけです。
アクイア認定サイトビルダーのカリキュラムを見るのも分かりやすいですね。いわゆるコードに関わる部分はほぼ触れられていません。
アクイア認定サイトビルダー試験対策講座 | Acquia
ambitious site builders の位置付け
対して ambitious site builders は、"Mostly through the UI" だが "Write (some) custom code" な人達だよという説明になっています。
https://dri.es/files/cache/drupalcon-portland-2022/drupal-unique-strength-1280w.png
この画像では
UI での実装中心 → SaaS
コードでの実装中心 → Web フレームワーク
という両極の選択肢に対し、Drupal をその中間として定義しています。
実際まったくコードを書かない集団に Drupal はおすすめできないし、逆にはじめからフレームワークを使って構築していくべきという状況ももちろんあります。
Drupal はその中間として、使えるものは再利用しつつコードでのカスタマイズもしたい人向けという位置付けになっています。
Writes (some) custom code とは何か
では、ここでいう "Writes (some) custom code" とは何なのでしょうか。
Drupal には少量のコードでカスタマイズができる仕組みが用意されており、その筆頭が hook です。
これは Drupal が決めた命名規則に沿って PHP で function を書くと Drupal がルールに則ってコードを実行してくれる仕組みで、「管理画面からはできないけどそれ専用のコントリビュートモジュールがあるわけではない」ようなカスタマイズに適しています。
他にも plugin として機能を拡張できる仕組みだったり、handler なんかも決まったガイドを見ながらコードを書いていけばなんとか実装できます。
実際1年前は PHP の開始タグも知らなかった訳ですが、バリデーションの実装に取り組むことができました。
Drupal: Webformにバリデーションを実装する - 鼻
"Writes (some) custom code" とはこのような、「Drupal API を活用して簡易なコードで実装すること」を念頭に置いているように思います。
盛り上がる市場に対する人材不足という課題
ここで少し視点を変えてみます。
この数年、Drupal 市場は特にビジネス的な視点で、確実に成長しています。
これは Drupal 開発を提供する企業の方は概ね賛同するところだろうと思います。
これにはたくさんの要素が影響していて、例えば OSS を重視する考え方が増えたことや、ウェブサイトに求められる要件が複雑化してきたこと、実績が積み上がり Drupal に対する信頼度が増したことなどがあげられます。
対して需要に対する供給は追いついておらず、Drupal を理解して生かしきれるエンジニアや組織がまだまだ少ないのが実情です。
この問題を解決するために、ambitious site builders と称してサイトビルダーとエンジニアの中間層を増やし、エンジニアをより技術的な問題解決へ集中させる。
これが Drupal をよりサステナブルなものにするために、やりたいことなのかなと思っています。
記事を書いている中でもちょうど出てきましたが、Drupal 10 以降の Project Browser や Automatic Updates 等のイニシアチブも、「Drupal の取っ付きにくさを解消しつつ誰でも作れるものにしていく」といった方向性を示しています。
Drupal's Project Browser empowers ambitious site builders | Dries Buytaert
ambitous site builders に求められるスキル
では具体的に、ambitious site builders に求められるスキルとはなんでしょうか。
Drupal 開発をやっていると、「サイトビルディングの知識だけではできないが、少し調べたり追加知識があればできるタスク」というのが結構たくさんあります。
というかこの積み上げが工数の過半数を割くようなプロジェクトもあり、こういうタスクを吸収できると経験の深い Drupal エンジニアがより難しい実装であったり、コードレビューや育成へもフォーカスできるのではと考えています。
具体的に列挙するのはなかなか難しいですが、サイトビルダーの次のステップとして、少し思いつく範囲で記載してみます。
composer を使ったモジュールの追加・削除
少量のコマンドを覚えればこれくらいはできるはず
パッチの作成・適用
よく使う hook の理解・実装
hook_form_alter
hook_pre_entity_save
YAML の理解
Git 構成管理の理解
何が構成で管理されてそうでないかとか
テーマ開発の理解
エンジニアが一体何をしているのかくらいは理解できるはず
エンティティの理解
ambitous site builders のその先
うーん、こう書くとデベロッパーと何が違うの?という感じですが、例え全部できなくても、細切れでも引き出しを増やしていけば OK くらいで良いんじゃないかと思います。
要するにエンジニアとサイトビルダー(またはそれ以外の Drupal 開発に関わる人)の間の開きが大き過ぎることが問題なわけで、そこを少しでも埋める動きを増やせば良いと思うのです。
そこから先デベロッパーとして突き詰めていくのも良し、モジュール博士になるのも良し、「開発も結構分かるクリエイティブディレクター」みたいなマルチポジションを目指すも良し。
そうやって多様な人材が揃ってきた先に、「理想的な Drupal 開発の供給市場」がある気がします。
おわり
Dries の ambitious site builders の説明を聞いてなんとなく感じたことを言語化してみました。
コメントなどあれば Twitter にてお願いします(あと採用も)。
https://twitter.com/gengo_k/status/1601417564172828672