見出し画像

仕様書が重複するのを避けるには?

どうすればいいんですかね。私もまだ答えが出ていません。
普段私は、ゲームの仕様書を書いている訳ですが、この仕様書の内容が重複してしまう問題には相当手を焼いています。何故なら仕様変更が起きた時に地獄を見るから。

ただうにうに考えても仕方ないのでちょっと書いて考えようと思います。

「仕様重複を避ける」を考える時の前提

人によって開発設備や意思疎通をするチームの人間が違うので、今回は私の環境に合わせて考えます。

①理想は何か?
ここでは、「仕様変更が起きた時に、一箇所書き直すだけでよい仕様書」が理想です。

少し例を挙げます。
複数の仕様「仕様A、仕様B」に対して影響を持たせる一つの仕様「仕様C」があります。
このとき、「仕様CではBボタンでジャンプしてるから、仕様A、仕様BもBボタンでジャンプする仕様にする」という意思決定が起きます。
さて、実際の仕様にはどのように書くべきでしょうか。
ABCの仕様全てに同じことを書くと、仕様変更が起きた時にABC全ての仕様を修正する必要があります。
かといって、仕様A、Bに「仕様Cと同じ仕様です」と仕様Cのリンクを貼るというのも悪手です。実際に仕様を読んで実装するエンジニアさんはやり辛いでしょう。

※リンクを貼るのは絶対悪ではないです。「こちらのデータベースを参考にしてください」でリンク貼ったり、有用なときの方が多いです。

可能なら、例に挙げた二つをハイブリッドしたいですね。
それぞれの仕様を見ると実際に「Bボタンでジャンプします」と書かれていて、いざ仕様変更が起きたとき(仮にAボタンでジャンプするに変更)は仕様Cだけ変えれば、仕様A、Bにも自動で「Aボタンでジャンプします」と修正されている。これができれば理想です。

最初に提示した理想「仕様変更が起きた時に、一箇所書き直すだけでよい仕様書」になります。

②DRY原則
①に対して補足となる考え方です。
解釈はいろいろありますが、要は「同じ知識を2箇所以上に書かないで」です。このDRY原則が守れる=仕様書が重複しない。になります。

仕様重複を避けるためのロジックあればいいな

あればいいなぁ、、、
何らかの有料サービスならできるのかもしれませんが、現状私の環境は変えられません。変えられるのは環境ではなく「やり方」です。

・リンクをテキストに埋め込める
・ページ内の一箇所(範囲は任意で指定できる)だけなら他のページに反映できる

ここらへんはできるんですけどね、これだけじゃ理想に近づくために工夫が必要になります。

さて、どうやって解決するか。

なんか思いつけば以下に追記

この記事が気に入ったらサポートをしてみませんか?