WEBアプリケーション開発で見積もりを安くしたいお客さんに提案すること
要求定義の工数を軽減する(折半)
超概算見積もりならまだしも、正式見積もりで、「○○を作りたい」だけでは要件分析が入りその分だけ工数が振られている。
人生の謎としては、要件定義が見積もりのあとにあるので、要件定義する前に見積もりしなければならず「何を欲しがっているのか全然わからない」という状態で見積もりをすることがしばしばある。
ちなみに、これで再見積もり依頼されるとその分工数が乗っかるのでお値段もあがる。
昨今見積もり無料と書かれているものは大体他の工数に含まれていると言っても過言ではない。
要求定義の作成
何を作りたいのかを詳細に決定してもらう。
家造りと同じものと説明すればわかりやすい。
- 予算
- 納期
- 最終的にほしいもの(イメージ)
上記は必須であるが、それだけでは満足のいくものができない。
もっと思考をアウトプットしてもらう。家で例えるならば「リビングは2階がいい」「システムキッチンは255cmで」といった基本的な仕様から、「スキップフロア付き」「ロフト付き」などのオプションまで、全て出してもらって、見積もりを出してから削るほうが良い。→第二フェーズなどの提案ができる。
この時、長期的に見たシステムの使い方を考えてもらう必要がある。5年~7年後のシステムを見据える。
業務フローを考えてもらう。
「1階部分の一部はお稽古の教室として使いたい」「友達をたくさん呼ぶのでパーティが開けるスペースのリビングがほしい」など、個人個人の都合による機能は存在する。
この部分をお客様がしっかり作っているならば、要求分析が減り、コスト削減に繋がる。
要求定義を具体的に作ってもらうには
- 最終的な目的を出す
- そのために必要な動作を洗い出す
- どういう導線ならば使いやすいかを洗い出す
- 「○○ならば××」「しかし△△ならば□□」といった分岐は曖昧にせずしっかり定義する(長い付き合いだから10%オフなどといった人間の心情での分岐はシステムに組み込めない)
基本的には上記の繰り返し+業務フローと照らし合わせることで可能である。
その上で、別途
- コード定義が存在するか確認する
- 外部システム連携はあるか確認する
といった細かい部分を確認してもらう。
これをやることで、先方担当者の方の意識もシステムに向くので、齟齬が生まれにくい。
お客さんにゆだねてはいけないもの(お値段があがります)
- ミドルウェアの選定
お客さんで、いつか内製にしたいからミドルや言語を指定してくることがあるが、その言語やミドルが依頼した会社にマッチしていればいいけれどマッチしていなかったら品質の担保は自社で持つようにお願いしたほうが良い。
javaの開発会社にGo言語で開発依頼することはないだろうが、javaの開発会社にPHPでの開発依頼は多々ある。Tomcatメインの会社にJBossを使ってほしいと言ってくることもある。
できなくはないがやりたくもない。
この場合、見積もりする人が抱えている人員のスキル次第だけれども、実装・テストが2割増くらいになっていると思っていい。
人員確保の工数が増えるからだ。
- WEBデザイン会社とのデザインFIX
極稀に「ここはAjaxで連携することを前提に作っています。Ajax部分のJS処理は開発会社にお願いしてください」という丸投げWEBデザイン会社がある。
あるいは「特殊なカレンダー表示をしたいので、ペーパーモックは作ったので実装は開発会社の人にお願いしてください」といった無茶振りもある。
そんなの見積もりに入っているわけがない。後請求です。
あとでものすごく揉める元になるので、開発会社も入ってFIXしたほうがいい。
お客さんの協力がなければ安くはできないということ
コンサルも含めているんだから、と言われても、何をやりたいかを明確にしていないシステム開発は確実に失敗する。
もし、全てをコンサルだとして委ねるのならば、定義に半年は付き合ってもらったほうがいい。
掲示板だって半年ROMれって言われるけれど、それと同じ。空気の理解は重要だということ。