仕様変更や追加要件はよくあること。得意技が使えるようにしておこう。
公開日 : 2014-04-02 13:29:05
PowerCMSのサポートに来るメール、チケットを眺めていると、構築後半やローンチ(運用開始)直前になって要件が追加になったり変更になったことによる実現可否/実現方法のお問い合わせがよくあります。私たちも、この「仕様変更」「追加要件」に遭遇しますけど、「仕様変更」「追加要件」がなく最後まで進められる受託・構築案件ってそんなに多くないのではないでしょうか?
それならば、我々のとるべき手は一つ。「事前に手を打っておくこと」ですよね。
事前に手を打つと聞いて考えられることって何でしょう?
- 見積もり・作業範囲を明確にし、ドキュメントにする
- 追加要件は別途お見積りになることを明確にしておく、あるいはオーダーの際に営業担当がきちんと説明する
- 要件が固まるまで実装に着手しない
- 要件追加を見越した見積もりを出しておく
なんてことが考えられると思います。でも、でも、ですよ。
そんなことはわかっている!
分かってんですよ。そんなことは。それでもなくならないのが「仕様変更」「追加要件」と「増税」と「エイプリールフール」ではないですか? ないですか? ないですかっっ!!
仕様変更を見越した設計、追加要件を想定した進行のために
仕様変更に強い設計にしておく、てのが正解だと思うのですが、それも中々ままならないというケースが多いと思います。
- テンプレートエンジンを採用して、見栄えやHTMLの修正はコーダーができるようにしておく
- もしくは、お客さんが変更できる状態にして、変更したいことはやっていただく
このくらいはできそうです。そういった点で、CMSなどを選定する時に、テンプレートエンジンがしっかりしている製品を選ぶとか、フレームワークを選択する、というのは「あり」ですね。
もう一つ。
「要件追加を見越した見積もりを出しておく」って書きましたけど、そうもいきませんよね。お客様も、スタート時点ではそんなことない! って思ってんですから、そんな金額をやすやすと飲めないです。
得意技があなたを助ける
もしあなたがPHPが得意なら、スタティックなサイトが前提であっても、事前にPHPが利用できるように調整しておくことです。JavaScriptでも何でもいいのですが、いざとなった時にサーバー要件など、諸事情があって後から変更しにくいものを先に依頼して得意技が使える状況にしておくということです。使わずに済むのなら、公開時に無効化する(なぜか、追加は色々面倒なんだけど、無効化するのは承認取りやすいのですよ)。
以下の例は、PowerCMSのDynamicMTML(PHPの拡張フレームワーク)を有効にしていれば実現できる、カスタムアーカイブの一例です。
もう一点、お客様に「要件追加を見越した見積もりを出しておく」ことはできなかったとしても、逆にいざという時に使える予算を確保しておくことです。ここまではかかる可能性があります、いくらまでならコストかけても大丈夫ですか? あるいは、工数短縮メリットがあるので、この金額だけは外部に依頼したいです、といったように内部調整することです。
これも、大切なのは、
概ね、何か問題が生じてからの調整は難しい
ということです。スタート時点、早い方がいいです。最終的に、お金かかりませんでした! 安く上げられました! で文句言う上司はいないでしょう?
と、いうことで、サポートの充実した製品を選ぶ、というのもそれに近いものがありますが、いずれにしても最後の最後でバタバタしないために、「事前にしっかり計画しましょ!」
追記:MT案件なら、以下のようなことも。
- CGIで動かすかPSGIかFastCGIか(後でレスポンス悪い、というときの保険)
- Memcachedサーバーを立てておく(同上)
- run-periodic-tasksをジョブに登録しておく(cronジョブの設定にはサーバーの権限が必要につき、最初に依頼しておかないと後からNGになるとどうしようもないので)