💀

「webのことよく分からんから全部お任せで」は死亡フラグ

2024/12/06に公開

はじめに

Qiitaの「本番環境などでやらかしちゃった人 Advent Calendar 2024」です

https://qiita.com/advent-calendar/2024/yarakashi-production

これは私個人のやらかしというより、所属企業としてのやらかしに分類されるかもしれません。

やらかし内容を端的に説明すると 「フルカスタムのオーダー車を依頼して、デザインや機能面では特に問題ないが十数回乗るとエンジンが壊れるかもしれないという車が納品された」 というものです。

具体的には「WordPressで作られたwebサイトのコードや構成がぐちゃぐちゃで、セキュリティ対策もなされてない」ものが納品されました。

ぼかして書いていくので解像度が低めな部分もありますが悪しからずご了承ください。

概要と登場人物(組織?)

概要

筆者の所属企業はクリエイティブ制作を行っています。親会社がグループ展開していて主な顧客はそれら関連企業となります。
「対外的にはBtoBのやり取りと認識されますが、内実は社内向け案件をメインに行っている内製部署」という感じです。

今回のやらかしは、関連企業の一つが外注にコーポレートサイトのリニューアルを依頼したことに端を発します。

登場人物(組織?)

  • 発注元企業(クライアント):関連企業-A
    • 筆者の所属企業:自社開発部署-B
  • 仲介企業:SEO業者
  • 受託開発企業:サイト制作の請負企業

それぞれの関係性を少し整理すると以下になります。

  1. 親会社含めてお世話になっているSEO業者に関連企業-Aがサイトリニューアルを相談
  2. SEO業者が選定した受託開発企業がサイトリニューアルのみ行い、
  3. 自社開発部署-B(筆者の所属企業)がリニューアルしたサイトを保守運用する予定だった

恐ろしいことですが、関連企業-Aの事業責任者が自社開発部署-Bに何の相談もなく「2と3に関して勝手に決めて進めて」いました。
この点は弊社側(グループとして)の反省点として省みるべきところが大きいです。

時系列の列挙

  • SEO業者に関連企業-Aがサイトリニューアルを相談
  • 関連企業-Aのチェックを経た納品後(サイト公開後)に、関連企業-Aの依頼で今後の保守運用にあたる自社開発部署-Bが成果物を検証。その結果、納品を認められるクオリティではなかったので再修正を依頼
  • 再修正されたものもセキュリティ関連の記述で問題があったり、そもそもの構成・作り方に問題があったので再度修正を依頼
  • 2度目の修正を先方(SEO業者・受託開発企業)が拒否。その際の先方の提案が受け入れがたいものだったため、弊グループ管轄のサーバーからドメイン移管してもらって今後先方が保守運用する方向に落ち着く

本案件の問題点

冒頭で説明した通り 「フルカスタムのオーダー車を依頼して、デザインや機能面では特に問題ないが十数回乗るとエンジンが壊れるかもしれないという車が納品された」 というのが要点です。
加えて、検証と修正依頼を重ねていく中で、WEB開発・SEO両面における先方の知見不足が露見しました。

WordPressには「ブロックテーマとクラシックテーマ」という現状2通りの作り方があります。
テーマに関する詳細は話が逸脱するため割愛しますが、今回の成果物はどっちつかずで不安定な造り(キメラ)になっていました。
現状問題はなくとも今後の運用に支障をきたすリスクが相対的に高いサイトであり、制作費を払ってまで不安定なサイトを納品されることは容認できなかったのです。

あと、以下のような部分も気になりました。

  • セキュリティ
    • データ取得及び表示に関するエスケープ処理が全く行われていない
    • WordPressのコアファイル(wp-includes配下のファイル)を編集していた
  • コード
    • コードの冗長性
      1行程度で済むコードを、わざわざPHPを使って複数行の処理を行う独自関数として用意。しかも使用時はそれをimportした後に別途調整して利用する必要があるという代物がちらほら
    • 不要なプラグインや設定をはじめ、未使用の関数がいくつか残ったまま(これらに関する説明やドキュメントは無し)
  • その他
    • 全画像のalt属性が空
    • ドキュメントなども無し
    • テスト環境や関連ファイル・データも無し
    • コメントアウトが文字化け
    • 「テーマが壊れています」と表示されている件で問い合わせると「WordPress側が間違って認識しているだけでサイトに問題ない」という回答

ただ、本案件に関して筆者は受託開発企業に同情せざるを得ない部分もあります。
受託開発企業からすると本案件はそもそも「作って終わり」だったはずで、契約に関する内容は随分前に締結しており、何ならクライアントチェックも一旦済んでサイトを公開している訳です。
それなのにグループ企業が急に干渉してきて「いちゃもんを付けてくる」と思われたかもしれません。

この点に関しては関連企業-Aの事業責任者のIT軽視が原因で、全面的に弊グループに非があると思っています。

「金を払うクライアント側なのだから諸々含めて任せるのは当たり前だろ」というお声も聞こえてきそうですが、
個人的には 「web制作依頼するなら事前知識が少しは必要な時代」 になっていると感じます。
でないと今回みたいに 「低品質な成果物を収められてしまう(先方のいいようにされてしまう)リスクがある」 かもしれません。

話が逸れましたので戻します。

先に述べた懸念点に対して、筆者はドキュメントを作って「コード意図の確認」や「構成への質問」、「セキュリティ対策へのアドバイスとコード例」など諸々含めた修正依頼をお願いしました。

そして数日後、修正いただいた内容の再検証依頼を先方(SEO業者)から受けました。

再検証を経て

結論から言うと変わらず容認しかねるクオリティでした。
もちろんしっかり対応いただいている箇所もあったのですが、致命的に気になったのがエスケープ処理への対応でした。

前回筆者がアドバイスとコード例を送ったにも関わらず、不適切な記述で不適切な関数を使っており、全てエスケープ処理できていない状態でした。
例えると、重要書類が封筒とともに用意されているが、どの書類も封筒に入っておらず丸見え状態というものでした。

上記含めて、容認は厳しかったので再度ドキュメントを用意して修正依頼を出したところ、「SEO業者と受託開発企業、自社開発部署-B」の三社で打ち合わせすることになりました。

この際、SEO業者の担当の方への失望が加速しました。
前述の「altタグが空」問題に関する意見を求めると「技術的なことは分かりません」の一点張り(SEO業者でそれ知らないとかあり得る?)。
加えて「事業責任者がOKを出しているし、外見さえ良くて動いてるなら問題ないという認識です」という、WEBコンテンツ運用やWEBサイトの性質をまるで考慮していない発言。


その打ち合わせの数日後に、先方(SEO業者)から「欠陥なら修正しなければならないがドキュメント内容は『こうしたほうが良い』という要望が多く対応しかねる」という回答を得ました。
先方の言う要望に関しての見解を述べると、筆者は「不安定な造り(キメラ)を解消するように修正依頼」しており、それさえ達成すれば他の諸々も自ずと解決していく課題たちになっています。

しかし、これ以上対応したくなかったのでしょう。
この気持ちも筆者は理解できます。

※以下は愚痴です。お目汚しでしょうしご覧いただかなくとも結構です

しかしながら、プロとしてお金を得て制作するのであれば誠実に対応すべきではないでしょうか?

筆者は「インターネットにさえ繋げれば誰しもがコンテンツ(情報)に触れられるwebの普遍性や平等性が好き」で、
その仕事に従事するからには自分の能力の限りユーザーにとって最適なものを提供する努力が必要だと思っています。

日々のインプットも、個人開発や実務でのアウトプットも、Qiitaやzennで記事を投稿するのも、
自分がこれまでお世話になってきた名前も顔も知らないリスペクトする先人たちを真似して、
少しでもインターネットに貢献したいからです。

今回の案件を通じて、自分がいかに単細胞な理想主義者かを思い知りました。

結局、弊グループ管轄のサーバーから当該コーポレートサイトは出ていってもらって先方(受託開発企業)で保守していただく運びとなりました。

弊社(グループとして)の反省点

今回は、制作開始前に詰めておく必要のある事項が諸々抜けていました。
例えば、「サイトの作り方(静的 or 動的)への理解」をはじめ、「仕様や設定に関するドキュメント作成依頼」、「テストサイト制作に必要な各種データの扱いや受け渡し」、「トラブル時の対応策定」、「成果物の品質ライン設定」などです。
こちらに関しては、よく詰めずに依頼してしまった弊社側に非があります
契約内容が決まっていたので、情報共有の遅れや納品後対応、修正依頼など含めて全て後手対応となってしまいました。

さいごに

本記事を通じて筆者が述べたいのは、途中で少し触れたように以下になります。

個人的には 「web制作依頼するなら事前知識が少しは必要な時代」 になっていると感じます。
でないと今回みたいに 「低品質な成果物を収められてしまう(先方のいいようにされてしまう)リスクがある」 かもしれません。

今回のやらかしは(弊グループのようにIT軽視及びリテラシーの低い組織に限られたもので)再現性のあるものではないかもしれません。
ただ、我々の失敗がどなたかの糧になれば少しでも幸いです。

Discussion