プログラミングの事を書けと言ったよね?
すまん、ここ数年コンソール見てないんだ……
他人の書いた仕様書ばかり見るようになってしまった。だからこそ言える事がある。
仕様書ってなんだろう
多くの人が「これから俺はこんなものを作るんだぜ、と他人に伝える書」ぐらいにしか思ってないんじゃないだろうか。
違う。違うんだ。
仕様書は「武器」なのだぜ。
「攻め」の姿勢で仕様書を書こう
「仕様書」で書いたものは「仕様」になる。バグではなくなる。
そう、そこ超重要なのだぜ。
自分の書いている仕様書が、後々に、自分を守る「武器」となる。
具体的には何か問題が起きた時に「これってバグじゃない?」って言われた時に**「違いますぅ、仕様ですぅ、仕様書に書いてありますぅ」**と口を尖らせながら見せつけるためのものだ。
で、逆に見せつけられた時に「こうとも読めるよね?」と返されるようじゃ武器にならないのです。そう、よく言われる「誰が読んでも同じ意味になるように書け」は、自分を守るためのものでもあります。
「ちっ、うっせーな、反省してまーす」と言いながら言われた事だけ修正するなんて、バカのやる事です(元ネタはググって下さい)。
ここで書いた事は、将来俺を守るためのものだ、と思いながら書くものなのです。
仕様書を「武器」にするためにその1、要件定義書
仕様書を武器にしたいなら「積み重ね」が大事です。
要件定義書、基本設計書、詳細設計書。(企業が違うと呼び方が変わるが、大体こういう感じの3段階の仕様書になるはず)。
お客さんに見せるのは、要件定義書が中心で、基本設計書は見るお客さんもいれば見ないお客さんもいる。そう考えたら、今まで面倒くさかっただけの要件定義書が、どれだけ重要かわかるはず。
そう、要件定義書を見せて「これ仕様ですぅ」と言える程度には、相手に「仕様を伝える書」じゃなければダメなのだ。
仕事のとっかかりで、お客さんに初めて出す書類で、何とか無難に乗り切ろう……そんな考えでは、キツいだけだ。武器にしよう。これからの自分を守るための武器にするのだ。
仕様書を「武器」にするためにその2、基本設計書
「基本設計書」は2つの意味を持つ。
1つ、詳細設計書は「詳細設計書を見せる前の最後の書である」ということだ。
詳細設計書を作る時、基本設計書に書いてある事をパラメータに落とし込む。パラメータがどの値の時にどう動くかなんて、だいたいはベンダが決めることだ。
逆にいうとあなたが作る「仕様」を具体的にお客さんに伝える最後の場面だ。ここで書いた書が仕様のフィックスとなる。ここで手を抜いてはいけないのだ。
そしてもう1つの意味。基本設計書は「詳細設計書の前」なのだ。詳細設計書を書く人が、要件定義書を見なくても、基本設計書全てを読まなくても、部分だけの基本設計書を読むだけで詳細設計書を作れないといけない。そうしないと、何があっても100%、自分が詳細設計書を書くハメになる。
人が少ないんですぅ、忙しすぎますぅ、人を増やして下さいぃ、と上に頼んで、人が来る事は稀だが、来る事もある。
どんな人材だろうが、未経験のプロジェクトであれば、来てからマッチアップまで時間がかかる。
**そうなった時を見越して基本設計書を作るべきなのだ。**基本設計書の部分だけを見て、詳細設計書に落とし込める。そういう意識で書いた書でなければ、基本設計書から詳細設計書に落とし込みをするのは難しい。
仕様書を「武器」にするためにその3、詳細設計書
詳細設計書、これこそ武器だ。お客さんに見せる事はほぼ無いが、ある時はある。日本で一番大きなIT企業の時代だと提出してたし、自分が中の人だった時はよく読んだ。
しかし、詳細設計書を武器にする理由は、そこじゃない。
詳細設計書をVBAに読み込ませたら、環境を構築するCLIを自動的に吐くorそのように動作するシェルを自動生成するぐらい、詳細設計書は自動化を見越して作っておくべきだ。
本当にVBAを組む必要はない。前述した通り、プロジェクトの急な要因増加があったら、そういう事をやってくれる人材が来てくれるかも知れない。
問題は、**そういった人材が来た時に、ほい、と渡せる仕様書かどうか、**だ。
仕様書に読み方があって、VBAで単純に処理できないものであったら、実は悪い詳細設計書の書き方をしている、という事は大いに有り得る。
大事なのは「誰が読んでも同じ意味になる」ようにすること
この「誰」は多くの場合は新規参画者だ。VBAの場合もある。
大体あなたと同じ会社の人だしあなたと利害関係が一致する人のはずだ。
あなたがもしも病気で倒れてしまったら、もし急な用事で職場を離れなければならなくなったら……仕様書だけを置いて消える。それができるように準備しておかなければならないのだ。
誰が読んでも同じ意味になる仕様書であれば、置いていける。置いていって、後は他の人に託そう。
義務感でやってる人へ
自分は上記のように、仕様書は常に「武器」と思って書いていたので、仕様書作成は非常に楽しかったです。
苦しい思いをしている人は、上記を理解していない人がほとんどだと思います。
苦手とか面倒くさいとか、仕様書はそういったこととは縁が遠いものなのです。チェンジマインド!