你的浏览器还没开启 Javascript 功能!

神聖なる仕様書

もし、あなたはシステム開発者(特にSIerの)ならこんなケースに出会ったことがあるのではないでしょうか。

顧客やマネージャーから仕様書をもらって、コーディングしようとしたら。。。

  • あれ?この仕様書矛盾してねぇ?
  • 〇〇のように実装したら、追加機能☓☓は実現できないじゃん!
  • 仮に実装しても、エンドユーザーにとって使いにくいやん!

仕様書を何回も見直して考えた結果。

やっぱ仕様書に問題があることを判明した!!

考えてみよう

では、あなたならこの場合どうしますか?

  1. 知るか!上流設計は俺の範疇じゃねぇ。仕様書通りに実装してしまえ!!
  2. 顧客とマネージャーに相談し、既に承認済みの仕様書を直すように調整する。
  3. 上の人たちはシステムをわかってない!俺ならもっと良く作れる。仕様書を作り変えちまえ!!

答え合わせ

1の場合

仕様書が本当に間違っていたら(単純に自分が勘違いしているだけのケースもあるが)、1番のやり方をしてしまうと間違いなく時間の浪費である。

上からの指示&仕様書を鵜呑みにした結果、「仕様通りだけど、使えないシステム」いっちょう出来上がり!

しかし、往々にして現場ではこのケースになってしまうことが一番多い…

2の場合

これは一番良い選択肢のように思えるが、一番労力がかかって疲れる。

顧客とマネージャーと調整や説得している中でいろいろな壁(もう承認済み、検収済みの仕様書が一番厄介)が立ちはだかる。

意思疎通がいかに費用対効果(コスパ)が悪いことを思い知らされてしまう。

自分のコードを専門知識が全く無い人に説明しなければいけない。
それもその人にわかるレベルの会話で…

そうしていく中でも、納期が容赦なく近づいてくる。

そして、だんだん妥協を覚える。

ふわったした仕様をあえてそのままにして、解釈次第でどうにでもコードが書けるような逃げ道を作るエンジニア多くいる。

3の場合

当然のことだが、それをやってしまうと不必要な敵(顧客、マネージャー)を作ってしまう。

お前何様!?仕様を勝手に変えるなんて。」って思われかねない。

自分が作った仕様の誤りを指摘され、しかも勝手に直されるのはいい気分ではない。
誰だって自分の考慮不足を認めたくないもの。

完璧な仕様書は存在するか?

当然、そもそも仕様書が間違ってなければ、上記の問題は発生しない。

でも…

教えてください。あなたが今ままで完璧な仕様書(後続フェーズになっても、絶対手戻り発生しない)に出会った確率はいくつ??

0%

これは断言できる!

エンドユーザーはシステムに求めるものは「価値(効率化、コスト削減、売上向上)」であり、「機能」ではない。

顧客とマネージャー、そしてエンジニアにも言えることだが、上記のことを気づいていないことが多い。どうしても機能の実現にフォーカスを当ててしまう。

実現したい機能が多ければ多いほど、矛盾や仕様の把握漏れが発生しやすい。

そんな使えない仕様書なら、捨ててしまえ。」とすら思えてくる。

それでも仕様書は無くならない

アジャイル開発の思想は・・・

ユーザーに価値あるシステムを提供するには、エンジニア・プログラマは顧客にただ設計書を見せることよりも、 頻繁に意思疎通できる環境を用意すべきである。

それでも意思の疎通は時間がかかるものです。

顧客も業務に精通していない人に頻繁にコミュニケーションできるほど、時間があるわけではない。

エンジニア・プログラマ同士なら専門用語で会話がなりたつが、顧客とやり取りするとなると、一旦頭の中で翻訳作業が入る。
※これが意外とストレスかかる

そもそも、アジャイルは銀の弾丸ではない。

アジャイル使ってプロジェクトが成功するなら、IT業界はもっとHAPPYになっているはず。

だから、やっぱ顧客とマネージャーで仕様書を作るやり方になってしまう。

そう、だから例え仕様書は完全に信用できないとわかっても、仕様書はいつまで経っても淘汰されないだろうな…