設計書を何で作るのかが問題だ
本来、開発時に作成する文書は、「仕様書」「設計書」「詳細設計書」などがあるんですが、今回は面倒なので「設計書」一つで済ましてしまいました。
もしも、複数人数で開発するのであれば、「仕様書」「詳細設計書」「API通信仕様書」など必要でしょうし、DB(データベース)を作るんだったら、ER図なんかも必要になってきます。
今回もER図は必要な筈なんですが、おいおい作っていきます。。。
大事なのは、開発するにあたって何が必要なのかを整理すること、どういった目的で処理をするのかを分かること、だと思っているので、作っている過程で矛盾や不都合があれば随時変更していけば良いんです。
会社なんかによって、仕様書・設計書の書き方って違ったりします。普段はその会社の書き方に合わせるんですが、自分で書く時は自由にできる反面、どうするか悩ましいですね。
WordかExcelが主流だと思うんですが、Excelで文書を作るのはなんとなく違う気がするので、Wordで作ってみました。
印刷するんであればWordが一番良いと思うんですが、文書をプリントアウトするのは自然にも優しく無いので、今時はあまり無いですよね。大量に紙を消費しますから。。。
今回、なんとなくデザインレイアウトで作ってみたら、見出しとか目次とかwordの便利機能が全然使えなくて、正直「しまった」と思いました。デザインレイアウトはどちらかというと、Power Pointに近い感じですね。普通にWord文書で作る方が良いと思います。
仕様書作る便利ツールがあれば、是非活用したいな。それがWordなのか。。。
仕様書を作ってみました
スピード開発時代において、文書を書いてる時間が勿体無いと感じるかもしれませんが、備忘録替わりにも仕様書を作ることは必要じゃないかなと思います。
作っている最中はいいけど、しばらくして改修しようと思ったら、「どういう意図でコーディングしたか思い出せずに苦労した」って経験ある人、多いんでは無いでしょうか。
コードにコメントを残していくことである程度予防できますが、どうなってたっけ?てなった時にコードから拾うのも大変です。
かと言って、ここに時間をかけすぎるのも面倒なので、さらっと必要事項だけ入れてみました。それでも20P越えてしまいました。
出来上がった設計書はこちら。
最低限必要だと思う項目をピックアップしてみました。
(1)画面遷移図
これは、設計初期段階(画面遷移図を作るよ)で作ったものがあるので、それをコピペで良いでしょう。ここまでの段階で仕様が変わっていったので、その部分だけは修正しました。このツールは本当に便利ですね!
(2)画面仕様
前回(プロトタイプを清書してUIデザインにしよう)で作ったUIを元に、その画面でどのような動作を行うかを決めます。
これで、全体の開発ボリュームが分かるんじゃ無いかな。受託の時も、この段階の仕様でお見積もりすることが多いように思います。
iPhone,iPad,Androidでレイアウト違ったりしますが、どうせ作るの自分なので不精してiPhone画面のみにしました。
(3)データ構成
サーバやアプリで取り扱うデータの内容を決めます。データ名と型、概要なんかを書いておけば良いと思います。表形式にすると上手くまとまります。制限なんかがあればそれも記載します。(例えば最大10文字までとか、数値なら0以上とか)
DBを作るのであればER図もあると良いですね。
(4)通信仕様
データ構成に似てますが、アプリからのリクエスト内容とそれに対するレスポンスを決めます。
多くの場合、アプリ作成者とAPI作成者は別の人なので、この取り決めはきちんとしておかないと、後で動かない原因になります。
今気づいたんですが、エラーコードの一覧なんかも作っておかなくてはいけませんね。エラーパターンなんかを考慮しなくてはいけないので、今後追加していくことにします。
こうやってみてみると、アプリの設計書は慣れているので良いのですが、サーバ側の設計書はやはり未知の部分が多いのでつい後回しになってしまいます。実装しながら不足分を追加していきます。
大事なのは、作りっぱなしにせずにメンテナンスを必ずすること。でないと意味のないゴミとなってしまいますからね。
個人的な考えとして、「資料は1つにまとめる」と言うのがあります。今回みたいに一つの文書にしてしまわなくても良いので、ここを見ればすべてわかる。と言うものにしておくことが大事だと思うのです。あの資料はあっち、この資料はこっち、と言う状態だと探すのも大変だし、見落としたりもします。
今後問題となるのは、履歴管理なのですがwordの機能を使うのも良いですが、今回はEvernoteに登録していこうと思います。なぜなら、デザインレイアウトだと履歴機能が使えなさそうなのと、webで公開するのに便利だから。gitで管理すると言う手もあると思います。
早く実装したくて、設計書を作るのが雑になった気がしますが、これから実装しながら手を加えていきますよ。
コメント