Drupal の ambitious site builders とは何か
はじめ
昨年はこんな記事を書きました。
↓プロフィール
"Drupal is for ambitious site builders"
2021年時点でも "ambitious" という単語は用いられていたようですが、"ambitious site builders" という言葉がはじめて出てきたのはおそらくこの DrupalCon Keynote がはじめてだと認識しています。 その後この言葉を切り出し別記事として Featured としているところからも、Dries Buytaert が重要視していることが伺えます。 旧来のサイトビルダー
Drupal においてこれまでのサイトビルダーは、端的にいうと「Drupal の管理画面を扱える人」を指しました。 これだと運用側でコンテンツを投稿するだけの人も含まれてしまうので、もう少し具体化すると「データモデルを設計し、管理画面からそのデータモデルを形にできる人」という感じでしょうか。
逆に言えば管理画面以外はノータッチで OK だった訳で、これがサイトビルダーとデベロッパーの大きな違いであり境界でした。
ambitious site builders の位置付け
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 の開始タグも知らなかった訳ですが、バリデーションの実装に取り組むことができました。
"Writes (some) custom code" とはこのような、「Drupal API を活用して簡易なコードで実装すること」を念頭に置いているように思います。 盛り上がる市場に対する人材不足という課題
ここで少し視点を変えてみます。
この数年、Drupal 市場は特にビジネス的な視点で、確実に成長しています。
これは Drupal 開発を提供する企業の方は概ね賛同するところだろうと思います。
これにはたくさんの要素が影響していて、例えば OSS を重視する考え方が増えたことや、ウェブサイトに求められる要件が複雑化してきたこと、実績が積み上がり Drupal に対する信頼度が増したことなどがあげられます。
対して需要に対する供給は追いついておらず、Drupal を理解して生かしきれるエンジニアや組織がまだまだ少ないのが実情です。
これが Drupal をよりサステナブルなものにするために、やりたいことなのかなと思っています。
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 開発の供給市場」がある気がします。
おわり
コメントなどあれば Twitter にてお願いします(あと採用も)。